diff options
author | Gabe Kangas <gabek@real-ity.com> | 2022-04-07 16:14:47 -0700 |
---|---|---|
committer | Gabe Kangas <gabek@real-ity.com> | 2022-04-07 16:14:47 -0700 |
commit | 14389ff0293a3fa7a1f2abd93c80e5595c451438 (patch) | |
tree | aab8b16432fd9095abbf4f886295fa5e016dbf6c | |
parent | af90373e7289a8afa0d9203ccff6e8b7a1adc8be (diff) |
Troubleshoot misskey followsgek/debug/misskey-follows
-rw-r--r-- | activitypub/inbox/follow.go | 2 | ||||
-rw-r--r-- | activitypub/requests/acceptFollow.go | 23 | ||||
-rw-r--r-- | controllers/admin/followers.go | 24 |
3 files changed, 28 insertions, 21 deletions
diff --git a/activitypub/inbox/follow.go b/activitypub/inbox/follow.go index 70b26abf1..c392112be 100644 --- a/activitypub/inbox/follow.go +++ b/activitypub/inbox/follow.go @@ -39,7 +39,7 @@ func handleFollowInboxRequest(c context.Context, activity vocab.ActivityStreamsF localAccountName := data.GetDefaultFederationUsername() if approved { - if err := requests.SendFollowAccept(follow.Inbox, follow.FollowRequestIri, localAccountName); err != nil { + if err := requests.SendFollowAccept(follow.Inbox, activity, localAccountName); err != nil { log.Errorln("unable to send follow accept", err) return err } diff --git a/activitypub/requests/acceptFollow.go b/activitypub/requests/acceptFollow.go index 7cb93a087..ca27d2f16 100644 --- a/activitypub/requests/acceptFollow.go +++ b/activitypub/requests/acceptFollow.go @@ -2,6 +2,7 @@ package requests import ( "encoding/json" + "fmt" "net/url" "github.com/go-fed/activity/streams" @@ -14,8 +15,8 @@ import ( ) // SendFollowAccept will send an accept activity to a follow request from a specified local user. -func SendFollowAccept(inbox *url.URL, followRequestIRI *url.URL, fromLocalAccountName string) error { - followAccept := makeAcceptFollow(followRequestIRI, fromLocalAccountName) +func SendFollowAccept(inbox *url.URL, originalFollowActivity vocab.ActivityStreamsFollow, fromLocalAccountName string) error { + followAccept := makeAcceptFollow(originalFollowActivity, fromLocalAccountName) localAccountIRI := apmodels.MakeLocalIRIForAccount(fromLocalAccountName) var jsonmap map[string]interface{} @@ -26,26 +27,34 @@ func SendFollowAccept(inbox *url.URL, followRequestIRI *url.URL, fromLocalAccoun return err } + fmt.Println(string(b)) //nolint:forbidigo workerpool.AddToOutboundQueue(req) return nil } -func makeAcceptFollow(followRequestIri *url.URL, fromAccountName string) vocab.ActivityStreamsAccept { +func makeAcceptFollow(originalFollowActivity vocab.ActivityStreamsFollow, fromAccountName string) vocab.ActivityStreamsAccept { acceptIDString := shortid.MustGenerate() acceptID := apmodels.MakeLocalIRIForResource(acceptIDString) - actorID := apmodels.MakeLocalIRIForAccount(fromAccountName) + // actorID := apmodels.MakeLocalIRIForAccount(fromAccountName) accept := streams.NewActivityStreamsAccept() idProperty := streams.NewJSONLDIdProperty() idProperty.SetIRI(acceptID) accept.SetJSONLDId(idProperty) - actor := apmodels.MakeActorPropertyWithID(actorID) - accept.SetActivityStreamsActor(actor) + // actorIRI := apmodels.MakeLocalIRIForAccount(fromAccountName) + // publicKey := crypto.GetPublicKey(actorIRI) + person := apmodels.MakeServiceForAccount(fromAccountName) + personProperty := streams.NewActivityStreamsActorProperty() + personProperty.AppendActivityStreamsService(person) + accept.SetActivityStreamsActor(personProperty) + + // actor := apmodels.MakeActorPropertyWithID(actorID) + // accept.SetActivityStreamsActor(actor) object := streams.NewActivityStreamsObjectProperty() - object.AppendIRI(followRequestIri) + object.AppendActivityStreamsFollow(originalFollowActivity) accept.SetActivityStreamsObject(object) return accept diff --git a/controllers/admin/followers.go b/controllers/admin/followers.go index 624688c98..21d237c80 100644 --- a/controllers/admin/followers.go +++ b/controllers/admin/followers.go @@ -5,9 +5,7 @@ import ( "net/http" "github.com/owncast/owncast/activitypub/persistence" - "github.com/owncast/owncast/activitypub/requests" "github.com/owncast/owncast/controllers" - "github.com/owncast/owncast/core/data" ) // ApproveFollower will approve a federated follow request. @@ -35,19 +33,19 @@ func ApproveFollower(w http.ResponseWriter, r *http.Request) { return } - localAccountName := data.GetDefaultFederationUsername() + // localAccountName := data.GetDefaultFederationUsername() - follower, err := persistence.GetFollower(approval.ActorIRI) - if err != nil { - controllers.WriteSimpleResponse(w, false, err.Error()) - return - } + // follower, err := persistence.GetFollower(approval.ActorIRI) + // if err != nil { + // controllers.WriteSimpleResponse(w, false, err.Error()) + // return + // } - // Send the approval to the follow requestor. - if err := requests.SendFollowAccept(follower.Inbox, follower.FollowRequestIri, localAccountName); err != nil { - controllers.WriteSimpleResponse(w, false, err.Error()) - return - } + // // Send the approval to the follow requestor. + // if err := requests.SendFollowAccept(follower.Inbox, follower.FollowRequestIri, localAccountName); err != nil { + // controllers.WriteSimpleResponse(w, false, err.Error()) + // return + // } } else { // Remove/block a follower if err := persistence.BlockOrRejectFollower(approval.ActorIRI); err != nil { |