parent
20d91848cf
commit
b339e488fe
@ -1,16 +1,46 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'csv'
|
||||||
|
|
||||||
class Settings::ExportsController < ApplicationController
|
class Settings::ExportsController < ApplicationController
|
||||||
layout 'admin'
|
layout 'admin'
|
||||||
|
|
||||||
before_action :authenticate_user!
|
before_action :authenticate_user!
|
||||||
before_action :set_account
|
before_action :set_account
|
||||||
|
|
||||||
def show; end
|
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
|
private
|
||||||
|
|
||||||
def set_account
|
def set_account
|
||||||
@account = current_user.account
|
@account = current_user.account
|
||||||
end
|
end
|
||||||
|
|
||||||
|
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
|
||||||
end
|
end
|
||||||
|
@ -1,2 +1,17 @@
|
|||||||
- content_for :page_title do
|
- content_for :page_title do
|
||||||
= t('settings.export')
|
= t('settings.export')
|
||||||
|
|
||||||
|
%table.table
|
||||||
|
%tbody
|
||||||
|
%tr
|
||||||
|
%th= t('exports.storage')
|
||||||
|
%td= number_to_human_size @total_storage
|
||||||
|
%td
|
||||||
|
%tr
|
||||||
|
%th= t('exports.follows')
|
||||||
|
%td= @total_follows
|
||||||
|
%td= table_link_to 'download', t('exports.csv'), follows_settings_export_path(format: :csv)
|
||||||
|
%tr
|
||||||
|
%th= t('exports.blocks')
|
||||||
|
%td= @total_blocks
|
||||||
|
%td= table_link_to 'download', t('exports.csv'), blocks_settings_export_path(format: :csv)
|
||||||
|
Loading…
Reference in new issue