mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-11-18 14:39:14 -06:00
[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
This commit is contained in:
parent
eb1bb8b1b3
commit
69a193dae5
69 changed files with 2212 additions and 32 deletions
159
vendor/github.com/superseriousbusiness/activity/streams/vocab/gen_property_activitystreams_endpoints_interface.go
generated
vendored
Normal file
159
vendor/github.com/superseriousbusiness/activity/streams/vocab/gen_property_activitystreams_endpoints_interface.go
generated
vendored
Normal file
|
|
@ -0,0 +1,159 @@
|
|||
// Code generated by astool. DO NOT EDIT.
|
||||
|
||||
package vocab
|
||||
|
||||
import "net/url"
|
||||
|
||||
// ActivityStreamsEndpointsPropertyIterator represents a single value for the
|
||||
// "endpoints" property.
|
||||
type ActivityStreamsEndpointsPropertyIterator interface {
|
||||
// Get returns the value of this property. When IsActivityStreamsEndpoints
|
||||
// returns false, Get will return any arbitrary value.
|
||||
Get() ActivityStreamsEndpoints
|
||||
// GetIRI returns the IRI of this property. When IsIRI returns false,
|
||||
// GetIRI will return any arbitrary value.
|
||||
GetIRI() *url.URL
|
||||
// GetType returns the value in this property as a Type. Returns nil if
|
||||
// the value is not an ActivityStreams type, such as an IRI or another
|
||||
// value.
|
||||
GetType() Type
|
||||
// HasAny returns true if the value or IRI is set.
|
||||
HasAny() bool
|
||||
// IsActivityStreamsEndpoints returns true if this property is set and not
|
||||
// an IRI.
|
||||
IsActivityStreamsEndpoints() bool
|
||||
// IsIRI returns true if this property is an IRI.
|
||||
IsIRI() bool
|
||||
// JSONLDContext returns the JSONLD URIs required in the context string
|
||||
// for this property and the specific values that are set. The value
|
||||
// in the map is the alias used to import the property's value or
|
||||
// values.
|
||||
JSONLDContext() map[string]string
|
||||
// KindIndex computes an arbitrary value for indexing this kind of value.
|
||||
// This is a leaky API detail only for folks looking to replace the
|
||||
// go-fed implementation. Applications should not use this method.
|
||||
KindIndex() int
|
||||
// LessThan compares two instances of this property with an arbitrary but
|
||||
// stable comparison. Applications should not use this because it is
|
||||
// only meant to help alternative implementations to go-fed to be able
|
||||
// to normalize nonfunctional properties.
|
||||
LessThan(o ActivityStreamsEndpointsPropertyIterator) bool
|
||||
// Name returns the name of this property: "ActivityStreamsEndpoints".
|
||||
Name() string
|
||||
// Next returns the next iterator, or nil if there is no next iterator.
|
||||
Next() ActivityStreamsEndpointsPropertyIterator
|
||||
// Prev returns the previous iterator, or nil if there is no previous
|
||||
// iterator.
|
||||
Prev() ActivityStreamsEndpointsPropertyIterator
|
||||
// Set sets the value of this property. Calling IsActivityStreamsEndpoints
|
||||
// afterwards will return true.
|
||||
Set(v ActivityStreamsEndpoints)
|
||||
// SetIRI sets the value of this property. Calling IsIRI afterwards will
|
||||
// return true.
|
||||
SetIRI(v *url.URL)
|
||||
// SetType attempts to set the property for the arbitrary type. Returns an
|
||||
// error if it is not a valid type to set on this property.
|
||||
SetType(t Type) error
|
||||
}
|
||||
|
||||
// Endpoints for an ActivityStreams actor.
|
||||
//
|
||||
// null
|
||||
type ActivityStreamsEndpointsProperty interface {
|
||||
// AppendActivityStreamsEndpoints appends a Endpoints value to the back of
|
||||
// a list of the property "endpoints". Invalidates iterators that are
|
||||
// traversing using Prev.
|
||||
AppendActivityStreamsEndpoints(v ActivityStreamsEndpoints)
|
||||
// AppendIRI appends an IRI value to the back of a list of the property
|
||||
// "endpoints"
|
||||
AppendIRI(v *url.URL)
|
||||
// PrependType prepends an arbitrary type value to the front of a list of
|
||||
// the property "endpoints". Invalidates iterators that are traversing
|
||||
// using Prev. Returns an error if the type is not a valid one to set
|
||||
// for this property.
|
||||
AppendType(t Type) error
|
||||
// At returns the property value for the specified index. Panics if the
|
||||
// index is out of bounds.
|
||||
At(index int) ActivityStreamsEndpointsPropertyIterator
|
||||
// Begin returns the first iterator, or nil if empty. Can be used with the
|
||||
// iterator's Next method and this property's End method to iterate
|
||||
// from front to back through all values.
|
||||
Begin() ActivityStreamsEndpointsPropertyIterator
|
||||
// Empty returns returns true if there are no elements.
|
||||
Empty() bool
|
||||
// End returns beyond-the-last iterator, which is nil. Can be used with
|
||||
// the iterator's Next method and this property's Begin method to
|
||||
// iterate from front to back through all values.
|
||||
End() ActivityStreamsEndpointsPropertyIterator
|
||||
// InsertActivityStreamsEndpoints inserts a Endpoints value at the
|
||||
// specified index for a property "endpoints". Existing elements at
|
||||
// that index and higher are shifted back once. Invalidates all
|
||||
// iterators.
|
||||
InsertActivityStreamsEndpoints(idx int, v ActivityStreamsEndpoints)
|
||||
// Insert inserts an IRI value at the specified index for a property
|
||||
// "endpoints". Existing elements at that index and higher are shifted
|
||||
// back once. Invalidates all iterators.
|
||||
InsertIRI(idx int, v *url.URL)
|
||||
// PrependType prepends an arbitrary type value to the front of a list of
|
||||
// the property "endpoints". Invalidates all iterators. Returns an
|
||||
// error if the type is not a valid one to set for this property.
|
||||
InsertType(idx int, t Type) error
|
||||
// JSONLDContext returns the JSONLD URIs required in the context string
|
||||
// for this property and the specific values that are set. The value
|
||||
// in the map is the alias used to import the property's value or
|
||||
// values.
|
||||
JSONLDContext() map[string]string
|
||||
// KindIndex computes an arbitrary value for indexing this kind of value.
|
||||
// This is a leaky API method specifically needed only for alternate
|
||||
// implementations for go-fed. Applications should not use this
|
||||
// method. Panics if the index is out of bounds.
|
||||
KindIndex(idx int) int
|
||||
// Len returns the number of values that exist for the "endpoints"
|
||||
// property.
|
||||
Len() (length int)
|
||||
// Less computes whether another property is less than this one. Mixing
|
||||
// types results in a consistent but arbitrary ordering
|
||||
Less(i, j int) bool
|
||||
// LessThan compares two instances of this property with an arbitrary but
|
||||
// stable comparison. Applications should not use this because it is
|
||||
// only meant to help alternative implementations to go-fed to be able
|
||||
// to normalize nonfunctional properties.
|
||||
LessThan(o ActivityStreamsEndpointsProperty) bool
|
||||
// Name returns the name of this property ("endpoints") with any alias.
|
||||
Name() string
|
||||
// PrependActivityStreamsEndpoints prepends a Endpoints value to the front
|
||||
// of a list of the property "endpoints". Invalidates all iterators.
|
||||
PrependActivityStreamsEndpoints(v ActivityStreamsEndpoints)
|
||||
// PrependIRI prepends an IRI value to the front of a list of the property
|
||||
// "endpoints".
|
||||
PrependIRI(v *url.URL)
|
||||
// PrependType prepends an arbitrary type value to the front of a list of
|
||||
// the property "endpoints". Invalidates all iterators. Returns an
|
||||
// error if the type is not a valid one to set for this property.
|
||||
PrependType(t Type) error
|
||||
// Remove deletes an element at the specified index from a list of the
|
||||
// property "endpoints", regardless of its type. Panics if the index
|
||||
// is out of bounds. Invalidates all iterators.
|
||||
Remove(idx int)
|
||||
// Serialize converts this into an interface representation suitable for
|
||||
// marshalling into a text or binary format. Applications should not
|
||||
// need this function as most typical use cases serialize types
|
||||
// instead of individual properties. It is exposed for alternatives to
|
||||
// go-fed implementations to use.
|
||||
Serialize() (interface{}, error)
|
||||
// Set sets a Endpoints value to be at the specified index for the
|
||||
// property "endpoints". Panics if the index is out of bounds.
|
||||
// Invalidates all iterators.
|
||||
Set(idx int, v ActivityStreamsEndpoints)
|
||||
// SetIRI sets an IRI value to be at the specified index for the property
|
||||
// "endpoints". Panics if the index is out of bounds.
|
||||
SetIRI(idx int, v *url.URL)
|
||||
// SetType sets an arbitrary type value to the specified index of the
|
||||
// property "endpoints". Invalidates all iterators. Returns an error
|
||||
// if the type is not a valid one to set for this property. Panics if
|
||||
// the index is out of bounds.
|
||||
SetType(idx int, t Type) error
|
||||
// Swap swaps the location of values at two indices for the "endpoints"
|
||||
// property.
|
||||
Swap(i, j int)
|
||||
}
|
||||
56
vendor/github.com/superseriousbusiness/activity/streams/vocab/gen_property_activitystreams_sharedInbox_interface.go
generated
vendored
Normal file
56
vendor/github.com/superseriousbusiness/activity/streams/vocab/gen_property_activitystreams_sharedInbox_interface.go
generated
vendored
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
// Code generated by astool. DO NOT EDIT.
|
||||
|
||||
package vocab
|
||||
|
||||
import "net/url"
|
||||
|
||||
// An optional endpoint used for wide delivery of publicly addressed activities
|
||||
// and activities sent to followers. sharedInbox endpoints SHOULD also be
|
||||
// publicly readable OrderedCollection objects containing objects addressed to
|
||||
// the Public special collection. Reading from the sharedInbox endpoint MUST
|
||||
// NOT present objects which are not addressed to the Public endpoint.
|
||||
type ActivityStreamsSharedInboxProperty interface {
|
||||
// Clear ensures no value of this property is set. Calling
|
||||
// IsXMLSchemaAnyURI afterwards will return false.
|
||||
Clear()
|
||||
// Get returns the value of this property. When IsXMLSchemaAnyURI returns
|
||||
// false, Get will return any arbitrary value.
|
||||
Get() *url.URL
|
||||
// GetIRI returns the IRI of this property. When IsIRI returns false,
|
||||
// GetIRI will return any arbitrary value.
|
||||
GetIRI() *url.URL
|
||||
// HasAny returns true if the value or IRI is set.
|
||||
HasAny() bool
|
||||
// IsIRI returns true if this property is an IRI.
|
||||
IsIRI() bool
|
||||
// IsXMLSchemaAnyURI returns true if this property is set and not an IRI.
|
||||
IsXMLSchemaAnyURI() bool
|
||||
// JSONLDContext returns the JSONLD URIs required in the context string
|
||||
// for this property and the specific values that are set. The value
|
||||
// in the map is the alias used to import the property's value or
|
||||
// values.
|
||||
JSONLDContext() map[string]string
|
||||
// KindIndex computes an arbitrary value for indexing this kind of value.
|
||||
// This is a leaky API detail only for folks looking to replace the
|
||||
// go-fed implementation. Applications should not use this method.
|
||||
KindIndex() int
|
||||
// LessThan compares two instances of this property with an arbitrary but
|
||||
// stable comparison. Applications should not use this because it is
|
||||
// only meant to help alternative implementations to go-fed to be able
|
||||
// to normalize nonfunctional properties.
|
||||
LessThan(o ActivityStreamsSharedInboxProperty) bool
|
||||
// Name returns the name of this property: "sharedInbox".
|
||||
Name() string
|
||||
// Serialize converts this into an interface representation suitable for
|
||||
// marshalling into a text or binary format. Applications should not
|
||||
// need this function as most typical use cases serialize types
|
||||
// instead of individual properties. It is exposed for alternatives to
|
||||
// go-fed implementations to use.
|
||||
Serialize() (interface{}, error)
|
||||
// Set sets the value of this property. Calling IsXMLSchemaAnyURI
|
||||
// afterwards will return true.
|
||||
Set(v *url.URL)
|
||||
// SetIRI sets the value of this property. Calling IsIRI afterwards will
|
||||
// return true.
|
||||
SetIRI(v *url.URL)
|
||||
}
|
||||
|
|
@ -43,6 +43,9 @@ type ActivityStreamsApplication interface {
|
|||
// GetActivityStreamsEndTime returns the "endTime" property if it exists,
|
||||
// and nil otherwise.
|
||||
GetActivityStreamsEndTime() ActivityStreamsEndTimeProperty
|
||||
// GetActivityStreamsEndpoints returns the "endpoints" property if it
|
||||
// exists, and nil otherwise.
|
||||
GetActivityStreamsEndpoints() ActivityStreamsEndpointsProperty
|
||||
// GetActivityStreamsFollowers returns the "followers" property if it
|
||||
// exists, and nil otherwise.
|
||||
GetActivityStreamsFollowers() ActivityStreamsFollowersProperty
|
||||
|
|
@ -199,6 +202,8 @@ type ActivityStreamsApplication interface {
|
|||
SetActivityStreamsDuration(i ActivityStreamsDurationProperty)
|
||||
// SetActivityStreamsEndTime sets the "endTime" property.
|
||||
SetActivityStreamsEndTime(i ActivityStreamsEndTimeProperty)
|
||||
// SetActivityStreamsEndpoints sets the "endpoints" property.
|
||||
SetActivityStreamsEndpoints(i ActivityStreamsEndpointsProperty)
|
||||
// SetActivityStreamsFollowers sets the "followers" property.
|
||||
SetActivityStreamsFollowers(i ActivityStreamsFollowersProperty)
|
||||
// SetActivityStreamsFollowing sets the "following" property.
|
||||
|
|
|
|||
44
vendor/github.com/superseriousbusiness/activity/streams/vocab/gen_type_activitystreams_endpoints_interface.go
generated
vendored
Normal file
44
vendor/github.com/superseriousbusiness/activity/streams/vocab/gen_type_activitystreams_endpoints_interface.go
generated
vendored
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
// Code generated by astool. DO NOT EDIT.
|
||||
|
||||
package vocab
|
||||
|
||||
// A json object which maps additional (typically server/domain-wide) endpoints
|
||||
// which may be useful either for this actor or someone referencing this
|
||||
// actor. This mapping may be nested inside the actor document as the value or
|
||||
// may be a link to a JSON-LD document with these properties.
|
||||
type ActivityStreamsEndpoints interface {
|
||||
// GetActivityStreamsSharedInbox returns the "sharedInbox" property if it
|
||||
// exists, and nil otherwise.
|
||||
GetActivityStreamsSharedInbox() ActivityStreamsSharedInboxProperty
|
||||
// GetJSONLDId returns the "id" property if it exists, and nil otherwise.
|
||||
GetJSONLDId() JSONLDIdProperty
|
||||
// GetTypeName returns the name of this type.
|
||||
GetTypeName() string
|
||||
// GetUnknownProperties returns the unknown properties for the Endpoints
|
||||
// type. Note that this should not be used by app developers. It is
|
||||
// only used to help determine which implementation is LessThan the
|
||||
// other. Developers who are creating a different implementation of
|
||||
// this type's interface can use this method in their LessThan
|
||||
// implementation, but routine ActivityPub applications should not use
|
||||
// this to bypass the code generation tool.
|
||||
GetUnknownProperties() map[string]interface{}
|
||||
// IsExtending returns true if the Endpoints type extends from the other
|
||||
// type.
|
||||
IsExtending(other Type) bool
|
||||
// JSONLDContext returns the JSONLD URIs required in the context string
|
||||
// for this type and the specific properties that are set. The value
|
||||
// in the map is the alias used to import the type and its properties.
|
||||
JSONLDContext() map[string]string
|
||||
// LessThan computes if this Endpoints is lesser, with an arbitrary but
|
||||
// stable determination.
|
||||
LessThan(o ActivityStreamsEndpoints) bool
|
||||
// Serialize converts this into an interface representation suitable for
|
||||
// marshalling into a text or binary format.
|
||||
Serialize() (map[string]interface{}, error)
|
||||
// SetActivityStreamsSharedInbox sets the "sharedInbox" property.
|
||||
SetActivityStreamsSharedInbox(i ActivityStreamsSharedInboxProperty)
|
||||
// SetJSONLDId sets the "id" property.
|
||||
SetJSONLDId(i JSONLDIdProperty)
|
||||
// VocabularyURI returns the vocabulary's URI as a string.
|
||||
VocabularyURI() string
|
||||
}
|
||||
|
|
@ -43,6 +43,9 @@ type ActivityStreamsGroup interface {
|
|||
// GetActivityStreamsEndTime returns the "endTime" property if it exists,
|
||||
// and nil otherwise.
|
||||
GetActivityStreamsEndTime() ActivityStreamsEndTimeProperty
|
||||
// GetActivityStreamsEndpoints returns the "endpoints" property if it
|
||||
// exists, and nil otherwise.
|
||||
GetActivityStreamsEndpoints() ActivityStreamsEndpointsProperty
|
||||
// GetActivityStreamsFollowers returns the "followers" property if it
|
||||
// exists, and nil otherwise.
|
||||
GetActivityStreamsFollowers() ActivityStreamsFollowersProperty
|
||||
|
|
@ -198,6 +201,8 @@ type ActivityStreamsGroup interface {
|
|||
SetActivityStreamsDuration(i ActivityStreamsDurationProperty)
|
||||
// SetActivityStreamsEndTime sets the "endTime" property.
|
||||
SetActivityStreamsEndTime(i ActivityStreamsEndTimeProperty)
|
||||
// SetActivityStreamsEndpoints sets the "endpoints" property.
|
||||
SetActivityStreamsEndpoints(i ActivityStreamsEndpointsProperty)
|
||||
// SetActivityStreamsFollowers sets the "followers" property.
|
||||
SetActivityStreamsFollowers(i ActivityStreamsFollowersProperty)
|
||||
// SetActivityStreamsFollowing sets the "following" property.
|
||||
|
|
|
|||
|
|
@ -43,6 +43,9 @@ type ActivityStreamsOrganization interface {
|
|||
// GetActivityStreamsEndTime returns the "endTime" property if it exists,
|
||||
// and nil otherwise.
|
||||
GetActivityStreamsEndTime() ActivityStreamsEndTimeProperty
|
||||
// GetActivityStreamsEndpoints returns the "endpoints" property if it
|
||||
// exists, and nil otherwise.
|
||||
GetActivityStreamsEndpoints() ActivityStreamsEndpointsProperty
|
||||
// GetActivityStreamsFollowers returns the "followers" property if it
|
||||
// exists, and nil otherwise.
|
||||
GetActivityStreamsFollowers() ActivityStreamsFollowersProperty
|
||||
|
|
@ -199,6 +202,8 @@ type ActivityStreamsOrganization interface {
|
|||
SetActivityStreamsDuration(i ActivityStreamsDurationProperty)
|
||||
// SetActivityStreamsEndTime sets the "endTime" property.
|
||||
SetActivityStreamsEndTime(i ActivityStreamsEndTimeProperty)
|
||||
// SetActivityStreamsEndpoints sets the "endpoints" property.
|
||||
SetActivityStreamsEndpoints(i ActivityStreamsEndpointsProperty)
|
||||
// SetActivityStreamsFollowers sets the "followers" property.
|
||||
SetActivityStreamsFollowers(i ActivityStreamsFollowersProperty)
|
||||
// SetActivityStreamsFollowing sets the "following" property.
|
||||
|
|
|
|||
|
|
@ -43,6 +43,9 @@ type ActivityStreamsPerson interface {
|
|||
// GetActivityStreamsEndTime returns the "endTime" property if it exists,
|
||||
// and nil otherwise.
|
||||
GetActivityStreamsEndTime() ActivityStreamsEndTimeProperty
|
||||
// GetActivityStreamsEndpoints returns the "endpoints" property if it
|
||||
// exists, and nil otherwise.
|
||||
GetActivityStreamsEndpoints() ActivityStreamsEndpointsProperty
|
||||
// GetActivityStreamsFollowers returns the "followers" property if it
|
||||
// exists, and nil otherwise.
|
||||
GetActivityStreamsFollowers() ActivityStreamsFollowersProperty
|
||||
|
|
@ -198,6 +201,8 @@ type ActivityStreamsPerson interface {
|
|||
SetActivityStreamsDuration(i ActivityStreamsDurationProperty)
|
||||
// SetActivityStreamsEndTime sets the "endTime" property.
|
||||
SetActivityStreamsEndTime(i ActivityStreamsEndTimeProperty)
|
||||
// SetActivityStreamsEndpoints sets the "endpoints" property.
|
||||
SetActivityStreamsEndpoints(i ActivityStreamsEndpointsProperty)
|
||||
// SetActivityStreamsFollowers sets the "followers" property.
|
||||
SetActivityStreamsFollowers(i ActivityStreamsFollowersProperty)
|
||||
// SetActivityStreamsFollowing sets the "following" property.
|
||||
|
|
|
|||
|
|
@ -43,6 +43,9 @@ type ActivityStreamsService interface {
|
|||
// GetActivityStreamsEndTime returns the "endTime" property if it exists,
|
||||
// and nil otherwise.
|
||||
GetActivityStreamsEndTime() ActivityStreamsEndTimeProperty
|
||||
// GetActivityStreamsEndpoints returns the "endpoints" property if it
|
||||
// exists, and nil otherwise.
|
||||
GetActivityStreamsEndpoints() ActivityStreamsEndpointsProperty
|
||||
// GetActivityStreamsFollowers returns the "followers" property if it
|
||||
// exists, and nil otherwise.
|
||||
GetActivityStreamsFollowers() ActivityStreamsFollowersProperty
|
||||
|
|
@ -199,6 +202,8 @@ type ActivityStreamsService interface {
|
|||
SetActivityStreamsDuration(i ActivityStreamsDurationProperty)
|
||||
// SetActivityStreamsEndTime sets the "endTime" property.
|
||||
SetActivityStreamsEndTime(i ActivityStreamsEndTimeProperty)
|
||||
// SetActivityStreamsEndpoints sets the "endpoints" property.
|
||||
SetActivityStreamsEndpoints(i ActivityStreamsEndpointsProperty)
|
||||
// SetActivityStreamsFollowers sets the "followers" property.
|
||||
SetActivityStreamsFollowers(i ActivityStreamsFollowersProperty)
|
||||
// SetActivityStreamsFollowing sets the "following" property.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue