You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
774 B
48 lines
774 B
# frozen_string_literal: true |
|
require 'csv' |
|
|
|
class Export |
|
attr_reader :account |
|
|
|
def initialize(account) |
|
@account = account |
|
end |
|
|
|
def to_blocked_accounts_csv |
|
to_csv account.blocking |
|
end |
|
|
|
def to_muted_accounts_csv |
|
to_csv account.muting |
|
end |
|
|
|
def to_following_accounts_csv |
|
to_csv account.following |
|
end |
|
|
|
def total_storage |
|
account.media_attachments.sum(:file_file_size) |
|
end |
|
|
|
def total_follows |
|
account.following.count |
|
end |
|
|
|
def total_blocks |
|
account.blocking.count |
|
end |
|
|
|
def total_mutes |
|
account.muting.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)] |
|
end |
|
end |
|
end |
|
end
|
|
|