--- /dev/null
+# frozen_string_literal: true
+
+module Settings
+ module Exports
+ class BlockedDomainsController < ApplicationController
+ include ExportControllerConcern
+
+ def index
+ send_export_file
+ end
+
+ private
+
+ def export_data
+ @export.to_blocked_domains_csv
+ end
+ end
+ end
+end
--- /dev/null
+# frozen_string_literal: true
+
+module Settings
+ module Exports
+ class ListsController < ApplicationController
+ include ExportControllerConcern
+
+ def index
+ send_export_file
+ end
+
+ private
+
+ def export_data
+ @export.to_lists_csv
+ end
+ end
+ end
+end
end
def to_blocked_accounts_csv
- to_csv account.blocking
+ to_csv account.blocking.select(:username, :domain)
end
def to_muted_accounts_csv
- to_csv account.muting
+ to_csv account.muting.select(:username, :domain)
end
def to_following_accounts_csv
- to_csv account.following
+ to_csv account.following.select(:username, :domain)
+ end
+
+ def to_lists_csv
+ CSV.generate do |csv|
+ account.owned_lists.select(:title).each do |list|
+ list.accounts.select(:username, :domain).each do |account|
+ csv << [list.title, acct(account)]
+ end
+ end
+ end
+ end
+
+ def to_blocked_domains_csv
+ CSV.generate do |csv|
+ account.domain_blocks.pluck(:domain).each do |domain|
+ csv << [domain]
+ end
+ end
end
def total_storage
account.following_count
end
+ def total_lists
+ account.owned_lists.count
+ end
+
def total_followers
account.followers_count
end
account.muting.count
end
+ def total_domain_blocks
+ account.domain_blocks.count
+ end
+
private
def to_csv(accounts)
CSV.generate do |csv|
accounts.each do |account|
- csv << [(account.local? ? account.local_username_and_domain : account.acct)]
+ csv << [acct(account)]
end
end
end
+
+ def acct(account)
+ account.local? ? account.local_username_and_domain : account.acct
+ end
end
%th= t('exports.follows')
%td= number_with_delimiter @export.total_follows
%td= table_link_to 'download', t('exports.csv'), settings_exports_follows_path(format: :csv)
+ %tr
+ %th= t('exports.lists')
+ %td= number_with_delimiter @export.total_lists
+ %td= table_link_to 'download', t('exports.csv'), settings_exports_lists_path(format: :csv)
%tr
%th= t('accounts.followers', count: @export.total_followers)
%td= number_with_delimiter @export.total_followers
%th= t('exports.mutes')
%td= number_with_delimiter @export.total_mutes
%td= table_link_to 'download', t('exports.csv'), settings_exports_mutes_path(format: :csv)
+ %tr
+ %th= t('exports.domain_blocks')
+ %td= number_with_delimiter @export.total_domain_blocks
+ %td= table_link_to 'download', t('exports.csv'), settings_exports_domain_blocks_path(format: :csv)
%p.muted-hint= t('exports.archive_takeout.hint_html')
resources :follows, only: :index, controller: :following_accounts
resources :blocks, only: :index, controller: :blocked_accounts
resources :mutes, only: :index, controller: :muted_accounts
+ resources :lists, only: :index, controller: :lists
+ resources :domain_blocks, only: :index, controller: :blocked_domains
end
resource :two_factor_authentication, only: [:show, :create, :destroy]