2017-08-26 16:52:53 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class ActivityPub::RawDistributionWorker
|
|
|
|
include Sidekiq::Worker
|
|
|
|
|
|
|
|
sidekiq_options queue: 'push'
|
|
|
|
|
2017-11-30 02:50:05 +00:00
|
|
|
def perform(json, source_account_id, exclude_inboxes = [])
|
2017-08-26 16:52:53 +00:00
|
|
|
@account = Account.find(source_account_id)
|
|
|
|
|
2017-11-30 02:50:05 +00:00
|
|
|
ActivityPub::DeliveryWorker.push_bulk(inboxes - exclude_inboxes) do |inbox_url|
|
2017-08-26 16:52:53 +00:00
|
|
|
[json, @account.id, inbox_url]
|
|
|
|
end
|
|
|
|
rescue ActiveRecord::RecordNotFound
|
|
|
|
true
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def inboxes
|
|
|
|
@inboxes ||= @account.followers.inboxes
|
|
|
|
end
|
|
|
|
end
|