diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mastodon/accounts_cli.rb | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb index f02b2149b..41e902e8f 100644 --- a/lib/mastodon/accounts_cli.rb +++ b/lib/mastodon/accounts_cli.rb @@ -219,12 +219,14 @@ module Mastodon def cull skip_threshold = 7.days.ago culled = 0 + dry_run_culled = [] skip_domains = Set.new dry_run = options[:dry_run] ? ' (DRY RUN)' : '' Account.remote.where(protocol: :activitypub).partitioned.find_each do |account| next if account.updated_at >= skip_threshold || (account.last_webfingered_at.present? && account.last_webfingered_at >= skip_threshold) + code = 0 unless skip_domains.include?(account.domain) begin code = Request.new(:head, account.uri).perform(&:code) @@ -236,7 +238,11 @@ module Mastodon end if [404, 410].include?(code) - SuspendAccountService.new.call(account, destroy: true) unless options[:dry_run] + if options[:dry_run] + dry_run_culled << account.acct + else + SuspendAccountService.new.call(account, destroy: true) + end culled += 1 say('+', :green, false) else @@ -252,6 +258,11 @@ module Mastodon say('The following servers were not available during the check:', :yellow) skip_domains.each { |domain| say(' ' + domain) } end + + unless dry_run_culled.empty? + say('The following accounts would have been deleted:', :green) + dry_run_culled.each { |account| say(' ' + account) } + end end option :all, type: :boolean |