]> cat aescling's git repositories - mastodon.git/commitdiff
When cleaning up remote statuses, keep bookmarked ones
authorThibaut Girka <thib@sitedethib.com>
Wed, 17 Jul 2019 19:54:03 +0000 (21:54 +0200)
committerThibG <thib@sitedethib.com>
Thu, 18 Jul 2019 11:34:54 +0000 (13:34 +0200)
lib/mastodon/statuses_cli.rb

index 7f2fbfa85d438f560c36ca282798de4ca9236234..6271c99dff9f8cabc126b202f8721db9ddd2f92a 100644 (file)
@@ -41,6 +41,7 @@ module Mastodon
             .where('id NOT IN (SELECT status_pins.status_id FROM status_pins WHERE statuses.id = status_id)')                                                                                                                      # Skip statuses that are pinned on profiles
             .where('id NOT IN (SELECT mentions.status_id FROM mentions WHERE statuses.id = mentions.status_id AND mentions.account_id IN (SELECT accounts.id FROM accounts WHERE domain IS NULL))')                                # Skip statuses that mention local accounts
             .where('id NOT IN (SELECT statuses1.in_reply_to_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.in_reply_to_id)')                                                                                          # Skip statuses favourited by local accounts
+            .where('id NOT IN (SELECT bookmarks.status_id FROM bookmarks WHERE statuses.id = bookmarks.status_id') # Skip statuses bookmarked by local users
             .where('id NOT IN (SELECT statuses1.reblog_of_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.reblog_of_id AND statuses1.account_id IN (SELECT accounts.id FROM accounts WHERE accounts.domain IS NULL))') # Skip statuses reblogged by local accounts
             .where('account_id NOT IN (SELECT follows.target_account_id FROM follows WHERE statuses.account_id = follows.target_account_id)')                                                                                      # Skip accounts followed by local accounts
             .in_batches