commit 421e5894018406b90aeb34ab0d4ed7aa2ace09bd from: Oliver Lowe date: Fri Mar 15 00:13:02 2024 UTC apub: omit empty ID when encoding Activity This is actually valid according to the spec. This makes embedded Activities like Mentions neater, too. commit - e7d3ccfd4186c0f4fa196dc3f282fee6140702db commit + 421e5894018406b90aeb34ab0d4ed7aa2ace09bd blob - bb80245967fe7db2893da97b3b9446a9b94bdec7 blob + 5571bff0055df499cff1878141becb3d4c22164a --- apub.go +++ apub.go @@ -39,7 +39,7 @@ var ErrNotExist = errors.New("no such activity") // See Activity Streams 2.0, section 4.1. type Activity struct { AtContext string `json:"@context"` - ID string `json:"id"` + ID string `json:"id,omitempty"` Type string `json:"type"` Name string `json:"name,omitempty"` Actor string `json:"actor,omitempty"` @@ -59,14 +59,14 @@ type Activity struct { Content string `json:"content,omitempty"` MediaType string `json:"mediaType,omitempty"` } `json:"source,omitempty"` - PublicKey *PublicKey `json:"publicKey,omitempty"` - Audience string `json:"audience,omitempty"` - Href string `json:"href,omitempty"` - Tag []Activity `json:"tag,omitempty"` + PublicKey *PublicKey `json:"publicKey,omitempty"` + Audience string `json:"audience,omitempty"` + Href string `json:"href,omitempty"` + Tag []Activity `json:"tag,omitempty"` // Contains a JSON-encoded Activity, or a URL as a JSON string // pointing to an Activity. Use Activity.Unwrap() to access // the enclosed, decoded value. - Object json.RawMessage `json:"object,omitempty"` + Object json.RawMessage `json:"object,omitempty"` } func (act *Activity) UnmarshalJSON(b []byte) error {