From 1de2833f3045d48ab6d696a109a7a71f6a469135 Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
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 111172e9ab..3f150c5dea 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)
-- 
GitLab