diff options
author | Jeong Arm <kjwonmail@gmail.com> | 2022-08-25 11:40:17 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-25 04:40:17 +0200 |
commit | e682975afd9d476eaf938dfe753debfc20d4e603 (patch) | |
tree | 2a8f6f2713ec266130efbcf6340f715a55709d72 /lib | |
parent | 63a5514b29d44520058260cfb64c9fbf256e366a (diff) |
Add '--days' option to tootctl media refresh (#18425)
* Add '--days' option to tootctl media refresh * Fix undefined scope
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mastodon/media_cli.rb | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb index 36ca71844..4904cc5eb 100644 --- a/lib/mastodon/media_cli.rb +++ b/lib/mastodon/media_cli.rb @@ -187,6 +187,7 @@ module Mastodon option :account, type: :string option :domain, type: :string option :status, type: :numeric + option :days, type: :numeric option :concurrency, type: :numeric, default: 5, aliases: [:c] option :verbose, type: :boolean, default: false, aliases: [:v] option :dry_run, type: :boolean, default: false @@ -204,6 +205,8 @@ module Mastodon Use the --domain option to download attachments from a specific domain. + Use the --days option to limit attachments created within days. + By default, attachments that are believed to be already downloaded will not be re-downloaded. To force re-download of every URL, use --force. DESC @@ -224,10 +227,16 @@ module Mastodon scope = MediaAttachment.where(account_id: account.id) elsif options[:domain] scope = MediaAttachment.joins(:account).merge(Account.by_domain_and_subdomains(options[:domain])) + elsif options[:days].present? + scope = MediaAttachment.remote else exit(1) end + if options[:days].present? + scope = scope.where('id > ?', Mastodon::Snowflake.id_at(options[:days].days.ago, with_random: false)) + end + processed, aggregate = parallelize_with_progress(scope) do |media_attachment| next if media_attachment.remote_url.blank? || (!options[:force] && media_attachment.file_file_name.present?) next if DomainBlock.reject_media?(media_attachment.account.domain) |