Commit e6c81a63 authored by Eugen Rochko's avatar Eugen Rochko Committed by GitHub

Fix #2848 - Rake task to redownload avatars/headers (#4156)

Can be filtered by a specific domain
Resolves #2292
parent f93de3a5
......@@ -22,8 +22,8 @@ module Admin
end
def redownload
@account.avatar = @account.avatar_remote_url
@account.header = @account.header_remote_url
@account.reset_avatar!
@account.reset_header!
@account.save!
redirect_to admin_account_path(@account.id)
......
......@@ -6,8 +6,9 @@ module Remotable
included do
attachment_definitions.each_key do |attachment_name|
attribute_name = "#{attachment_name}_remote_url".to_sym
method_name = "#{attribute_name}=".to_sym
attribute_name = "#{attachment_name}_remote_url".to_sym
method_name = "#{attribute_name}=".to_sym
alt_method_name = "reset_#{attachment_name}!".to_sym
define_method method_name do |url|
begin
......@@ -35,6 +36,15 @@ module Remotable
nil
end
end
define_method alt_method_name do
url = self[attribute_name]
return if url.blank?
self[attribute_name] = ''
send(method_name, url)
end
end
end
end
......@@ -74,7 +74,7 @@ namespace :mastodon do
end
namespace :media do
desc 'Removes media attachments that have not been assigned to any status for longer than a day'
desc 'Removes media attachments that have not been assigned to any status for longer than a day (deprecated)'
task clear: :environment do
# No-op
# This task is now executed via sidekiq-scheduler
......@@ -100,6 +100,18 @@ namespace :mastodon do
MediaAttachment.where(file_file_name: nil).where.not(type: :unknown).in_batches.update_all(type: :unknown)
Rails.logger.debug 'Done!'
end
desc 'Redownload avatars/headers of remote users. Optionally limit to a particular domain with DOMAIN'
task redownload_avatars: :environment do
accounts = Account.remote
accounts = accounts.where(domain: ENV['DOMAIN']) if ENV['DOMAIN'].present?
accounts.find_each do |account|
account.reset_avatar!
account.reset_header!
account.save
end
end
end
namespace :push do
......@@ -111,7 +123,7 @@ namespace :mastodon do
end
end
desc 'Re-subscribes to soon expiring PuSH subscriptions'
desc 'Re-subscribes to soon expiring PuSH subscriptions (deprecated)'
task refresh: :environment do
# No-op
# This task is now executed via sidekiq-scheduler
......@@ -119,13 +131,13 @@ namespace :mastodon do
end
namespace :feeds do
desc 'Clear timelines of inactive users'
desc 'Clear timelines of inactive users (deprecated)'
task clear: :environment do
# No-op
# This task is now executed via sidekiq-scheduler
end
desc 'Clears all timelines'
desc 'Clear all timelines without regenerating them'
task clear_all: :environment do
Redis.current.keys('feed:*').each { |key| Redis.current.del(key) }
end
......@@ -151,7 +163,7 @@ namespace :mastodon do
end
end
desc 'List all admin users'
desc 'List e-mails of all admin users'
task admins: :environment do
puts 'Admin user emails:'
puts User.admins.map(&:email).join("\n")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment