diff options
author | 2022-09-23 21:27:35 +0200 | |
---|---|---|
committer | 2022-09-23 20:27:35 +0100 | |
commit | 69a193dae543641a2db6823fa6493c02f56fafbd (patch) | |
tree | c1a0c71d64642db12a17c6770642c3e0af859960 /internal/typeutils/internaltoas.go | |
parent | [docs] NLnet follow up questions (#846) (diff) | |
download | gotosocial-69a193dae543641a2db6823fa6493c02f56fafbd.tar.xz |
[feature] Allow delivery to sharedInboxes where possible (#847)
* update Activity
* add instance-deliver-to-shared-inboxes setting
* update activity version again
* add SharedInboxURI field to accounts
* serdes for endpoints/sharedInbox
* deliver to sharedInbox if one is available
* update tests
* only assign shared inbox if shared domain
* look for shared inbox if currently nil
* go fmt
* finger to get params.RemoteAccountID if necessary
* make comments clearer
* compare dns more consistently
Diffstat (limited to 'internal/typeutils/internaltoas.go')
-rw-r--r-- | internal/typeutils/internaltoas.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/internal/typeutils/internaltoas.go b/internal/typeutils/internaltoas.go index 6d8a22cab..a678a970f 100644 --- a/internal/typeutils/internaltoas.go +++ b/internal/typeutils/internaltoas.go @@ -85,6 +85,21 @@ func (c *converter) AccountToAS(ctx context.Context, a *gtsmodel.Account) (vocab inboxProp.SetIRI(inboxURI) person.SetActivityStreamsInbox(inboxProp) + // shared inbox -- only add this if we know for sure it has one + if a.SharedInboxURI != nil && *a.SharedInboxURI != "" { + sharedInboxURI, err := url.Parse(*a.SharedInboxURI) + if err != nil { + return nil, err + } + endpointsProp := streams.NewActivityStreamsEndpointsProperty() + endpoints := streams.NewActivityStreamsEndpoints() + sharedInboxProp := streams.NewActivityStreamsSharedInboxProperty() + sharedInboxProp.SetIRI(sharedInboxURI) + endpoints.SetActivityStreamsSharedInbox(sharedInboxProp) + endpointsProp.AppendActivityStreamsEndpoints(endpoints) + person.SetActivityStreamsEndpoints(endpointsProp) + } + // outbox // the activitypub outbox of this user for serving messages outboxURI, err := url.Parse(a.OutboxURI) |