diff --git a/activity.go b/activity.go index 729e303..93e2dae 100644 --- a/activity.go +++ b/activity.go @@ -312,7 +312,7 @@ func getboxes(ident string) (*Box, error) { } func peeppeep() { - user, _ := butwhatabout("") + user, _ := butwhatabout("htest") honkers := gethonkers(user.ID) for _, f := range honkers { if f.Flavor != "peep" { @@ -354,13 +354,14 @@ func peeppeep() { } } -func whosthere(xid string) []string { +func whosthere(xid string) ([]string, string) { obj, err := GetJunk(xid) if err != nil { log.Printf("error getting remote xonk: %s", err) - return nil + return nil, "" } - return newphone(nil, obj) + convoy, _ := jsongetstring(obj, "conversation") + return newphone(nil, obj), convoy } func newphone(a []string, obj map[string]interface{}) []string { @@ -387,7 +388,7 @@ func xonkxonk(item interface{}) *Honk { var audience []string var err error - var xid, rid, url, content string + var xid, rid, url, content, convoy string var obj map[string]interface{} switch what { case "Announce": @@ -424,6 +425,7 @@ func xonkxonk(item interface{}) *Honk { content = "
summary: " + summary + content
}
rid, _ = jsongetstring(obj, "inReplyTo")
+ convoy, _ = jsongetstring(obj, "conversation")
if what == "honk" && rid != "" {
what = "tonk"
}
@@ -476,6 +478,7 @@ func xonkxonk(item interface{}) *Honk {
xonk.URL = url
xonk.Noise = content
xonk.Audience = audience
+ xonk.Convoy = convoy
return &xonk
}
@@ -567,6 +570,9 @@ func jonkjonk(user *WhatAbout, h *Honk) (map[string]interface{}, map[string]inte
if h.RID != "" {
jo["inReplyTo"] = h.RID
}
+ if h.Convoy != "" {
+ jo["conversation"] = h.Convoy
+ }
jo["to"] = h.Audience[0]
if len(h.Audience) > 1 {
jo["cc"] = h.Audience[1:]
diff --git a/honk.go b/honk.go
index e14f07a..f983ffa 100644
--- a/honk.go
+++ b/honk.go
@@ -663,7 +663,7 @@ func savebonk(w http.ResponseWriter, r *http.Request) {
if xonk.Honker == "" {
xonk.XID = fmt.Sprintf("https://%s/u/%s/h/%s", serverName, xonk.Username, xonk.XID)
}
- convoy := ""
+ convoy := xonk.Convoy
userinfo := GetUserInfo(r)
@@ -676,7 +676,7 @@ func savebonk(w http.ResponseWriter, r *http.Request) {
XID: xonk.XID,
Date: dt,
Noise: xonk.Noise,
- Convoy: convoy,
+ Convoy: convoy,
Donks: xonk.Donks,
Audience: oneofakind(prepend(thewholeworld, xonk.Audience)),
}
@@ -723,7 +723,6 @@ func savehonk(w http.ResponseWriter, r *http.Request) {
if rid != "" {
what = "tonk"
}
- convoy := ""
honk := Honk{
UserID: userinfo.UserID,
Username: userinfo.Username,
@@ -731,25 +730,31 @@ func savehonk(w http.ResponseWriter, r *http.Request) {
XID: xid,
RID: rid,
Date: dt,
- Convoy: convoy,
}
if noise[0] == '@' {
honk.Audience = append(grapevine(noise), thewholeworld)
} else {
honk.Audience = prepend(thewholeworld, grapevine(noise))
}
+ var convoy string
if rid != "" {
xonk := getxonk("", rid)
if xonk != nil {
honk.Audience = append(honk.Audience, xonk.Audience...)
+ convoy = xonk.Convoy
} else {
- xonkaud := whosthere(rid)
+ xonkaud, c := whosthere(rid)
honk.Audience = append(honk.Audience, xonkaud...)
+ convoy = c
}
}
+ if convoy == "" {
+ convoy = "data:,electrichonkytonk-" + xfiltrate()
+ }
honk.Audience = oneofakind(honk.Audience)
noise = obfusbreak(noise)
honk.Noise = noise
+ honk.Convoy = convoy
file, filehdr, err := r.FormFile("donk")
if err == nil {
diff --git a/views/honk.html b/views/honk.html
index 30807ee..4b73157 100644
--- a/views/honk.html
+++ b/views/honk.html
@@ -9,6 +9,10 @@
in reply to: {{ .RID }}
{{ end }}
+
+
+convoy: {{ .Convoy }}
+
{{ .HTML }}