Add references activitypub support

This commit is contained in:
KMY 2023-07-11 18:31:28 +09:00
parent 4c65f2721c
commit cadfbbab96
8 changed files with 115 additions and 5 deletions

View file

@ -32,7 +32,7 @@ class ActivityPub::FetchReferencesService < BaseService
all_items.concat(items)
break if all_items.size >= StatusReferenceValidator::LIMIT
break if all_items.size >= 5
collection = collection['next'].present? ? fetch_collection(collection['next']) : nil
end
@ -42,7 +42,8 @@ class ActivityPub::FetchReferencesService < BaseService
def fetch_collection(collection_or_uri)
return collection_or_uri if collection_or_uri.is_a?(Hash)
return if invalid_origin?(collection_or_uri)
return if unsupported_uri_scheme?(collection_or_uri)
return if ActivityPub::TagManager.instance.local_uri?(collection_or_uri)
fetch_resource_without_id_validation(collection_or_uri, nil, true)
end

View file

@ -45,6 +45,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
create_edits!
end
update_references!
download_media_files!
queue_poll_notifications!
@ -240,6 +241,13 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
end
end
def update_references!
references = @json['references'].nil? ? [] : ActivityPub::FetchReferencesService.new.call(@json['references'])
quote = @json['quote'] || @json['quoteUrl'] || @json['quoteURL'] || @json['_misskey_quote']
references << quote if quote
ProcessReferencesWorker.perform_async(@status.id, [], references)
end
def expected_type?
equals_or_includes_any?(@json['type'], %w(Note Question))
end