diff options
author | multiple creatures <dev@multiple-creature.party> | 2019-12-03 16:37:32 -0600 |
---|---|---|
committer | multiple creatures <dev@multiple-creature.party> | 2019-12-03 17:06:43 -0600 |
commit | 04ec25754b98be080114c9f121b66d7def6de2b5 (patch) | |
tree | da76928d839277638fdf13a8679df5fa123b43fc /app/lib | |
parent | 5475adfbc94fad779a421168da1030e38bb138a4 (diff) |
cache list of already-filtered statuses
Diffstat (limited to 'app/lib')
-rw-r--r-- | app/lib/status_filter.rb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/app/lib/status_filter.rb b/app/lib/status_filter.rb index 0cc1ce85c..f4053947b 100644 --- a/app/lib/status_filter.rb +++ b/app/lib/status_filter.rb @@ -2,6 +2,7 @@ class StatusFilter include FilterHelper + include Redisable attr_reader :status, :account @@ -12,8 +13,13 @@ class StatusFilter end def filtered? + return true if redis.sismember("filtered_statuses:#{@account.id}", @status.id) return false if !account.nil? && account.id == status.account_id - return true if blocked_by_policy? || (account_present? && filtered_status?) || silenced_account? + if blocked_by_policy? || (account_present? && filtered_status?) || silenced_account? + redis.sadd("filtered_statuses:#{@account.id}", @status.id) + return true + end + false end private |