* Consolidate webfinger string creation under Account#to_webfinger_s * Introduce Account#local_username_and_domain for consolidation
		
			
				
	
	
		
			47 lines
		
	
	
		
			1020 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1020 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
require 'csv'
 | 
						|
 | 
						|
class Settings::ExportsController < ApplicationController
 | 
						|
  layout 'admin'
 | 
						|
 | 
						|
  before_action :authenticate_user!
 | 
						|
  before_action :set_account
 | 
						|
 | 
						|
  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
 | 
						|
 | 
						|
  private
 | 
						|
 | 
						|
  def set_account
 | 
						|
    @account = current_user.account
 | 
						|
  end
 | 
						|
 | 
						|
  def accounts_list_to_csv(list)
 | 
						|
    CSV.generate do |csv|
 | 
						|
      list.each do |account|
 | 
						|
        csv << [(account.local? ? account.local_username_and_domain : account.acct)]
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |