| 
									
										
										
										
											2017-02-27 00:15:00 +01:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-19 20:29:41 +01:00
										 |  |  | require 'csv' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-27 00:15:00 +01:00
										 |  |  | class Settings::ExportsController < ApplicationController | 
					
						
							|  |  |  |   layout 'admin' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   before_action :authenticate_user! | 
					
						
							|  |  |  |   before_action :set_account | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-19 20:29:41 +01:00
										 |  |  |   def show | 
					
						
							|  |  |  |     @total_storage = current_account.media_attachments.sum(:file_file_size) | 
					
						
							|  |  |  |     @total_follows = current_account.following.count | 
					
						
							|  |  |  |     @total_blocks  = current_account.blocking.count | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def download_following_list | 
					
						
							|  |  |  |     @accounts = current_account.following | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     respond_to do |format| | 
					
						
							|  |  |  |       format.csv { render text: accounts_list_to_csv(@accounts) } | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def download_blocking_list | 
					
						
							|  |  |  |     @accounts = current_account.blocking | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     respond_to do |format| | 
					
						
							|  |  |  |       format.csv { render text: accounts_list_to_csv(@accounts) } | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2017-02-27 00:15:00 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   private | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def set_account | 
					
						
							|  |  |  |     @account = current_user.account | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2017-03-19 20:29:41 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def accounts_list_to_csv(list) | 
					
						
							|  |  |  |     CSV.generate do |csv| | 
					
						
							|  |  |  |       list.each do |account| | 
					
						
							|  |  |  |         csv << [(account.local? ? "#{account.username}@#{Rails.configuration.x.local_domain}" : account.acct)] | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2017-02-27 00:15:00 +01:00
										 |  |  | end |