| 
									
										
										
										
											2017-04-11 16:00:43 -04:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | require 'csv' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Export | 
					
						
							| 
									
										
										
										
											2017-04-13 07:02:02 -04:00
										 |  |  |   attr_reader :account | 
					
						
							| 
									
										
										
										
											2017-04-11 16:00:43 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-13 07:02:02 -04:00
										 |  |  |   def initialize(account) | 
					
						
							|  |  |  |     @account = account | 
					
						
							| 
									
										
										
										
											2017-04-11 16:00:43 -04:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-13 07:02:02 -04:00
										 |  |  |   def to_blocked_accounts_csv | 
					
						
							|  |  |  |     to_csv account.blocking | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def to_muted_accounts_csv | 
					
						
							|  |  |  |     to_csv account.muting | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def to_following_accounts_csv | 
					
						
							|  |  |  |     to_csv account.following | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def total_storage | 
					
						
							|  |  |  |     account.media_attachments.sum(:file_file_size) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def total_follows | 
					
						
							|  |  |  |     account.following.count | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def total_blocks | 
					
						
							|  |  |  |     account.blocking.count | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def total_mutes | 
					
						
							|  |  |  |     account.muting.count | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   private | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def to_csv(accounts) | 
					
						
							| 
									
										
										
										
											2017-04-11 16:00:43 -04:00
										 |  |  |     CSV.generate do |csv| | 
					
						
							|  |  |  |       accounts.each do |account| | 
					
						
							|  |  |  |         csv << [(account.local? ? account.local_username_and_domain : account.acct)] | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |