Implement inbox

This commit is contained in:
Anthony Wang 2022-04-13 22:09:01 -05:00
parent 2b243acf71
commit d2c5df88eb
Signed by: a
GPG key ID: BC96B00AEC5F2D76
2 changed files with 26 additions and 2 deletions

View file

@ -5,8 +5,31 @@
package activitypub
import (
"github.com/go-fed/activity/streams"
"github.com/go-fed/activity/streams/vocab"
)
func follow(activity vocab.ActivityStreamsActivity) {
func follow(activity vocab.ActivityStreamsFollow) {
objectIRI := activity.GetActivityStreamsObject().Begin().GetIRI()
// user_model.FollowUser() currently only works with local users
/*s := strings.Split(objectIRI.String(), ",")
user, _ := user_model.GetUserIDsByNames(s[len(s)-1])
user_model.FollowUser()*/
// Send accept activity
accept := streams.NewActivityStreamsAccept()
tp := streams.NewJSONLDTypeProperty()
tp.AppendXMLSchemaString("Accept")
accept.SetJSONLDType(tp)
actor := streams.NewActivityStreamsActorProperty()
actor.AppendIRI(objectIRI)
accept.SetActivityStreamsActor(actor)
object := streams.NewActivityStreamsObjectProperty()
object.AppendActivityStreamsFollow(activity)
accept.SetActivityStreamsObject(object)
AddToOutbox(accept.(vocab.ActivityStreamsActivity))
}

View file

@ -13,7 +13,8 @@ func AddToInbox(activity vocab.ActivityStreamsActivity) {
databaseAddToInbox(activity)
// Probably should use callbacks here
// https://github.com/owncast/owncast/blob/develop/activitypub/resolvers/resolve.go
if activity.GetJSONLDType().Name() == "Follow" {
follow(activity)
follow(activity.(vocab.ActivityStreamsFollow))
}
}