mirror of
https://github.com/discourse/discourse.git
synced 2024-11-29 20:24:05 -06:00
36 lines
936 B
Ruby
36 lines
936 B
Ruby
|
module Jobs
|
||
|
class MigrateCustomEmojis < Jobs::Onceoff
|
||
|
def execute_onceoff(args)
|
||
|
return if Rails.env.test?
|
||
|
|
||
|
CustomEmoji.transaction do
|
||
|
Dir["#{Rails.root}/#{Emoji.base_directory}/*.{png,gif}"].each do |path|
|
||
|
name = File.basename(path, File.extname(path))
|
||
|
|
||
|
File.open(path) do |file|
|
||
|
upload = Upload.create_for(
|
||
|
Discourse.system_user.id,
|
||
|
file,
|
||
|
File.basename(path),
|
||
|
file.size,
|
||
|
image_type: 'custom_emoji'
|
||
|
)
|
||
|
|
||
|
if upload.persisted?
|
||
|
CustomEmoji.create!(name: name, upload: upload)
|
||
|
else
|
||
|
raise "Failed to create upload for '#{name}' custom emoji"
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
Emoji.clear_cache
|
||
|
|
||
|
Post.where("cooked LIKE '%#{Emoji.base_url}%'").find_each do |post|
|
||
|
post.rebake!
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|