Add annual reports for accounts (#28693)

This commit is contained in:
Eugen Rochko 2024-01-24 10:38:10 +01:00 committed by GitHub
parent 01ce9df880
commit 5b1eb09d54
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 480 additions and 1 deletions

View file

@ -0,0 +1,22 @@
# frozen_string_literal: true
class AnnualReport::MostRebloggedAccounts < AnnualReport::Source
SET_SIZE = 10
def generate
{
most_reblogged_accounts: most_reblogged_accounts.map do |(account_id, count)|
{
account_id: account_id,
count: count,
}
end,
}
end
private
def most_reblogged_accounts
@account.statuses.reorder(nil).where(id: year_as_snowflake_range).where.not(reblog_of_id: nil).joins(reblog: :account).group('accounts.id').having('count(*) > 1').order(total: :desc).limit(SET_SIZE).pluck(Arel.sql('accounts.id, count(*) as total'))
end
end