Can be filtered by a specific domain Resolves #2292
This commit is contained in:
		
							parent
							
								
									f93de3a516
								
							
						
					
					
						commit
						e6c81a635b
					
				
					 3 changed files with 31 additions and 9 deletions
				
			
		| 
						 | 
					@ -22,8 +22,8 @@ module Admin
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def redownload
 | 
					    def redownload
 | 
				
			||||||
      @account.avatar = @account.avatar_remote_url
 | 
					      @account.reset_avatar!
 | 
				
			||||||
      @account.header = @account.header_remote_url
 | 
					      @account.reset_header!
 | 
				
			||||||
      @account.save!
 | 
					      @account.save!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      redirect_to admin_account_path(@account.id)
 | 
					      redirect_to admin_account_path(@account.id)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,8 +6,9 @@ module Remotable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  included do
 | 
					  included do
 | 
				
			||||||
    attachment_definitions.each_key do |attachment_name|
 | 
					    attachment_definitions.each_key do |attachment_name|
 | 
				
			||||||
      attribute_name = "#{attachment_name}_remote_url".to_sym
 | 
					      attribute_name  = "#{attachment_name}_remote_url".to_sym
 | 
				
			||||||
      method_name = "#{attribute_name}=".to_sym
 | 
					      method_name     = "#{attribute_name}=".to_sym
 | 
				
			||||||
 | 
					      alt_method_name = "reset_#{attachment_name}!".to_sym
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      define_method method_name do |url|
 | 
					      define_method method_name do |url|
 | 
				
			||||||
        begin
 | 
					        begin
 | 
				
			||||||
| 
						 | 
					@ -35,6 +36,15 @@ module Remotable
 | 
				
			||||||
          nil
 | 
					          nil
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      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
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -74,7 +74,7 @@ namespace :mastodon do
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  namespace :media do
 | 
					  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
 | 
					    task clear: :environment do
 | 
				
			||||||
      # No-op
 | 
					      # No-op
 | 
				
			||||||
      # This task is now executed via sidekiq-scheduler
 | 
					      # 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)
 | 
					      MediaAttachment.where(file_file_name: nil).where.not(type: :unknown).in_batches.update_all(type: :unknown)
 | 
				
			||||||
      Rails.logger.debug 'Done!'
 | 
					      Rails.logger.debug 'Done!'
 | 
				
			||||||
    end
 | 
					    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
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  namespace :push do
 | 
					  namespace :push do
 | 
				
			||||||
| 
						 | 
					@ -111,7 +123,7 @@ namespace :mastodon do
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    desc 'Re-subscribes to soon expiring PuSH subscriptions'
 | 
					    desc 'Re-subscribes to soon expiring PuSH subscriptions (deprecated)'
 | 
				
			||||||
    task refresh: :environment do
 | 
					    task refresh: :environment do
 | 
				
			||||||
      # No-op
 | 
					      # No-op
 | 
				
			||||||
      # This task is now executed via sidekiq-scheduler
 | 
					      # This task is now executed via sidekiq-scheduler
 | 
				
			||||||
| 
						 | 
					@ -119,13 +131,13 @@ namespace :mastodon do
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  namespace :feeds do
 | 
					  namespace :feeds do
 | 
				
			||||||
    desc 'Clear timelines of inactive users'
 | 
					    desc 'Clear timelines of inactive users (deprecated)'
 | 
				
			||||||
    task clear: :environment do
 | 
					    task clear: :environment do
 | 
				
			||||||
      # No-op
 | 
					      # No-op
 | 
				
			||||||
      # This task is now executed via sidekiq-scheduler
 | 
					      # This task is now executed via sidekiq-scheduler
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    desc 'Clears all timelines'
 | 
					    desc 'Clear all timelines without regenerating them'
 | 
				
			||||||
    task clear_all: :environment do
 | 
					    task clear_all: :environment do
 | 
				
			||||||
      Redis.current.keys('feed:*').each { |key| Redis.current.del(key) }
 | 
					      Redis.current.keys('feed:*').each { |key| Redis.current.del(key) }
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
| 
						 | 
					@ -151,7 +163,7 @@ namespace :mastodon do
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    desc 'List all admin users'
 | 
					    desc 'List e-mails of all admin users'
 | 
				
			||||||
    task admins: :environment do
 | 
					    task admins: :environment do
 | 
				
			||||||
      puts 'Admin user emails:'
 | 
					      puts 'Admin user emails:'
 | 
				
			||||||
      puts User.admins.map(&:email).join("\n")
 | 
					      puts User.admins.map(&:email).join("\n")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue