Add references activitypub support
This commit is contained in:
parent
4c65f2721c
commit
cadfbbab96
8 changed files with 115 additions and 5 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue