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