From 9770d54237bea828cab7e50aec7dff452c203138 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Wed, 9 Aug 2023 19:14:33 +0200 Subject: [feature] List replies policy, refactor async workers (#2087) * Add/update some DB functions. * move async workers into subprocessor * rename FromFederator -> FromFediAPI * update home timeline check to include check for current status first before moving to parent status * change streamMap to pointer to mollify linter * update followtoas func signature * fix merge * remove errant debug log * don't use separate errs.Combine() check to wrap errs * wrap parts of workers functionality in sub-structs * populate report using new db funcs * embed federator (tiny bit tidier) * flesh out error msg, add continue(!) * fix other error messages to be more specific * better, nicer * give parseURI util function a bit more util * missing headers * use pointers for subprocessors --- internal/typeutils/converter.go | 2 +- internal/typeutils/internaltoas.go | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'internal/typeutils') diff --git a/internal/typeutils/converter.go b/internal/typeutils/converter.go index cb69cba5d..73992fc0e 100644 --- a/internal/typeutils/converter.go +++ b/internal/typeutils/converter.go @@ -156,7 +156,7 @@ type TypeConverter interface { // URI of the status as object, and addressing the Delete appropriately. StatusToASDelete(ctx context.Context, status *gtsmodel.Status) (vocab.ActivityStreamsDelete, error) // FollowToASFollow converts a gts model Follow into an activity streams Follow, suitable for federation - FollowToAS(ctx context.Context, f *gtsmodel.Follow, originAccount *gtsmodel.Account, targetAccount *gtsmodel.Account) (vocab.ActivityStreamsFollow, error) + FollowToAS(ctx context.Context, f *gtsmodel.Follow) (vocab.ActivityStreamsFollow, error) // MentionToAS converts a gts model mention into an activity streams Mention, suitable for federation MentionToAS(ctx context.Context, m *gtsmodel.Mention) (vocab.ActivityStreamsMention, error) // EmojiToAS converts a gts emoji into a mastodon ns Emoji, suitable for federation diff --git a/internal/typeutils/internaltoas.go b/internal/typeutils/internaltoas.go index 60ab24383..f10205b13 100644 --- a/internal/typeutils/internaltoas.go +++ b/internal/typeutils/internaltoas.go @@ -774,10 +774,14 @@ func (c *converter) StatusToASDelete(ctx context.Context, s *gtsmodel.Status) (v return delete, nil } -func (c *converter) FollowToAS(ctx context.Context, f *gtsmodel.Follow, originAccount *gtsmodel.Account, targetAccount *gtsmodel.Account) (vocab.ActivityStreamsFollow, error) { - // parse out the various URIs we need for this - // origin account (who's doing the follow) - originAccountURI, err := url.Parse(originAccount.URI) +func (c *converter) FollowToAS(ctx context.Context, f *gtsmodel.Follow) (vocab.ActivityStreamsFollow, error) { + if err := c.db.PopulateFollow(ctx, f); err != nil { + return nil, gtserror.Newf("error populating follow: %w", err) + } + + // Parse out the various URIs we need for this + // origin account (who's doing the follow). + originAccountURI, err := url.Parse(f.Account.URI) if err != nil { return nil, fmt.Errorf("followtoasfollow: error parsing origin account uri: %s", err) } @@ -785,7 +789,7 @@ func (c *converter) FollowToAS(ctx context.Context, f *gtsmodel.Follow, originAc originActor.AppendIRI(originAccountURI) // target account (who's being followed) - targetAccountURI, err := url.Parse(targetAccount.URI) + targetAccountURI, err := url.Parse(f.TargetAccount.URI) if err != nil { return nil, fmt.Errorf("followtoasfollow: error parsing target account uri: %s", err) } -- cgit v1.2.3