diff options
author | 2023-09-29 10:39:35 +0200 | |
---|---|---|
committer | 2023-09-29 10:39:35 +0200 | |
commit | b6b8f82c874ed555f67439a4e012d1003a8c5255 (patch) | |
tree | 8541d082ce1081cbca1b906703c78fd4cc67fb61 /internal/processing/workers | |
parent | [chore] Enable S256 code challenge (#2224) (diff) | |
download | gotosocial-b6b8f82c874ed555f67439a4e012d1003a8c5255.tar.xz |
[bugfix] Move follow.show_reblogs check further up to avoid showing unwanted reblogs in home timeline (#2234)
Diffstat (limited to 'internal/processing/workers')
-rw-r--r-- | internal/processing/workers/surfacetimeline.go | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/internal/processing/workers/surfacetimeline.go b/internal/processing/workers/surfacetimeline.go index a13e6bc70..a45c83188 100644 --- a/internal/processing/workers/surfacetimeline.go +++ b/internal/processing/workers/surfacetimeline.go @@ -91,9 +91,13 @@ func (s *surface) timelineAndNotifyStatusForFollowers( ) for _, follow := range follows { - // Do an initial rough-grained check to see if the - // status is timelineable for this follower at all - // based on its visibility and who it replies to etc. + // Check to see if the status is timelineable for this follower, + // taking account of its visibility, who it replies to, and, if + // it's a reblog, whether follower account wants to see reblogs. + // + // 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( ctx, follow.Account, status, ) @@ -107,17 +111,6 @@ func (s *surface) timelineAndNotifyStatusForFollowers( continue } - if boost && !*follow.ShowReblogs { - // Status is a boost, but the owner of - // this follow doesn't want to see boosts - // from this account. We can safely skip - // everything, then, because we also know - // that the follow owner won't want to be - // have the status put in any list timelines, - // or be notified about the status either. - continue - } - // Add status to any relevant lists // for this follow, if applicable. s.listTimelineStatusForFollow( |