|
|
- # frozen_string_literal: true
-
- # Obsolete but kept around to make sure existing jobs do not fail after upgrade.
- # Should be removed in a subsequent release.
-
- class ActivityPub::ReplyDistributionWorker
- include Sidekiq::Worker
- include Payloadable
-
- sidekiq_options queue: 'push'
-
- def perform(status_id)
- @status = Status.find(status_id)
- @account = @status.thread&.account
-
- return unless @account.present? && @status.distributable?
-
- ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
- [payload, @status.account_id, inbox_url]
- end
- rescue ActiveRecord::RecordNotFound
- true
- end
-
- private
-
- def inboxes
- @inboxes ||= @account.followers.inboxes
- end
-
- def payload
- @payload ||= Oj.dump(serialize_payload(ActivityPub::ActivityPresenter.from_status(@status), ActivityPub::ActivitySerializer, signer: @status.account))
- end
- end
|