18 lines
520 B
Ruby
18 lines
520 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Jobs
|
|
class EvaluatePostUploads < ::Jobs::Base
|
|
def execute(args)
|
|
return unless SiteSetting.ai_nsfw_detection_enabled
|
|
return if (post_id = args[:post_id]).blank?
|
|
|
|
post = Post.includes(:uploads).find_by_id(post_id)
|
|
return if post.nil? || post.uploads.empty?
|
|
|
|
return if post.uploads.none? { |u| FileHelper.is_supported_image?(u.url) }
|
|
|
|
DiscourseAi::PostClassificator.new(DiscourseAi::Nsfw::Classification.new).classify!(post)
|
|
end
|
|
end
|
|
end
|