Add support for ingesting quote policies (#34479)

This commit is contained in:
Claire 2025-04-28 10:48:27 +02:00 committed by GitHub
parent 1a1f3f037d
commit 9ed6a14d45
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 181 additions and 4 deletions

View file

@ -10,7 +10,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
@activity_json = activity_json
@json = object_json
@status_parser = ActivityPub::Parser::StatusParser.new(@json)
@status_parser = ActivityPub::Parser::StatusParser.new(@json, followers_collection: status.account.followers_url, actor_uri: ActivityPub::TagManager.instance.uri_for(status.account))
@uri = @status_parser.uri
@status = status
@account = status.account
@ -41,6 +41,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
Status.transaction do
record_previous_edit!
update_media_attachments!
update_interaction_policies!
update_poll!
update_immediate_attributes!
update_metadata!
@ -62,12 +63,17 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
def handle_implicit_update!
with_redis_lock("create:#{@uri}") do
update_interaction_policies!
update_poll!(allow_significant_changes: false)
queue_poll_notifications!
update_counts!
end
end
def update_interaction_policies!
@status.quote_approval_policy = @status_parser.quote_policy
end
def update_media_attachments!
previous_media_attachments = @status.media_attachments.to_a
previous_media_attachments_ids = @status.ordered_media_attachment_ids || previous_media_attachments.map(&:id)