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
|