Forward ActivityPub creates that reply to local statuses (#4709)
* Forward ActivityPub creates that reply to local statuses * Fix test * Fix wrong signers
This commit is contained in:
parent
3f51a22d3b
commit
7b8f262840
5 changed files with 56 additions and 0 deletions
|
@ -17,6 +17,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
|
|||
|
||||
resolve_thread(status)
|
||||
distribute(status)
|
||||
forward_for_reply if status.public_visibility? || status.unlisted_visibility?
|
||||
|
||||
status
|
||||
end
|
||||
|
@ -162,4 +163,13 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
|
|||
return @skip_download if defined?(@skip_download)
|
||||
@skip_download ||= DomainBlock.find_by(domain: @account.domain)&.reject_media?
|
||||
end
|
||||
|
||||
def reply_to_local?
|
||||
!replied_to_status.nil? && replied_to_status.account.local?
|
||||
end
|
||||
|
||||
def forward_for_reply
|
||||
return unless @json['signature'].present? && reply_to_local?
|
||||
ActivityPub::RawDistributionWorker.perform_async(Oj.dump(@json), replied_to_status.account_id)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -16,6 +16,8 @@ class ActivityPub::Activity::Delete < ActivityPub::Activity
|
|||
private
|
||||
|
||||
def forward_for_reblogs(status)
|
||||
return if @json['signature'].blank?
|
||||
|
||||
ActivityPub::RawDistributionWorker.push_bulk(status.reblogs.includes(:account).references(:account).merge(Account.local).pluck(:account_id)) do |account_id|
|
||||
[payload, account_id]
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue