mirror of
https://github.com/discourse/discourse.git
synced 2025-03-21 15:05:34 +08:00
Add one off job to grant the emoji badge retroactively
This commit is contained in:
parent
5059ee04b9
commit
526573074c
@ -262,5 +262,6 @@ module Jobs
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Dir["#{Rails.root}/app/jobs/onceoff/*.rb"].each {|file| require_dependency file }
|
||||||
Dir["#{Rails.root}/app/jobs/regular/*.rb"].each {|file| require_dependency file }
|
Dir["#{Rails.root}/app/jobs/regular/*.rb"].each {|file| require_dependency file }
|
||||||
Dir["#{Rails.root}/app/jobs/scheduled/*.rb"].each {|file| require_dependency file }
|
Dir["#{Rails.root}/app/jobs/scheduled/*.rb"].each {|file| require_dependency file }
|
||||||
|
27
app/jobs/onceoff/grant_emoji.rb
Normal file
27
app/jobs/onceoff/grant_emoji.rb
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
module Jobs
|
||||||
|
|
||||||
|
class GrantEmoji < Jobs::Base
|
||||||
|
sidekiq_options retry: false
|
||||||
|
|
||||||
|
def execute(args)
|
||||||
|
|
||||||
|
to_award = {}
|
||||||
|
|
||||||
|
Post.secured(Guardian.new).visible.public_posts.find_in_batches(batch_size: 5000) do |group|
|
||||||
|
group.each do |p|
|
||||||
|
doc = Nokogiri::HTML::fragment(p.cooked)
|
||||||
|
if (doc.css("img.emoji") - doc.css(".quote img")).size > 0
|
||||||
|
to_award[p.user_id] ||= { post_id: p.id, created_at: p.created_at }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
badge = Badge.find(Badge::FirstEmoji)
|
||||||
|
to_award.each do |user_id, opts|
|
||||||
|
BadgeGranter.grant(badge, User.find(user_id), opts)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
@ -32,7 +32,7 @@ class BadgeGranter
|
|||||||
user_badge = UserBadge.create!(badge: @badge,
|
user_badge = UserBadge.create!(badge: @badge,
|
||||||
user: @user,
|
user: @user,
|
||||||
granted_by: @granted_by,
|
granted_by: @granted_by,
|
||||||
granted_at: Time.now,
|
granted_at: @opts[:created_at] || Time.now,
|
||||||
post_id: @post_id,
|
post_id: @post_id,
|
||||||
seq: seq)
|
seq: seq)
|
||||||
|
|
||||||
|
5
db/migrate/20160407174541_schedule_emoji_grant.rb
Normal file
5
db/migrate/20160407174541_schedule_emoji_grant.rb
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
class ScheduleEmojiGrant < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
Jobs.enqueue(:grant_emoji)
|
||||||
|
end
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user