2024-01-24 10:38:10 +01:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class AnnualReport::CommonlyInteractedWithAccounts < AnnualReport::Source
|
|
|
|
SET_SIZE = 40
|
|
|
|
|
|
|
|
def generate
|
|
|
|
{
|
|
|
|
commonly_interacted_with_accounts: commonly_interacted_with_accounts.map do |(account_id, count)|
|
|
|
|
{
|
2024-10-31 10:38:00 +01:00
|
|
|
account_id: account_id.to_s,
|
2024-01-24 10:38:10 +01:00
|
|
|
count: count,
|
|
|
|
}
|
|
|
|
end,
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def commonly_interacted_with_accounts
|
2024-11-19 09:51:34 +01:00
|
|
|
report_statuses.where.not(in_reply_to_account_id: @account.id).group(:in_reply_to_account_id).having('count(*) > 1').order(count_all: :desc).limit(SET_SIZE).count
|
2024-01-24 10:38:10 +01:00
|
|
|
end
|
|
|
|
end
|