discourse/plugins/discourse-ai/app/jobs/regular/fast_track_topic_gist.rb
Jarek Radosz e372355fd0
DEV: Clean up scope resolution operators in plugins (#34979)
Co-authored-by: Loïc Guitaut <loic@discourse.org>
2025-09-30 14:36:34 +02:00

25 lines
689 B
Ruby
Vendored

# frozen_string_literal: true
module Jobs
class FastTrackTopicGist < ::Jobs::Base
sidekiq_options retry: false
def execute(args)
return if !SiteSetting.discourse_ai_enabled
return if !SiteSetting.ai_summarization_enabled
return if !SiteSetting.ai_summary_gists_enabled
topic = Topic.find_by(id: args[:topic_id])
return if topic.blank?
summarizer = DiscourseAi::Summarization.topic_gist(topic)
gist = summarizer.existing_summary
unless args[:force_regenerate]
return if gist.present? && (!gist.outdated || gist.created_at >= 5.minutes.ago)
end
summarizer.summarize(Discourse.system_user)
end
end
end