diff options
author | multiple creatures <dev@multiple-creature.party> | 2019-12-07 22:13:32 -0600 |
---|---|---|
committer | multiple creatures <dev@multiple-creature.party> | 2019-12-07 22:13:32 -0600 |
commit | 6fa9c3eb1bb416bdc05f8bd4011de396e6248aa5 (patch) | |
tree | bed741486425885e22caa0d1fb44872227b67615 /app/lib/feed_manager.rb | |
parent | feceb543fd6df602c8c117247488e415ef89b78a (diff) |
add option to toggle whether regex filters should be applied to mentions
Diffstat (limited to 'app/lib/feed_manager.rb')
-rw-r--r-- | app/lib/feed_manager.rb | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb index b2f040811..68e4df4ef 100644 --- a/app/lib/feed_manager.rb +++ b/app/lib/feed_manager.rb @@ -155,6 +155,15 @@ class FeedManager end def filter_from_home?(status, receiver_id) + return true if redis.sismember("filtered_statuses:#{receiver_id}", status.id) + if _filter_from_home?(status, receiver_id) + redis.sadd("filtered_statuses:#{receiver_id}", status.id) + return true + end + false + end + + 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 phrase_filtered?(status, receiver_id) @@ -187,7 +196,7 @@ class FeedManager def filter_from_mentions?(status, receiver_id) return true if receiver_id == status.account_id - return true if phrase_filtered?(status, receiver_id) + return true if Account.find(receiver_id)&.user&.filters_mentions? && phrase_filtered?(status, receiver_id) # This filter is called from NotifyService, but already after the sender of # the notification has been checked for mute/block. Therefore, it's not |