FEATURE: automatically rebake out-of-date posts

This commit is contained in:
Sam
2014-05-28 12:30:43 +10:00
parent 2791852bd8
commit f6753d3d46
5 changed files with 75 additions and 30 deletions

View File

@@ -9,25 +9,12 @@ task 'posts:refresh_oneboxes' => :environment do
end
def rebake_post(post,opts)
cooked = post.cook(
post.raw,
topic_id: post.topic_id,
invalidate_oneboxes: opts.fetch(:invalidate_oneboxes, false)
)
if cooked != post.cooked
Post.exec_sql('update posts set cooked = ? where id = ?', cooked, post.id)
post.cooked = cooked
changed = post.rebake!(opts)
if changed
putc "#"
else
putc "."
end
# Extracts urls from the body
TopicLink.extract_from post
# make sure we trigger the post process
post.trigger_post_process(true)
rescue => e
puts "\n\nFailed to bake topic_id #{post.topic_id} post_id #{post.id} #{e}\n#{e.backtrace.join("\n")} \n\n"
end