Implement inbox
This commit is contained in:
parent
2b243acf71
commit
d2c5df88eb
2 changed files with 26 additions and 2 deletions
|
@ -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))
|
||||
}
|
||||
|
|
|
@ -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))
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue