From af997e3cb9ca1d64e4d51d2973069a62a4686d0a Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 2 Oct 2019 00:13:57 +0200 Subject: [PATCH] Change `tootctl domains purge` to accept multiple domains at once --- lib/mastodon/domains_cli.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/mastodon/domains_cli.rb b/lib/mastodon/domains_cli.rb index 8e52de1c35662e..b5435bb5e52043 100644 --- a/lib/mastodon/domains_cli.rb +++ b/lib/mastodon/domains_cli.rb @@ -17,7 +17,7 @@ def self.exit_on_failure? option :verbose, type: :boolean, aliases: [:v] option :dry_run, type: :boolean option :whitelist_mode, type: :boolean - desc 'purge [DOMAIN]', 'Remove accounts from a DOMAIN without a trace' + desc 'purge [DOMAIN...]', 'Remove accounts from a DOMAIN without a trace' long_desc <<-LONG_DESC Remove all accounts from a given DOMAIN without leaving behind any records. Unlike a suspension, if the DOMAIN still exists in the wild, @@ -27,16 +27,16 @@ def self.exit_on_failure? from a single domain, all accounts from domains that are not whitelisted are removed from the database. LONG_DESC - def purge(domain = nil) + def purge(*domains) dry_run = options[:dry_run] ? ' (DRY RUN)' : '' scope = begin if options[:whitelist_mode] Account.remote.where.not(domain: DomainAllow.pluck(:domain)) - elsif domain.present? - Account.remote.where(domain: domain) + elsif !domains.empty? + Account.remote.where(domain: domains) else - say('No domain given', :red) + say('No domain(s) given', :red) exit(1) end end @@ -45,11 +45,11 @@ def purge(domain = nil) SuspendAccountService.new.call(account, reserve_username: false, skip_side_effects: true) unless options[:dry_run] end - DomainBlock.where(domain: domain).destroy_all unless options[:dry_run] + DomainBlock.where(domain: domains).destroy_all unless options[:dry_run] say("Removed #{processed} accounts#{dry_run}", :green) - custom_emojis = CustomEmoji.where(domain: domain) + custom_emojis = CustomEmoji.where(domain: domains) custom_emojis_count = custom_emojis.count custom_emojis.destroy_all unless options[:dry_run]