Improve rake tasks
This commit is contained in:
		| @@ -1,8 +0,0 @@ | |||||||
| namespace :feeds do |  | ||||||
|  |  | ||||||
|   desc "Removes all feeds from Redis, forcing a precompute on next request for each user" |  | ||||||
|   task clear: :environment do |  | ||||||
|     $redis.keys('feed:*').each { |key| $redis.del(key) } |  | ||||||
|   end |  | ||||||
|  |  | ||||||
| end |  | ||||||
							
								
								
									
										27
									
								
								lib/tasks/mastodon.rake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								lib/tasks/mastodon.rake
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | namespace :mastodon do | ||||||
|  |   namespace :media do | ||||||
|  |     desc 'Removes media attachments that have not been assigned to any status for longer than a day' | ||||||
|  |     task clear: :environment do | ||||||
|  |       MediaAttachment.where(status_id: nil).where('created_at < ?', 1.day.ago).find_each do |m| | ||||||
|  |         m.destroy | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   namespace :push do | ||||||
|  |     desc 'Unsubscribes from PuSH updates of feeds nobody follows locally' | ||||||
|  |     task clear: :environment do | ||||||
|  |       Account.where('(select count(f.id) from follows as f where f.target_account_id = accounts.id) = 0').where.not(domain: nil).find_each do |a| | ||||||
|  |         a.subscription('').unsubscribe | ||||||
|  |         a.update!(verify_token: '', secret: '') | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   namespace :feeds do | ||||||
|  |     desc 'Clears all timelines so that they would be regenerated on next hit' | ||||||
|  |     task clear: :environment do | ||||||
|  |       $redis.keys('feed:*').each { |key| $redis.del(key) } | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| namespace :subscriptions do |  | ||||||
|  |  | ||||||
|   desc "For all remote accounts that have no local followers, unsubscribe from PuSH" |  | ||||||
|   task clear: :environment do |  | ||||||
|     accounts = Account.where('(select count(f.id) from follows as f where f.target_account_id = accounts.id) = 0').where.not(domain: nil) |  | ||||||
|  |  | ||||||
|     accounts.each do |a| |  | ||||||
|       a.subscription('').unsubscribe |  | ||||||
|       a.update!(verify_token: '', secret: '') |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
|  |  | ||||||
| end |  | ||||||
		Reference in New Issue
	
	Block a user