discourse/app/jobs/regular/process_post.rb

34 lines
842 B
Ruby
Raw Normal View History

2013-02-05 14:16:51 -05:00
require 'image_sizer'
require_dependency 'cooked_post_processor'
module Jobs
class ProcessPost < Jobs::Base
2013-02-25 11:42:20 -05:00
def execute(args)
post = Post.find_by(id: args[:post_id])
2013-04-17 21:34:40 -04:00
# two levels of deletion
return unless post.present? && post.topic.present?
2013-02-05 14:16:51 -05:00
2013-11-21 19:52:26 -05:00
post.update_column(:cooked, post.cook(post.raw, topic_id: post.topic_id)) if args[:cook].present?
2013-02-05 14:16:51 -05:00
cp = CookedPostProcessor.new(post, args)
2013-11-21 19:52:26 -05:00
cp.post_process(args[:bypass_bump])
2013-02-05 14:16:51 -05:00
# If we changed the document, save it
if cp.dirty?
post.update_column(:cooked, cp.html)
MessageBus.publish("/topic/#{post.topic_id}", {
type: "revised",
id: post.id,
updated_at: Time.now,
post_number: post.post_number
}, group_ids: post.topic.secure_group_ids )
end
2013-02-05 14:16:51 -05:00
end
end
end