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)
|
2014-05-06 09:41:59 -04:00
|
|
|
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
|
2014-08-26 20:58:43 -04:00
|
|
|
if cp.dirty?
|
|
|
|
post.update_column(:cooked, cp.html)
|
2014-08-28 23:34:32 -04:00
|
|
|
post.publish_change_to_clients! :revised
|
2014-08-26 20:58:43 -04:00
|
|
|
end
|
2013-02-05 14:16:51 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|