woem
Sorted constants a little ActivityStreams stuff now have their own BaseApChain types
This commit is contained in:
parent
2498ecea51
commit
5316c8b506
3 changed files with 255 additions and 21 deletions
|
@ -38,14 +38,13 @@ const (
|
||||||
KEY_ACTIVITYSTREAMS_FOLLOWING = "https://www.w3.org/ns/activitystreams#following" // Who is this account following
|
KEY_ACTIVITYSTREAMS_FOLLOWING = "https://www.w3.org/ns/activitystreams#following" // Who is this account following
|
||||||
KEY_ACTIVITYSTREAMS_HREF = "https://www.w3.org/ns/activitystreams#href" // Some url with id
|
KEY_ACTIVITYSTREAMS_HREF = "https://www.w3.org/ns/activitystreams#href" // Some url with id
|
||||||
KEY_ACTIVITYSTREAMS_ICON = "https://www.w3.org/ns/activitystreams#icon" // User icon
|
KEY_ACTIVITYSTREAMS_ICON = "https://www.w3.org/ns/activitystreams#icon" // User icon
|
||||||
KEY_ACTIVITYSTREAMS_IMAGE = "https://www.w3.org/ns/activitystreams#image" // Account banner
|
KEY_ACTIVITYSTREAMS_IMAGE_ATTRIBUTE = "https://www.w3.org/ns/activitystreams#image" // Account banner
|
||||||
KEY_ACTIVITYSTREAMS_MEDIATYPE = "https://www.w3.org/ns/activitystreams#mediaType" // What type of media is this? Example image/jpeg
|
KEY_ACTIVITYSTREAMS_MEDIATYPE = "https://www.w3.org/ns/activitystreams#mediaType" // What type of media is this? Example image/jpeg
|
||||||
KEY_ACTIVITYSTREAMS_NAME = "https://www.w3.org/ns/activitystreams#name" // Name of the object
|
KEY_ACTIVITYSTREAMS_NAME = "https://www.w3.org/ns/activitystreams#name" // Name of the object
|
||||||
KEY_ACTIVITYSTREAMS_OUTBOX = "https://www.w3.org/ns/activitystreams#outbox" // Link to the account's outbox
|
KEY_ACTIVITYSTREAMS_OUTBOX = "https://www.w3.org/ns/activitystreams#outbox" // Link to the account's outbox
|
||||||
KEY_ACTIVITYSTREAMS_OBJECT = "https://www.w3.org/ns/activitystreams#object" // Object url and sometimes value
|
KEY_ACTIVITYSTREAMS_OBJECT = "https://www.w3.org/ns/activitystreams#object" // Object url and sometimes value
|
||||||
KEY_ACTIVITYSTREAMS_PREFFEREDUSERNAME = "https://www.w3.org/ns/activitystreams#preferredUsername" // What the shown username is
|
KEY_ACTIVITYSTREAMS_PREFFEREDUSERNAME = "https://www.w3.org/ns/activitystreams#preferredUsername" // What the shown username is
|
||||||
KEY_ACTIVITYSTREAMS_PUBLISHED = "https://www.w3.org/ns/activitystreams#published" // When an object was created
|
KEY_ACTIVITYSTREAMS_PUBLISHED = "https://www.w3.org/ns/activitystreams#published" // When an object was created
|
||||||
KEY_ACTIVITYSTREAMS_PUBLIC = "https://www.w3.org/ns/activitystreams#Public" // Note target
|
|
||||||
KEY_ACTIVITYSTREAMS_RESTRICTED_FOLLOW = "https://www.w3.org/ns/activitystreams#manuallyApprovesFollowers" // Does the account manually approve follow requests
|
KEY_ACTIVITYSTREAMS_RESTRICTED_FOLLOW = "https://www.w3.org/ns/activitystreams#manuallyApprovesFollowers" // Does the account manually approve follow requests
|
||||||
KEY_ACTIVITYSTREAMS_REPLIES = "https://www.w3.org/ns/activitystreams#replies" // Object containing the replies. Should always be a Collection
|
KEY_ACTIVITYSTREAMS_REPLIES = "https://www.w3.org/ns/activitystreams#replies" // Object containing the replies. Should always be a Collection
|
||||||
KEY_ACTIVITYSTREAMS_SHAREDINBOX = "https://www.w3.org/ns/activitystreams#sharedInbox" // Link to the shared inbox of the server
|
KEY_ACTIVITYSTREAMS_SHAREDINBOX = "https://www.w3.org/ns/activitystreams#sharedInbox" // Link to the shared inbox of the server
|
||||||
|
@ -67,6 +66,7 @@ const (
|
||||||
KEY_ACTIVITYSTREAMS_HASHTAG = "https://www.w3.org/ns/activitystreams#Hashtag" // Object is a hashtag
|
KEY_ACTIVITYSTREAMS_HASHTAG = "https://www.w3.org/ns/activitystreams#Hashtag" // Object is a hashtag
|
||||||
KEY_ACTIVITYSTREAMS_LIKE = "https://www.w3.org/ns/activitystreams#Like" // Object is an activity of type like
|
KEY_ACTIVITYSTREAMS_LIKE = "https://www.w3.org/ns/activitystreams#Like" // Object is an activity of type like
|
||||||
KEY_ACTIVITYSTREAMS_NOTE = "https://www.w3.org/ns/activitystreams#Note" // Object is of type Note
|
KEY_ACTIVITYSTREAMS_NOTE = "https://www.w3.org/ns/activitystreams#Note" // Object is of type Note
|
||||||
|
KEY_ACTIVITYSTREAMS_IMAGE_TYPE = "https://www.w3.org/ns/activitystreams#Image" // Object is of type Image
|
||||||
|
|
||||||
// Collection things
|
// Collection things
|
||||||
KEY_ACTIVITYSTREAMS_FIRST = "https://www.w3.org/ns/activitystreams#first" // First page in a collection
|
KEY_ACTIVITYSTREAMS_FIRST = "https://www.w3.org/ns/activitystreams#first" // First page in a collection
|
||||||
|
@ -78,6 +78,7 @@ const (
|
||||||
KEY_ACTIVITYSTREAMS_OAUTHAUTHORIZATION = "https://www.w3.org/ns/activitystreams#oauthAuthorizationEndpoint" // Endpoint url for oauth login?
|
KEY_ACTIVITYSTREAMS_OAUTHAUTHORIZATION = "https://www.w3.org/ns/activitystreams#oauthAuthorizationEndpoint" // Endpoint url for oauth login?
|
||||||
KEY_ACTIVITYSTREAMS_OAUTHTOKEN = "https://www.w3.org/ns/activitystreams#oauthTokenEndpoint" // Endpoint url for oauth token verification?
|
KEY_ACTIVITYSTREAMS_OAUTHTOKEN = "https://www.w3.org/ns/activitystreams#oauthTokenEndpoint" // Endpoint url for oauth token verification?
|
||||||
KEY_ACTIVITYSTREAMS_UPLOADMEDIA = "https://www.w3.org/ns/activitystreams#uploadMedia" // Endpoint url to upload media to?
|
KEY_ACTIVITYSTREAMS_UPLOADMEDIA = "https://www.w3.org/ns/activitystreams#uploadMedia" // Endpoint url to upload media to?
|
||||||
|
KEY_ACTIVITYSTREAMS_PUBLIC = "https://www.w3.org/ns/activitystreams#Public" // Note target
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
@ -131,15 +131,125 @@ func (endpointsdata *EndpointsData) MarshalToMap() map[string]any {
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
// Endpoints
|
type FollowersData struct {
|
||||||
// Followers
|
FullIdType
|
||||||
// Following
|
}
|
||||||
// Href
|
|
||||||
// Icon
|
func (attributedtodata *FollowersData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
// Image
|
return attributedtodata.FullIdType.Next, true
|
||||||
// MediaType
|
}
|
||||||
// Name
|
|
||||||
// Outbox
|
func (attributedtodata *FollowersData) MarshalToMap() map[string]any {
|
||||||
|
return attributedtodata.FullIdType.MarshalToMapWithName(KEY_ACTIVITYSTREAMS_FOLLOWERS)
|
||||||
|
}
|
||||||
|
|
||||||
|
type FollowingData struct {
|
||||||
|
FullIdType
|
||||||
|
}
|
||||||
|
|
||||||
|
func (attributedtodata *FollowingData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return attributedtodata.FullIdType.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (attributedtodata *FollowingData) MarshalToMap() map[string]any {
|
||||||
|
return attributedtodata.FullIdType.MarshalToMapWithName(KEY_ACTIVITYSTREAMS_FOLLOWING)
|
||||||
|
}
|
||||||
|
|
||||||
|
type HrefData struct {
|
||||||
|
FullIdType
|
||||||
|
}
|
||||||
|
|
||||||
|
func (attributedtodata *HrefData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return attributedtodata.FullIdType.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (attributedtodata *HrefData) MarshalToMap() map[string]any {
|
||||||
|
return attributedtodata.FullIdType.MarshalToMapWithName(KEY_ACTIVITYSTREAMS_HREF)
|
||||||
|
}
|
||||||
|
|
||||||
|
type IconData struct {
|
||||||
|
Next BaseApChain
|
||||||
|
Media Media
|
||||||
|
}
|
||||||
|
|
||||||
|
func (icondata *IconData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return icondata.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (icondata *IconData) MarshalToMap() map[string]any {
|
||||||
|
return appendWithKey(
|
||||||
|
icondata.Next.MarshalToMap(),
|
||||||
|
KEY_ACTIVITYSTREAMS_ICON,
|
||||||
|
[]map[string]any{icondata.Media.Marshal()},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageData struct {
|
||||||
|
Next BaseApChain
|
||||||
|
Media Media
|
||||||
|
}
|
||||||
|
|
||||||
|
func (icondata *ImageData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return icondata.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (icondata *ImageData) MarshalToMap() map[string]any {
|
||||||
|
return appendWithKey(
|
||||||
|
icondata.Next.MarshalToMap(),
|
||||||
|
KEY_ACTIVITYSTREAMS_IMAGE_ATTRIBUTE,
|
||||||
|
[]map[string]any{icondata.Media.Marshal()},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MediaTypeData struct {
|
||||||
|
Next BaseApChain
|
||||||
|
Type string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (mediatypedata *MediaTypeData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return mediatypedata.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (mediatypedata *MediaTypeData) MarshalToMap() map[string]any {
|
||||||
|
return appendWithKey(
|
||||||
|
mediatypedata.Next.MarshalToMap(),
|
||||||
|
KEY_ACTIVITYSTREAMS_MEDIATYPE,
|
||||||
|
ValueValue[string]{
|
||||||
|
Value: mediatypedata.Type,
|
||||||
|
Type: nil,
|
||||||
|
OtherThings: map[string]any{},
|
||||||
|
}.Marshal(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
type NameData struct {
|
||||||
|
Next BaseApChain
|
||||||
|
Name ValueValue[string]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (namedata *NameData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return namedata.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (namedata *NameData) MarshalToMap() map[string]any {
|
||||||
|
return appendWithKey(
|
||||||
|
namedata.Next.MarshalToMap(),
|
||||||
|
KEY_ACTIVITYSTREAMS_NAME,
|
||||||
|
[]map[string]any{namedata.Name.Marshal()},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
type OutboxData struct {
|
||||||
|
FullIdType
|
||||||
|
}
|
||||||
|
|
||||||
|
func (attributedtodata *OutboxData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return attributedtodata.FullIdType.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (attributedtodata *OutboxData) MarshalToMap() map[string]any {
|
||||||
|
return attributedtodata.FullIdType.MarshalToMapWithName(KEY_ACTIVITYSTREAMS_HREF)
|
||||||
|
}
|
||||||
|
|
||||||
type ObjectData struct {
|
type ObjectData struct {
|
||||||
FullIdType
|
FullIdType
|
||||||
|
@ -153,7 +263,22 @@ func (object *ObjectData) MarshalToMap() map[string]any {
|
||||||
return object.FullIdType.MarshalToMapWithName(KEY_ACTIVITYSTREAMS_OBJECT)
|
return object.FullIdType.MarshalToMapWithName(KEY_ACTIVITYSTREAMS_OBJECT)
|
||||||
}
|
}
|
||||||
|
|
||||||
// PrefferedUsername
|
type PreferredNameData struct {
|
||||||
|
Next BaseApChain
|
||||||
|
Name ValueValue[string]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (namedata *PreferredNameData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return namedata.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (namedata *PreferredNameData) MarshalToMap() map[string]any {
|
||||||
|
return appendWithKey(
|
||||||
|
namedata.Next.MarshalToMap(),
|
||||||
|
KEY_ACTIVITYSTREAMS_PREFFEREDUSERNAME,
|
||||||
|
[]map[string]any{namedata.Name.Marshal()},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
type PublishedData struct {
|
type PublishedData struct {
|
||||||
Next BaseApChain
|
Next BaseApChain
|
||||||
|
@ -164,20 +289,86 @@ func (publisheddata *PublishedData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
return publisheddata.Next, true
|
return publisheddata.Next, true
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert the chain to a map
|
|
||||||
// Should include the rest of the chain (extend the map the underlying object returns)
|
|
||||||
func (publisheddata *PublishedData) MarshalToMap() map[string]any {
|
func (publisheddata *PublishedData) MarshalToMap() map[string]any {
|
||||||
m := publisheddata.Next.MarshalToMap()
|
m := publisheddata.Next.MarshalToMap()
|
||||||
m[KEY_ACTIVITYSTREAMS_PUBLISHED] = timeToXmlTime(publisheddata.Timestamp)
|
m[KEY_ACTIVITYSTREAMS_PUBLISHED] = timeToXmlTime(publisheddata.Timestamp)
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
// Public
|
type RestrictedFollowData struct {
|
||||||
// RestrictedFollow
|
Next BaseApChain
|
||||||
// Replies
|
Value ValueValue[bool]
|
||||||
// SharedInbox
|
}
|
||||||
// Summary
|
|
||||||
// Sensitive
|
func (namedata *RestrictedFollowData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return namedata.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (namedata *RestrictedFollowData) MarshalToMap() map[string]any {
|
||||||
|
return appendWithKey(
|
||||||
|
namedata.Next.MarshalToMap(),
|
||||||
|
KEY_ACTIVITYSTREAMS_RESTRICTED_FOLLOW,
|
||||||
|
[]map[string]any{namedata.Value.Marshal()},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
type RepliesData struct {
|
||||||
|
FullIdType
|
||||||
|
}
|
||||||
|
|
||||||
|
func (object *RepliesData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return object.FullIdType.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (object *RepliesData) MarshalToMap() map[string]any {
|
||||||
|
return object.FullIdType.MarshalToMapWithName(KEY_ACTIVITYSTREAMS_REPLIES)
|
||||||
|
}
|
||||||
|
|
||||||
|
type SharedInboxData struct {
|
||||||
|
FullIdType
|
||||||
|
}
|
||||||
|
|
||||||
|
func (object *SharedInboxData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return object.FullIdType.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (object *SharedInboxData) MarshalToMap() map[string]any {
|
||||||
|
return object.FullIdType.MarshalToMapWithName(KEY_ACTIVITYSTREAMS_SHAREDINBOX)
|
||||||
|
}
|
||||||
|
|
||||||
|
type SummaryData struct {
|
||||||
|
Next BaseApChain
|
||||||
|
Name ValueValue[string]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (namedata *SummaryData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return namedata.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (namedata *SummaryData) MarshalToMap() map[string]any {
|
||||||
|
return appendWithKey(
|
||||||
|
namedata.Next.MarshalToMap(),
|
||||||
|
KEY_ACTIVITYSTREAMS_SUMMARY,
|
||||||
|
[]map[string]any{namedata.Name.Marshal()},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
type SensitiveData struct {
|
||||||
|
Next BaseApChain
|
||||||
|
Name ValueValue[bool]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (namedata *SensitiveData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return namedata.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (namedata *SensitiveData) MarshalToMap() map[string]any {
|
||||||
|
return appendWithKey(
|
||||||
|
namedata.Next.MarshalToMap(),
|
||||||
|
KEY_ACTIVITYSTREAMS_SENSITIVE,
|
||||||
|
[]map[string]any{namedata.Name.Marshal()},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
type TagData struct {
|
type TagData struct {
|
||||||
Next BaseApChain
|
Next BaseApChain
|
||||||
|
@ -218,4 +409,30 @@ func (cc *ToData) MarshalToMap() map[string]any {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Url
|
// Url
|
||||||
|
type UrlData struct {
|
||||||
|
FullIdType
|
||||||
|
}
|
||||||
|
|
||||||
|
func (object *UrlData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return object.FullIdType.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (object *UrlData) MarshalToMap() map[string]any {
|
||||||
|
return object.FullIdType.MarshalToMapWithName(KEY_ACTIVITYSTREAMS_SHAREDINBOX)
|
||||||
|
}
|
||||||
|
|
||||||
// Updated
|
// Updated
|
||||||
|
type UpdatedData struct {
|
||||||
|
Next BaseApChain
|
||||||
|
Timestamp time.Time
|
||||||
|
}
|
||||||
|
|
||||||
|
func (publisheddata *UpdatedData) GetSelfOrBase() (BaseApChain, bool) {
|
||||||
|
return publisheddata.Next, true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (publisheddata *UpdatedData) MarshalToMap() map[string]any {
|
||||||
|
m := publisheddata.Next.MarshalToMap()
|
||||||
|
m[KEY_ACTIVITYSTREAMS_PUBLISHED] = timeToXmlTime(publisheddata.Timestamp)
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
|
@ -16,8 +16,9 @@ type Attachment struct {
|
||||||
|
|
||||||
type Media struct {
|
type Media struct {
|
||||||
Type string
|
Type string
|
||||||
MediaType string
|
MediaType *string
|
||||||
Url string
|
Url string
|
||||||
|
Sensitive *bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type IdValue struct {
|
type IdValue struct {
|
||||||
|
@ -59,3 +60,18 @@ func (v ValueValue[T]) Marshal() map[string]any {
|
||||||
}
|
}
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m Media) Marshal() map[string]any {
|
||||||
|
t := map[string]any{
|
||||||
|
KEY_TYPE: []string{m.Type},
|
||||||
|
KEY_ACTIVITYSTREAMS_URL: []map[string]any{IdValue{Id: m.Url}.Marshal()},
|
||||||
|
}
|
||||||
|
if m.MediaType != nil {
|
||||||
|
t[KEY_ACTIVITYSTREAMS_MEDIATYPE] = []map[string]any{{KEY_VALUE: *m.MediaType}}
|
||||||
|
}
|
||||||
|
if m.Sensitive != nil {
|
||||||
|
t[KEY_ACTIVITYSTREAMS_SENSITIVE] = []map[string]any{{KEY_VALUE: *m.Sensitive}}
|
||||||
|
}
|
||||||
|
|
||||||
|
return t
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue