mastodon/app/workers/scheduler/fasp/refresh_status_trends_scheduler.rb
David Roetzel 97e6d111c2
Always request default locale.
Small instances might have

* No recent active users
* User that do not have any preferred languages set
2025-03-06 14:19:10 +01:00

26 lines
693 B
Ruby

# frozen_string_literal: true
class Scheduler::Fasp::RefreshStatusTrendsScheduler
include Sidekiq::Worker
sidekiq_options retry: 0, lock: :until_executed, lock_ttl: 30.minutes.to_i
def perform
return unless Mastodon::Feature.fasp_enabled?
trends_providers = Fasp::Provider.with_capability('trends')
return if trends_providers.none?
languages = User.signed_in_recently.pluck(Arel.sql('DISTINCT(unnest(chosen_languages))'))
languages << I18n.default_locale.to_s
service = Fasp::RefreshStatusTrendsService.new
languages.uniq.each do |language|
trends_providers.each do |provider|
service.call(provider, language)
end
end
end
end