mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-24 09:57:27 +00:00
Consistent usage of CLI dry_run?
method (#25116)
This commit is contained in:
parent
3d253b9830
commit
ec9bc7e604
|
@ -217,7 +217,6 @@ module Mastodon::CLI
|
||||||
exit(1)
|
exit(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
|
|
||||||
account = nil
|
account = nil
|
||||||
|
|
||||||
if username.present?
|
if username.present?
|
||||||
|
@ -234,9 +233,9 @@ module Mastodon::CLI
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
say("Deleting user with #{account.statuses_count} statuses, this might take a while...#{dry_run}")
|
say("Deleting user with #{account.statuses_count} statuses, this might take a while...#{dry_run_mode_suffix}")
|
||||||
DeleteAccountService.new.call(account, reserve_email: false) unless options[:dry_run]
|
DeleteAccountService.new.call(account, reserve_email: false) unless dry_run?
|
||||||
say("OK#{dry_run}", :green)
|
say("OK#{dry_run_mode_suffix}", :green)
|
||||||
end
|
end
|
||||||
|
|
||||||
option :force, type: :boolean, aliases: [:f], description: 'Override public key check'
|
option :force, type: :boolean, aliases: [:f], description: 'Override public key check'
|
||||||
|
@ -291,7 +290,7 @@ module Mastodon::CLI
|
||||||
Account.remote.select(:uri, 'count(*)').group(:uri).having('count(*) > 1').pluck(:uri).each do |uri|
|
Account.remote.select(:uri, 'count(*)').group(:uri).having('count(*) > 1').pluck(:uri).each do |uri|
|
||||||
say("Duplicates found for #{uri}")
|
say("Duplicates found for #{uri}")
|
||||||
begin
|
begin
|
||||||
ActivityPub::FetchRemoteAccountService.new.call(uri) unless options[:dry_run]
|
ActivityPub::FetchRemoteAccountService.new.call(uri) unless dry_run?
|
||||||
rescue => e
|
rescue => e
|
||||||
say("Error processing #{uri}: #{e}", :red)
|
say("Error processing #{uri}: #{e}", :red)
|
||||||
end
|
end
|
||||||
|
@ -332,7 +331,6 @@ module Mastodon::CLI
|
||||||
LONG_DESC
|
LONG_DESC
|
||||||
def cull(*domains)
|
def cull(*domains)
|
||||||
skip_threshold = 7.days.ago
|
skip_threshold = 7.days.ago
|
||||||
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
|
|
||||||
skip_domains = Concurrent::Set.new
|
skip_domains = Concurrent::Set.new
|
||||||
|
|
||||||
query = Account.remote.where(protocol: :activitypub)
|
query = Account.remote.where(protocol: :activitypub)
|
||||||
|
@ -350,7 +348,7 @@ module Mastodon::CLI
|
||||||
end
|
end
|
||||||
|
|
||||||
if [404, 410].include?(code)
|
if [404, 410].include?(code)
|
||||||
DeleteAccountService.new.call(account, reserve_username: false) unless options[:dry_run]
|
DeleteAccountService.new.call(account, reserve_username: false) unless dry_run?
|
||||||
1
|
1
|
||||||
else
|
else
|
||||||
# Touch account even during dry run to avoid getting the account into the window again
|
# Touch account even during dry run to avoid getting the account into the window again
|
||||||
|
@ -358,7 +356,7 @@ module Mastodon::CLI
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
say("Visited #{processed} accounts, removed #{culled}#{dry_run}", :green)
|
say("Visited #{processed} accounts, removed #{culled}#{dry_run_mode_suffix}", :green)
|
||||||
|
|
||||||
unless skip_domains.empty?
|
unless skip_domains.empty?
|
||||||
say('The following domains were not available during the check:', :yellow)
|
say('The following domains were not available during the check:', :yellow)
|
||||||
|
@ -381,21 +379,19 @@ module Mastodon::CLI
|
||||||
specified with space-separated USERNAMES.
|
specified with space-separated USERNAMES.
|
||||||
LONG_DESC
|
LONG_DESC
|
||||||
def refresh(*usernames)
|
def refresh(*usernames)
|
||||||
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
|
|
||||||
|
|
||||||
if options[:domain] || options[:all]
|
if options[:domain] || options[:all]
|
||||||
scope = Account.remote
|
scope = Account.remote
|
||||||
scope = scope.where(domain: options[:domain]) if options[:domain]
|
scope = scope.where(domain: options[:domain]) if options[:domain]
|
||||||
|
|
||||||
processed, = parallelize_with_progress(scope) do |account|
|
processed, = parallelize_with_progress(scope) do |account|
|
||||||
next if options[:dry_run]
|
next if dry_run?
|
||||||
|
|
||||||
account.reset_avatar!
|
account.reset_avatar!
|
||||||
account.reset_header!
|
account.reset_header!
|
||||||
account.save
|
account.save
|
||||||
end
|
end
|
||||||
|
|
||||||
say("Refreshed #{processed} accounts#{dry_run}", :green, true)
|
say("Refreshed #{processed} accounts#{dry_run_mode_suffix}", :green, true)
|
||||||
elsif !usernames.empty?
|
elsif !usernames.empty?
|
||||||
usernames.each do |user|
|
usernames.each do |user|
|
||||||
user, domain = user.split('@')
|
user, domain = user.split('@')
|
||||||
|
@ -406,7 +402,7 @@ module Mastodon::CLI
|
||||||
exit(1)
|
exit(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
next if options[:dry_run]
|
next if dry_run?
|
||||||
|
|
||||||
begin
|
begin
|
||||||
account.reset_avatar!
|
account.reset_avatar!
|
||||||
|
@ -417,7 +413,7 @@ module Mastodon::CLI
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
say("OK#{dry_run}", :green)
|
say("OK#{dry_run_mode_suffix}", :green)
|
||||||
else
|
else
|
||||||
say('No account(s) given', :red)
|
say('No account(s) given', :red)
|
||||||
exit(1)
|
exit(1)
|
||||||
|
@ -568,8 +564,6 @@ module Mastodon::CLI
|
||||||
- not muted/blocked by us
|
- not muted/blocked by us
|
||||||
LONG_DESC
|
LONG_DESC
|
||||||
def prune
|
def prune
|
||||||
dry_run = options[:dry_run] ? ' (dry run)' : ''
|
|
||||||
|
|
||||||
query = Account.remote.where.not(actor_type: %i(Application Service))
|
query = Account.remote.where.not(actor_type: %i(Application Service))
|
||||||
query = query.where('NOT EXISTS (SELECT 1 FROM mentions WHERE account_id = accounts.id)')
|
query = query.where('NOT EXISTS (SELECT 1 FROM mentions WHERE account_id = accounts.id)')
|
||||||
query = query.where('NOT EXISTS (SELECT 1 FROM favourites WHERE account_id = accounts.id)')
|
query = query.where('NOT EXISTS (SELECT 1 FROM favourites WHERE account_id = accounts.id)')
|
||||||
|
@ -585,11 +579,11 @@ module Mastodon::CLI
|
||||||
next if account.suspended?
|
next if account.suspended?
|
||||||
next if account.silenced?
|
next if account.silenced?
|
||||||
|
|
||||||
account.destroy unless options[:dry_run]
|
account.destroy unless dry_run?
|
||||||
1
|
1
|
||||||
end
|
end
|
||||||
|
|
||||||
say("OK, pruned #{deleted} accounts#{dry_run}", :green)
|
say("OK, pruned #{deleted} accounts#{dry_run_mode_suffix}", :green)
|
||||||
end
|
end
|
||||||
|
|
||||||
option :force, type: :boolean
|
option :force, type: :boolean
|
||||||
|
|
|
@ -34,7 +34,6 @@ module Mastodon::CLI
|
||||||
When the --purge-domain-blocks option is given, also purge matching domain blocks.
|
When the --purge-domain-blocks option is given, also purge matching domain blocks.
|
||||||
LONG_DESC
|
LONG_DESC
|
||||||
def purge(*domains)
|
def purge(*domains)
|
||||||
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
|
|
||||||
domains = domains.map { |domain| TagManager.instance.normalize_domain(domain) }
|
domains = domains.map { |domain| TagManager.instance.normalize_domain(domain) }
|
||||||
account_scope = Account.none
|
account_scope = Account.none
|
||||||
domain_block_scope = DomainBlock.none
|
domain_block_scope = DomainBlock.none
|
||||||
|
@ -79,23 +78,23 @@ module Mastodon::CLI
|
||||||
|
|
||||||
# Actually perform the deletions
|
# Actually perform the deletions
|
||||||
processed, = parallelize_with_progress(account_scope) do |account|
|
processed, = parallelize_with_progress(account_scope) do |account|
|
||||||
DeleteAccountService.new.call(account, reserve_username: false, skip_side_effects: true) unless options[:dry_run]
|
DeleteAccountService.new.call(account, reserve_username: false, skip_side_effects: true) unless dry_run?
|
||||||
end
|
end
|
||||||
|
|
||||||
say("Removed #{processed} accounts#{dry_run}", :green)
|
say("Removed #{processed} accounts#{dry_run_mode_suffix}", :green)
|
||||||
|
|
||||||
if options[:purge_domain_blocks]
|
if options[:purge_domain_blocks]
|
||||||
domain_block_count = domain_block_scope.count
|
domain_block_count = domain_block_scope.count
|
||||||
domain_block_scope.in_batches.destroy_all unless options[:dry_run]
|
domain_block_scope.in_batches.destroy_all unless dry_run?
|
||||||
say("Removed #{domain_block_count} domain blocks#{dry_run}", :green)
|
say("Removed #{domain_block_count} domain blocks#{dry_run_mode_suffix}", :green)
|
||||||
end
|
end
|
||||||
|
|
||||||
custom_emojis_count = emoji_scope.count
|
custom_emojis_count = emoji_scope.count
|
||||||
emoji_scope.in_batches.destroy_all unless options[:dry_run]
|
emoji_scope.in_batches.destroy_all unless dry_run?
|
||||||
|
|
||||||
Instance.refresh unless options[:dry_run]
|
Instance.refresh unless dry_run?
|
||||||
|
|
||||||
say("Removed #{custom_emojis_count} custom emojis#{dry_run}", :green)
|
say("Removed #{custom_emojis_count} custom emojis#{dry_run_mode_suffix}", :green)
|
||||||
end
|
end
|
||||||
|
|
||||||
option :concurrency, type: :numeric, default: 50, aliases: [:c]
|
option :concurrency, type: :numeric, default: 50, aliases: [:c]
|
||||||
|
|
|
@ -18,14 +18,12 @@ module Mastodon::CLI
|
||||||
Otherwise, a single user specified by USERNAME.
|
Otherwise, a single user specified by USERNAME.
|
||||||
LONG_DESC
|
LONG_DESC
|
||||||
def build(username = nil)
|
def build(username = nil)
|
||||||
dry_run = options[:dry_run] ? '(DRY RUN)' : ''
|
|
||||||
|
|
||||||
if options[:all] || username.nil?
|
if options[:all] || username.nil?
|
||||||
processed, = parallelize_with_progress(Account.joins(:user).merge(User.active)) do |account|
|
processed, = parallelize_with_progress(Account.joins(:user).merge(User.active)) do |account|
|
||||||
PrecomputeFeedService.new.call(account) unless options[:dry_run]
|
PrecomputeFeedService.new.call(account) unless dry_run?
|
||||||
end
|
end
|
||||||
|
|
||||||
say("Regenerated feeds for #{processed} accounts #{dry_run}", :green, true)
|
say("Regenerated feeds for #{processed} accounts #{dry_run_mode_suffix}", :green, true)
|
||||||
elsif username.present?
|
elsif username.present?
|
||||||
account = Account.find_local(username)
|
account = Account.find_local(username)
|
||||||
|
|
||||||
|
@ -34,9 +32,9 @@ module Mastodon::CLI
|
||||||
exit(1)
|
exit(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
PrecomputeFeedService.new.call(account) unless options[:dry_run]
|
PrecomputeFeedService.new.call(account) unless dry_run?
|
||||||
|
|
||||||
say("OK #{dry_run}", :green, true)
|
say("OK #{dry_run_mode_suffix}", :green, true)
|
||||||
else
|
else
|
||||||
say('No account(s) given', :red)
|
say('No account(s) given', :red)
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
|
@ -15,6 +15,10 @@ module Mastodon::CLI
|
||||||
options[:dry_run]
|
options[:dry_run]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def dry_run_mode_suffix
|
||||||
|
dry_run? ? ' (DRY RUN)' : ''
|
||||||
|
end
|
||||||
|
|
||||||
def create_progress_bar(total = nil)
|
def create_progress_bar(total = nil)
|
||||||
ProgressBar.create(total: total, format: '%c/%u |%b%i| %e')
|
ProgressBar.create(total: total, format: '%c/%u |%b%i| %e')
|
||||||
end
|
end
|
||||||
|
|
|
@ -94,7 +94,7 @@ module Mastodon::CLI
|
||||||
|
|
||||||
exit(1) unless prompt.ask('Type in the domain of the server to confirm:', required: true) == Rails.configuration.x.local_domain
|
exit(1) unless prompt.ask('Type in the domain of the server to confirm:', required: true) == Rails.configuration.x.local_domain
|
||||||
|
|
||||||
unless options[:dry_run]
|
unless dry_run?
|
||||||
prompt.warn('This operation WILL NOT be reversible. It can also take a long time.')
|
prompt.warn('This operation WILL NOT be reversible. It can also take a long time.')
|
||||||
prompt.warn('While the data won\'t be erased locally, the server will be in a BROKEN STATE afterwards.')
|
prompt.warn('While the data won\'t be erased locally, the server will be in a BROKEN STATE afterwards.')
|
||||||
prompt.warn('A running Sidekiq process is required. Do not shut it down until queues clear.')
|
prompt.warn('A running Sidekiq process is required. Do not shut it down until queues clear.')
|
||||||
|
@ -104,12 +104,11 @@ module Mastodon::CLI
|
||||||
|
|
||||||
inboxes = Account.inboxes
|
inboxes = Account.inboxes
|
||||||
processed = 0
|
processed = 0
|
||||||
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
|
|
||||||
|
|
||||||
Setting.registrations_mode = 'none' unless options[:dry_run]
|
Setting.registrations_mode = 'none' unless dry_run?
|
||||||
|
|
||||||
if inboxes.empty?
|
if inboxes.empty?
|
||||||
Account.local.without_suspended.in_batches.update_all(suspended_at: Time.now.utc, suspension_origin: :local) unless options[:dry_run]
|
Account.local.without_suspended.in_batches.update_all(suspended_at: Time.now.utc, suspension_origin: :local) unless dry_run?
|
||||||
prompt.ok('It seems like your server has not federated with anything')
|
prompt.ok('It seems like your server has not federated with anything')
|
||||||
prompt.ok('You can shut it down and delete it any time')
|
prompt.ok('You can shut it down and delete it any time')
|
||||||
return
|
return
|
||||||
|
@ -126,7 +125,7 @@ module Mastodon::CLI
|
||||||
|
|
||||||
json = Oj.dump(ActivityPub::LinkedDataSignature.new(payload).sign!(account))
|
json = Oj.dump(ActivityPub::LinkedDataSignature.new(payload).sign!(account))
|
||||||
|
|
||||||
unless options[:dry_run]
|
unless dry_run?
|
||||||
ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
|
ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
|
||||||
[json, account.id, inbox_url]
|
[json, account.id, inbox_url]
|
||||||
end
|
end
|
||||||
|
@ -140,7 +139,7 @@ module Mastodon::CLI
|
||||||
Account.local.without_suspended.find_each { |account| delete_account.call(account) }
|
Account.local.without_suspended.find_each { |account| delete_account.call(account) }
|
||||||
Account.local.suspended.joins(:deletion_request).find_each { |account| delete_account.call(account) }
|
Account.local.suspended.joins(:deletion_request).find_each { |account| delete_account.call(account) }
|
||||||
|
|
||||||
prompt.ok("Queued #{inboxes.size * processed} items into Sidekiq for #{processed} accounts#{dry_run}")
|
prompt.ok("Queued #{inboxes.size * processed} items into Sidekiq for #{processed} accounts#{dry_run_mode_suffix}")
|
||||||
prompt.ok('Wait until Sidekiq processes all items, then you can shut everything down and delete the data')
|
prompt.ok('Wait until Sidekiq processes all items, then you can shut everything down and delete the data')
|
||||||
rescue TTY::Reader::InputInterrupt
|
rescue TTY::Reader::InputInterrupt
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
|
@ -35,12 +35,12 @@ module Mastodon::CLI
|
||||||
say('--prune-profiles and --remove-headers should not be specified simultaneously', :red, true)
|
say('--prune-profiles and --remove-headers should not be specified simultaneously', :red, true)
|
||||||
exit(1)
|
exit(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
if options[:include_follows] && !(options[:prune_profiles] || options[:remove_headers])
|
if options[:include_follows] && !(options[:prune_profiles] || options[:remove_headers])
|
||||||
say('--include-follows can only be used with --prune-profiles or --remove-headers', :red, true)
|
say('--include-follows can only be used with --prune-profiles or --remove-headers', :red, true)
|
||||||
exit(1)
|
exit(1)
|
||||||
end
|
end
|
||||||
time_ago = options[:days].days.ago
|
time_ago = options[:days].days.ago
|
||||||
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
|
|
||||||
|
|
||||||
if options[:prune_profiles] || options[:remove_headers]
|
if options[:prune_profiles] || options[:remove_headers]
|
||||||
processed, aggregate = parallelize_with_progress(Account.remote.where({ last_webfingered_at: ..time_ago, updated_at: ..time_ago })) do |account|
|
processed, aggregate = parallelize_with_progress(Account.remote.where({ last_webfingered_at: ..time_ago, updated_at: ..time_ago })) do |account|
|
||||||
|
@ -51,7 +51,7 @@ module Mastodon::CLI
|
||||||
size = (account.header_file_size || 0)
|
size = (account.header_file_size || 0)
|
||||||
size += (account.avatar_file_size || 0) if options[:prune_profiles]
|
size += (account.avatar_file_size || 0) if options[:prune_profiles]
|
||||||
|
|
||||||
unless options[:dry_run]
|
unless dry_run?
|
||||||
account.header.destroy
|
account.header.destroy
|
||||||
account.avatar.destroy if options[:prune_profiles]
|
account.avatar.destroy if options[:prune_profiles]
|
||||||
account.save!
|
account.save!
|
||||||
|
@ -60,7 +60,7 @@ module Mastodon::CLI
|
||||||
size
|
size
|
||||||
end
|
end
|
||||||
|
|
||||||
say("Visited #{processed} accounts and removed profile media totaling #{number_to_human_size(aggregate)}#{dry_run}", :green, true)
|
say("Visited #{processed} accounts and removed profile media totaling #{number_to_human_size(aggregate)}#{dry_run_mode_suffix}", :green, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
unless options[:prune_profiles] || options[:remove_headers]
|
unless options[:prune_profiles] || options[:remove_headers]
|
||||||
|
@ -69,7 +69,7 @@ module Mastodon::CLI
|
||||||
|
|
||||||
size = (media_attachment.file_file_size || 0) + (media_attachment.thumbnail_file_size || 0)
|
size = (media_attachment.file_file_size || 0) + (media_attachment.thumbnail_file_size || 0)
|
||||||
|
|
||||||
unless options[:dry_run]
|
unless dry_run?
|
||||||
media_attachment.file.destroy
|
media_attachment.file.destroy
|
||||||
media_attachment.thumbnail.destroy
|
media_attachment.thumbnail.destroy
|
||||||
media_attachment.save
|
media_attachment.save
|
||||||
|
@ -78,7 +78,7 @@ module Mastodon::CLI
|
||||||
size
|
size
|
||||||
end
|
end
|
||||||
|
|
||||||
say("Removed #{processed} media attachments (approx. #{number_to_human_size(aggregate)})#{dry_run}", :green, true)
|
say("Removed #{processed} media attachments (approx. #{number_to_human_size(aggregate)})#{dry_run_mode_suffix}", :green, true)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -97,7 +97,6 @@ module Mastodon::CLI
|
||||||
progress = create_progress_bar(nil)
|
progress = create_progress_bar(nil)
|
||||||
reclaimed_bytes = 0
|
reclaimed_bytes = 0
|
||||||
removed = 0
|
removed = 0
|
||||||
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
|
|
||||||
prefix = options[:prefix]
|
prefix = options[:prefix]
|
||||||
|
|
||||||
case Paperclip::Attachment.default_options[:storage]
|
case Paperclip::Attachment.default_options[:storage]
|
||||||
|
@ -123,7 +122,7 @@ module Mastodon::CLI
|
||||||
record_map = preload_records_from_mixed_objects(objects)
|
record_map = preload_records_from_mixed_objects(objects)
|
||||||
|
|
||||||
objects.each do |object|
|
objects.each do |object|
|
||||||
object.acl.put(acl: s3_permissions) if options[:fix_permissions] && !options[:dry_run]
|
object.acl.put(acl: s3_permissions) if options[:fix_permissions] && !dry_run?
|
||||||
|
|
||||||
path_segments = object.key.split('/')
|
path_segments = object.key.split('/')
|
||||||
path_segments.delete('cache')
|
path_segments.delete('cache')
|
||||||
|
@ -145,7 +144,7 @@ module Mastodon::CLI
|
||||||
next unless attachment.blank? || !attachment.variant?(file_name)
|
next unless attachment.blank? || !attachment.variant?(file_name)
|
||||||
|
|
||||||
begin
|
begin
|
||||||
object.delete unless options[:dry_run]
|
object.delete unless dry_run?
|
||||||
|
|
||||||
reclaimed_bytes += object.size
|
reclaimed_bytes += object.size
|
||||||
removed += 1
|
removed += 1
|
||||||
|
@ -194,7 +193,7 @@ module Mastodon::CLI
|
||||||
begin
|
begin
|
||||||
size = File.size(path)
|
size = File.size(path)
|
||||||
|
|
||||||
unless options[:dry_run]
|
unless dry_run?
|
||||||
File.delete(path)
|
File.delete(path)
|
||||||
begin
|
begin
|
||||||
FileUtils.rmdir(File.dirname(path), parents: true)
|
FileUtils.rmdir(File.dirname(path), parents: true)
|
||||||
|
@ -216,7 +215,7 @@ module Mastodon::CLI
|
||||||
progress.total = progress.progress
|
progress.total = progress.progress
|
||||||
progress.finish
|
progress.finish
|
||||||
|
|
||||||
say("Removed #{removed} orphans (approx. #{number_to_human_size(reclaimed_bytes)})#{dry_run}", :green, true)
|
say("Removed #{removed} orphans (approx. #{number_to_human_size(reclaimed_bytes)})#{dry_run_mode_suffix}", :green, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
option :account, type: :string
|
option :account, type: :string
|
||||||
|
@ -246,8 +245,6 @@ module Mastodon::CLI
|
||||||
not be re-downloaded. To force re-download of every URL, use --force.
|
not be re-downloaded. To force re-download of every URL, use --force.
|
||||||
DESC
|
DESC
|
||||||
def refresh
|
def refresh
|
||||||
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
|
|
||||||
|
|
||||||
if options[:status]
|
if options[:status]
|
||||||
scope = MediaAttachment.where(status_id: options[:status])
|
scope = MediaAttachment.where(status_id: options[:status])
|
||||||
elsif options[:account]
|
elsif options[:account]
|
||||||
|
@ -274,7 +271,7 @@ module Mastodon::CLI
|
||||||
next if media_attachment.remote_url.blank? || (!options[:force] && media_attachment.file_file_name.present?)
|
next if media_attachment.remote_url.blank? || (!options[:force] && media_attachment.file_file_name.present?)
|
||||||
next if DomainBlock.reject_media?(media_attachment.account.domain)
|
next if DomainBlock.reject_media?(media_attachment.account.domain)
|
||||||
|
|
||||||
unless options[:dry_run]
|
unless dry_run?
|
||||||
media_attachment.reset_file!
|
media_attachment.reset_file!
|
||||||
media_attachment.reset_thumbnail!
|
media_attachment.reset_thumbnail!
|
||||||
media_attachment.save
|
media_attachment.save
|
||||||
|
@ -283,7 +280,7 @@ module Mastodon::CLI
|
||||||
media_attachment.file_file_size + (media_attachment.thumbnail_file_size || 0)
|
media_attachment.file_file_size + (media_attachment.thumbnail_file_size || 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
say("Downloaded #{processed} media attachments (approx. #{number_to_human_size(aggregate)})#{dry_run}", :green, true)
|
say("Downloaded #{processed} media attachments (approx. #{number_to_human_size(aggregate)})#{dry_run_mode_suffix}", :green, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
desc 'usage', 'Calculate disk space consumed by Mastodon'
|
desc 'usage', 'Calculate disk space consumed by Mastodon'
|
||||||
|
|
|
@ -27,7 +27,6 @@ module Mastodon::CLI
|
||||||
DESC
|
DESC
|
||||||
def remove
|
def remove
|
||||||
time_ago = options[:days].days.ago
|
time_ago = options[:days].days.ago
|
||||||
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
|
|
||||||
link = options[:link] ? 'link-type ' : ''
|
link = options[:link] ? 'link-type ' : ''
|
||||||
scope = PreviewCard.cached
|
scope = PreviewCard.cached
|
||||||
scope = scope.where(type: :link) if options[:link]
|
scope = scope.where(type: :link) if options[:link]
|
||||||
|
@ -38,7 +37,7 @@ module Mastodon::CLI
|
||||||
|
|
||||||
size = preview_card.image_file_size
|
size = preview_card.image_file_size
|
||||||
|
|
||||||
unless options[:dry_run]
|
unless dry_run?
|
||||||
preview_card.image.destroy
|
preview_card.image.destroy
|
||||||
preview_card.save
|
preview_card.save
|
||||||
end
|
end
|
||||||
|
@ -46,7 +45,7 @@ module Mastodon::CLI
|
||||||
size
|
size
|
||||||
end
|
end
|
||||||
|
|
||||||
say("Removed #{processed} #{link}preview cards (approx. #{number_to_human_size(aggregate)})#{dry_run}", :green, true)
|
say("Removed #{processed} #{link}preview cards (approx. #{number_to_human_size(aggregate)})#{dry_run_mode_suffix}", :green, true)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -17,7 +17,6 @@ module Mastodon::CLI
|
||||||
LONG_DESC
|
LONG_DESC
|
||||||
def storage_schema
|
def storage_schema
|
||||||
progress = create_progress_bar(nil)
|
progress = create_progress_bar(nil)
|
||||||
dry_run = dry_run? ? ' (DRY RUN)' : ''
|
|
||||||
records = 0
|
records = 0
|
||||||
|
|
||||||
klasses = [
|
klasses = [
|
||||||
|
@ -69,7 +68,7 @@ module Mastodon::CLI
|
||||||
progress.total = progress.progress
|
progress.total = progress.progress
|
||||||
progress.finish
|
progress.finish
|
||||||
|
|
||||||
say("Upgraded storage schema of #{records} records#{dry_run}", :green, true)
|
say("Upgraded storage schema of #{records} records#{dry_run_mode_suffix}", :green, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
Loading…
Reference in a new issue