summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Kangas <gabek@real-ity.com>2022-04-07 16:14:47 -0700
committerGabe Kangas <gabek@real-ity.com>2022-04-07 16:14:47 -0700
commit14389ff0293a3fa7a1f2abd93c80e5595c451438 (patch)
treeaab8b16432fd9095abbf4f886295fa5e016dbf6c
parentaf90373e7289a8afa0d9203ccff6e8b7a1adc8be (diff)
Troubleshoot misskey followsgek/debug/misskey-follows
-rw-r--r--activitypub/inbox/follow.go2
-rw-r--r--activitypub/requests/acceptFollow.go23
-rw-r--r--controllers/admin/followers.go24
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 {