about summary refs log tree commit diff
path: root/app/lib
diff options
context:
space:
mode:
authorDavid Yip <yipdw@member.fsf.org>2018-06-03 19:41:54 -0500
committerDavid Yip <yipdw@member.fsf.org>2018-06-03 23:00:50 -0500
commit26573ad7e67e64d6db222877cf2853920c2c7dae (patch)
tree18d16514ea853d20ccb04eef858c7966690ba69c /app/lib
parent37d495eeeb810127e0c6c62bff865c1ba66f45c8 (diff)
Thread scopes through #matches?. #454.
Also add an apply_to_mentions attribute on Glitch::KeywordMute, which is
used to calculate scope.  Next up: additions to the test suite to
demonstrate how scoping works.
Diffstat (limited to 'app/lib')
-rw-r--r--app/lib/feed_manager.rb8
1 files changed, 4 insertions, 4 deletions
diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb
index 3a2dcac68..74794f00c 100644
--- a/app/lib/feed_manager.rb
+++ b/app/lib/feed_manager.rb
@@ -153,7 +153,7 @@ class FeedManager
   def filter_from_home?(status, receiver_id)
     return false if receiver_id == status.account_id
     return true  if status.reply? && (status.in_reply_to_id.nil? || status.in_reply_to_account_id.nil?)
-    return true if keyword_filter?(status, receiver_id)
+    return true if keyword_filter?(status, receiver_id, Glitch::KeywordMute::Scopes::HomeFeed)
 
     check_for_mutes = [status.account_id]
     check_for_mutes.concat(status.mentions.pluck(:account_id))
@@ -182,8 +182,8 @@ class FeedManager
     false
   end
 
-  def keyword_filter?(status, receiver_id)
-    Glitch::KeywordMuteHelper.new(receiver_id).matches?(status)
+  def keyword_filter?(status, receiver_id, scope)
+    Glitch::KeywordMuteHelper.new(receiver_id).matches?(status, scope)
   end
 
   def filter_from_mentions?(status, receiver_id)
@@ -197,7 +197,7 @@ class FeedManager
 
     should_filter   = blocks_or_mutes?(receiver_id, check_for_blocks, :mentions)                                                         # Filter if it's from someone I blocked, in reply to someone I blocked, or mentioning someone I blocked (or muted)
     should_filter ||= (status.account.silenced? && !Follow.where(account_id: receiver_id, target_account_id: status.account_id).exists?) # of if the account is silenced and I'm not following them
-    should_filter ||= keyword_filter?(status, receiver_id)                                                                               # or if the mention contains a muted keyword
+    should_filter ||= keyword_filter?(status, receiver_id, Glitch::KeywordMute::Scopes::Mentions)                                        # or if the mention contains a muted keyword
 
     should_filter
   end