From 1de2833f3045d48ab6d696a109a7a71f6a469135 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 16 Oct 2016 18:35:20 +0200 Subject: [PATCH] Filter out reblogs of blocked users from public timeline (the not real-time variant) --- app/models/status.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/status.rb b/app/models/status.rb index 111172e9..3f150c5d 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -86,7 +86,7 @@ class Status < ApplicationRecord end def self.as_public_timeline(account) - where.not(account_id: account.blocking).with_includes.with_counters + joins('LEFT JOIN statuses AS reblogs ON reblogs.id = statuses.reblog_of_id').where('reblogs.account_id NOT IN (SELECT target_account_id FROM blocks WHERE account_id = ?) AND statuses.account_id NOT IN (SELECT target_account_id FROM blocks WHERE account_id = ?)', account.id, account.id).with_includes.with_counters end def self.favourites_map(status_ids, account_id)