From 17903c6dae9eb38ac221fb7cf86e5e3cafe465d0 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 10 Nov 2016 00:03:33 +0100 Subject: Improve filtering of public/hashtag timelines, both in backlog and real-time --- app/lib/feed_manager.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'app/lib') diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb index af7b2380e..fe88c0fb9 100644 --- a/app/lib/feed_manager.rb +++ b/app/lib/feed_manager.rb @@ -14,6 +14,8 @@ class FeedManager filter_from_home?(status, receiver) elsif timeline_type == :mentions filter_from_mentions?(status, receiver) + elsif timeline_type == :public + filter_from_public?(status, receiver) else false end @@ -80,4 +82,16 @@ class FeedManager should_filter = should_filter || receiver.blocking?(status.account) # or it's from someone I blocked should_filter end + + def filter_from_public?(status, receiver) + should_filter = receiver.blocking?(status.account) + + if status.reply? && !status.thread.account.nil? + should_filter = should_filter || receiver.blocking?(status.thread.account) + elsif status.reblog? + should_filter = should_filter || receiver.blocking?(status.reblog.account) + end + + should_filter + end end -- cgit