diff options
Diffstat (limited to 'internal/processing/workers/surfacetimeline.go')
-rw-r--r-- | internal/processing/workers/surfacetimeline.go | 68 |
1 files changed, 34 insertions, 34 deletions
diff --git a/internal/processing/workers/surfacetimeline.go b/internal/processing/workers/surfacetimeline.go index 14634f846..65b039939 100644 --- a/internal/processing/workers/surfacetimeline.go +++ b/internal/processing/workers/surfacetimeline.go @@ -36,14 +36,14 @@ import ( // It will also handle notifications for any mentions attached to // the account, and notifications for any local accounts that want // to know when this account posts. -func (s *surface) timelineAndNotifyStatus(ctx context.Context, status *gtsmodel.Status) error { +func (s *Surface) timelineAndNotifyStatus(ctx context.Context, status *gtsmodel.Status) error { // Ensure status fully populated; including account, mentions, etc. - if err := s.state.DB.PopulateStatus(ctx, status); err != nil { + if err := s.State.DB.PopulateStatus(ctx, status); err != nil { return gtserror.Newf("error populating status with id %s: %w", status.ID, err) } // Get all local followers of the account that posted the status. - follows, err := s.state.DB.GetAccountLocalFollowers(ctx, status.AccountID) + follows, err := s.State.DB.GetAccountLocalFollowers(ctx, status.AccountID) if err != nil { return gtserror.Newf("error getting local followers of account %s: %w", status.AccountID, err) } @@ -79,7 +79,7 @@ func (s *surface) timelineAndNotifyStatus(ctx context.Context, status *gtsmodel. // adding the status to list timelines + home timelines of each // follower, as appropriate, and notifying each follower of the // new status, if the status is eligible for notification. -func (s *surface) timelineAndNotifyStatusForFollowers( +func (s *Surface) timelineAndNotifyStatusForFollowers( ctx context.Context, status *gtsmodel.Status, follows []*gtsmodel.Follow, @@ -98,7 +98,7 @@ func (s *surface) timelineAndNotifyStatusForFollowers( // If it's not timelineable, we can just stop early, since lists // are prettymuch subsets of the home timeline, so if it shouldn't // appear there, it shouldn't appear in lists either. - timelineable, err := s.filter.StatusHomeTimelineable( + timelineable, err := s.Filter.StatusHomeTimelineable( ctx, follow.Account, status, ) if err != nil { @@ -124,7 +124,7 @@ func (s *surface) timelineAndNotifyStatusForFollowers( // of this follow, if applicable. homeTimelined, err := s.timelineStatus( ctx, - s.state.Timelines.Home.IngestOne, + s.State.Timelines.Home.IngestOne, follow.AccountID, // home timelines are keyed by account ID follow.Account, status, @@ -160,7 +160,7 @@ func (s *surface) timelineAndNotifyStatusForFollowers( // - This is a top-level post (not a reply or boost). // // That means we can officially notify this one. - if err := s.notify(ctx, + if err := s.Notify(ctx, gtsmodel.NotificationStatus, follow.Account, status.Account, @@ -175,7 +175,7 @@ func (s *surface) timelineAndNotifyStatusForFollowers( // listTimelineStatusForFollow puts the given status // in any eligible lists owned by the given follower. -func (s *surface) listTimelineStatusForFollow( +func (s *Surface) listTimelineStatusForFollow( ctx context.Context, status *gtsmodel.Status, follow *gtsmodel.Follow, @@ -189,7 +189,7 @@ func (s *surface) listTimelineStatusForFollow( // inclusion in the list. // Get every list entry that targets this follow's ID. - listEntries, err := s.state.DB.GetListEntriesForFollowID( + listEntries, err := s.State.DB.GetListEntriesForFollowID( // We only need the list IDs. gtscontext.SetBarebones(ctx), follow.ID, @@ -217,7 +217,7 @@ func (s *surface) listTimelineStatusForFollow( // list that this list entry belongs to. if _, err := s.timelineStatus( ctx, - s.state.Timelines.List.IngestOne, + s.State.Timelines.List.IngestOne, listEntry.ListID, // list timelines are keyed by list ID follow.Account, status, @@ -232,7 +232,7 @@ func (s *surface) listTimelineStatusForFollow( // listEligible checks if the given status is eligible // for inclusion in the list that that the given listEntry // belongs to, based on the replies policy of the list. -func (s *surface) listEligible( +func (s *Surface) listEligible( ctx context.Context, listEntry *gtsmodel.ListEntry, status *gtsmodel.Status, @@ -253,7 +253,7 @@ func (s *surface) listEligible( // We need to fetch the list that this // entry belongs to, in order to check // the list's replies policy. - list, err := s.state.DB.GetListByID( + list, err := s.State.DB.GetListByID( ctx, listEntry.ListID, ) if err != nil { @@ -273,7 +273,7 @@ func (s *surface) listEligible( // // Check if replied-to account is // also included in this list. - includes, err := s.state.DB.ListIncludesAccount( + includes, err := s.State.DB.ListIncludesAccount( ctx, list.ID, status.InReplyToAccountID, @@ -295,7 +295,7 @@ func (s *surface) listEligible( // // Check if replied-to account is // followed by list owner account. - follows, err := s.state.DB.IsFollowing( + follows, err := s.State.DB.IsFollowing( ctx, list.AccountID, status.InReplyToAccountID, @@ -325,7 +325,7 @@ func (s *surface) listEligible( // // If the status was inserted into the timeline, true will be returned // + it will also be streamed to the user using the given streamType. -func (s *surface) timelineStatus( +func (s *Surface) timelineStatus( ctx context.Context, ingest func(context.Context, string, timeline.Timelineable) (bool, error), timelineID string, @@ -343,26 +343,26 @@ func (s *surface) timelineStatus( } // The status was inserted so stream it to the user. - apiStatus, err := s.converter.StatusToAPIStatus(ctx, status, account) + apiStatus, err := s.Converter.StatusToAPIStatus(ctx, status, account) if err != nil { err = gtserror.Newf("error converting status %s to frontend representation: %w", status.ID, err) return true, err } - s.stream.Update(ctx, account, apiStatus, streamType) + s.Stream.Update(ctx, account, apiStatus, streamType) return true, nil } // deleteStatusFromTimelines completely removes the given status from all timelines. // It will also stream deletion of the status to all open streams. -func (s *surface) deleteStatusFromTimelines(ctx context.Context, statusID string) error { - if err := s.state.Timelines.Home.WipeItemFromAllTimelines(ctx, statusID); err != nil { +func (s *Surface) deleteStatusFromTimelines(ctx context.Context, statusID string) error { + if err := s.State.Timelines.Home.WipeItemFromAllTimelines(ctx, statusID); err != nil { return err } - if err := s.state.Timelines.List.WipeItemFromAllTimelines(ctx, statusID); err != nil { + if err := s.State.Timelines.List.WipeItemFromAllTimelines(ctx, statusID); err != nil { return err } - s.stream.Delete(ctx, statusID) + s.Stream.Delete(ctx, statusID) return nil } @@ -370,15 +370,15 @@ func (s *surface) deleteStatusFromTimelines(ctx context.Context, statusID string // unpreparing it from all timelines, forcing it to be prepared again (with updated // stats, boost counts, etc) next time it's fetched by the timeline owner. This goes // both for the status itself, and for any boosts of the status. -func (s *surface) invalidateStatusFromTimelines(ctx context.Context, statusID string) { - if err := s.state.Timelines.Home.UnprepareItemFromAllTimelines(ctx, statusID); err != nil { +func (s *Surface) invalidateStatusFromTimelines(ctx context.Context, statusID string) { + if err := s.State.Timelines.Home.UnprepareItemFromAllTimelines(ctx, statusID); err != nil { log. WithContext(ctx). WithField("statusID", statusID). Errorf("error unpreparing status from home timelines: %v", err) } - if err := s.state.Timelines.List.UnprepareItemFromAllTimelines(ctx, statusID); err != nil { + if err := s.State.Timelines.List.UnprepareItemFromAllTimelines(ctx, statusID); err != nil { log. WithContext(ctx). WithField("statusID", statusID). @@ -392,14 +392,14 @@ func (s *surface) invalidateStatusFromTimelines(ctx context.Context, statusID st // Note that calling invalidateStatusFromTimelines takes care of the // state in general, we just need to do this for any streams that are // open right now. -func (s *surface) timelineStatusUpdate(ctx context.Context, status *gtsmodel.Status) error { +func (s *Surface) timelineStatusUpdate(ctx context.Context, status *gtsmodel.Status) error { // Ensure status fully populated; including account, mentions, etc. - if err := s.state.DB.PopulateStatus(ctx, status); err != nil { + if err := s.State.DB.PopulateStatus(ctx, status); err != nil { return gtserror.Newf("error populating status with id %s: %w", status.ID, err) } // Get all local followers of the account that posted the status. - follows, err := s.state.DB.GetAccountLocalFollowers(ctx, status.AccountID) + follows, err := s.State.DB.GetAccountLocalFollowers(ctx, status.AccountID) if err != nil { return gtserror.Newf("error getting local followers of account %s: %w", status.AccountID, err) } @@ -427,7 +427,7 @@ func (s *surface) timelineStatusUpdate(ctx context.Context, status *gtsmodel.Sta // slice of followers of the account that posted the given status, // pushing update messages into open list/home streams of each // follower. -func (s *surface) timelineStatusUpdateForFollowers( +func (s *Surface) timelineStatusUpdateForFollowers( ctx context.Context, status *gtsmodel.Status, follows []*gtsmodel.Follow, @@ -444,7 +444,7 @@ func (s *surface) timelineStatusUpdateForFollowers( // If it's not timelineable, we can just stop early, since lists // are prettymuch subsets of the home timeline, so if it shouldn't // appear there, it shouldn't appear in lists either. - timelineable, err := s.filter.StatusHomeTimelineable( + timelineable, err := s.Filter.StatusHomeTimelineable( ctx, follow.Account, status, ) if err != nil { @@ -485,7 +485,7 @@ func (s *surface) timelineStatusUpdateForFollowers( // listTimelineStatusUpdateForFollow pushes edits of the given status // into any eligible lists streams opened by the given follower. -func (s *surface) listTimelineStatusUpdateForFollow( +func (s *Surface) listTimelineStatusUpdateForFollow( ctx context.Context, status *gtsmodel.Status, follow *gtsmodel.Follow, @@ -499,7 +499,7 @@ func (s *surface) listTimelineStatusUpdateForFollow( // inclusion in the list. // Get every list entry that targets this follow's ID. - listEntries, err := s.state.DB.GetListEntriesForFollowID( + listEntries, err := s.State.DB.GetListEntriesForFollowID( // We only need the list IDs. gtscontext.SetBarebones(ctx), follow.ID, @@ -539,17 +539,17 @@ func (s *surface) listTimelineStatusUpdateForFollow( // timelineStatusUpdate streams the edited status to the user using the // given streamType. -func (s *surface) timelineStreamStatusUpdate( +func (s *Surface) timelineStreamStatusUpdate( ctx context.Context, account *gtsmodel.Account, status *gtsmodel.Status, streamType string, ) error { - apiStatus, err := s.converter.StatusToAPIStatus(ctx, status, account) + apiStatus, err := s.Converter.StatusToAPIStatus(ctx, status, account) if err != nil { err = gtserror.Newf("error converting status %s to frontend representation: %w", status.ID, err) return err } - s.stream.StatusUpdate(ctx, account, apiStatus, streamType) + s.Stream.StatusUpdate(ctx, account, apiStatus, streamType) return nil } |