Add refreshing many accounts at once with "tootctl accounts refresh" (#23304)
This commit is contained in:
		
							parent
							
								
									0bc1a002fd
								
							
						
					
					
						commit
						b715bd8e53
					
				@ -372,16 +372,16 @@ module Mastodon
 | 
				
			|||||||
    option :concurrency, type: :numeric, default: 5, aliases: [:c]
 | 
					    option :concurrency, type: :numeric, default: 5, aliases: [:c]
 | 
				
			||||||
    option :verbose, type: :boolean, aliases: [:v]
 | 
					    option :verbose, type: :boolean, aliases: [:v]
 | 
				
			||||||
    option :dry_run, type: :boolean
 | 
					    option :dry_run, type: :boolean
 | 
				
			||||||
    desc 'refresh [USERNAME]', 'Fetch remote user data and files'
 | 
					    desc 'refresh [USERNAMES]', 'Fetch remote user data and files'
 | 
				
			||||||
    long_desc <<-LONG_DESC
 | 
					    long_desc <<-LONG_DESC
 | 
				
			||||||
      Fetch remote user data and files for one or multiple accounts.
 | 
					      Fetch remote user data and files for one or multiple accounts.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      With the --all option, all remote accounts will be processed.
 | 
					      With the --all option, all remote accounts will be processed.
 | 
				
			||||||
      Through the --domain option, this can be narrowed down to a
 | 
					      Through the --domain option, this can be narrowed down to a
 | 
				
			||||||
      specific domain only. Otherwise, a single remote account must
 | 
					      specific domain only. Otherwise, remote accounts must be
 | 
				
			||||||
      be specified with USERNAME.
 | 
					      specified with space-separated USERNAMES.
 | 
				
			||||||
    LONG_DESC
 | 
					    LONG_DESC
 | 
				
			||||||
    def refresh(username = nil)
 | 
					    def refresh(*usernames)
 | 
				
			||||||
      dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
 | 
					      dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if options[:domain] || options[:all]
 | 
					      if options[:domain] || options[:all]
 | 
				
			||||||
@ -397,19 +397,25 @@ module Mastodon
 | 
				
			|||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        say("Refreshed #{processed} accounts#{dry_run}", :green, true)
 | 
					        say("Refreshed #{processed} accounts#{dry_run}", :green, true)
 | 
				
			||||||
      elsif username.present?
 | 
					      elsif !usernames.empty?
 | 
				
			||||||
        username, domain = username.split('@')
 | 
					        usernames.each do |user|
 | 
				
			||||||
        account = Account.find_remote(username, domain)
 | 
					          user, domain = user.split('@')
 | 
				
			||||||
 | 
					          account = Account.find_remote(user, domain)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          if account.nil?
 | 
					          if account.nil?
 | 
				
			||||||
            say('No such account', :red)
 | 
					            say('No such account', :red)
 | 
				
			||||||
            exit(1)
 | 
					            exit(1)
 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        unless options[:dry_run]
 | 
					          next if options[:dry_run]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          begin
 | 
				
			||||||
            account.reset_avatar!
 | 
					            account.reset_avatar!
 | 
				
			||||||
            account.reset_header!
 | 
					            account.reset_header!
 | 
				
			||||||
            account.save
 | 
					            account.save
 | 
				
			||||||
 | 
					          rescue Mastodon::UnexpectedResponseError
 | 
				
			||||||
 | 
					            say("Account failed: #{user}@#{domain}", :red)
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        say("OK#{dry_run}", :green)
 | 
					        say("OK#{dry_run}", :green)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user