discourse/plugins/discourse-narrative-bot/autoload/jobs/onceoff/remap_old_bot_images.rb

37 lines
1.2 KiB
Ruby

module Jobs
module DiscourseNarrativeBot
class RemapOldBotImages < ::Jobs::Onceoff
def execute_onceoff(args)
paths = [
"/images/font-awesome-link.png",
"/images/unicorn.png",
"/images/font-awesome-ellipsis.png",
"/images/font-awesome-bookmark.png",
"/images/font-awesome-smile.png",
"/images/font-awesome-flag.png",
"/images/font-awesome-search.png",
"/images/capybara-eating.gif",
"/images/font-awesome-pencil.png",
"/images/font-awesome-trash.png",
"/images/font-awesome-rotate-left.png",
"/images/font-awesome-gear.png",
]
Post.raw_match("/images/").where(user_id: -2).find_each do |post|
if (matches = post.raw.scan(/(?<!\/plugins\/discourse-narrative-bot)(#{paths.join("|")})/)).present?
new_raw = post.raw
matches.each do |match|
path = match.first
new_raw = new_raw.gsub(path, "/plugins/discourse-narrative-bot#{path}")
end
post.update_columns(raw: new_raw)
post.rebake!
end
end
end
end
end
end