Some checks are pending
Check i18n / check-i18n (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Check formatting / lint (push) Waiting to run
JavaScript Linting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
JavaScript Testing / test (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / test (3.3) (push) Blocked by required conditions
Ruby Testing / Libvips tests (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (push) Blocked by required conditions
Ruby Testing / Back to original and return test (push) Blocked by required conditions
15 lines
No EOL
545 B
Ruby
15 lines
No EOL
545 B
Ruby
class LocalTopPostsService < BaseService
|
|
# Rank local posts by engagement (boosts > favs > replies) in last 24h
|
|
def call
|
|
Status
|
|
.local
|
|
.joins(:status_stat)
|
|
.where('statuses.created_at > ?', 24.hours.ago)
|
|
.select('statuses.*,
|
|
(status_stats.reblogs_count * 0.6 +
|
|
status_stats.favourites_count * 0.3 +
|
|
status_stats.replies_count * 0.1) AS engagement_score')
|
|
.order('engagement_score DESC')
|
|
.limit(50) # Adjust as needed
|
|
end
|
|
end |