|
|
|
|
@ -64,6 +64,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
|
|
|
|
|
resolve_thread(@status)
|
|
|
|
|
resolve_unresolved_mentions(@status)
|
|
|
|
|
fetch_replies(@status)
|
|
|
|
|
fetch_and_verify_quote
|
|
|
|
|
distribute
|
|
|
|
|
forward_for_reply
|
|
|
|
|
end
|
|
|
|
|
@ -204,11 +205,6 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
|
|
|
|
|
|
|
|
|
|
@quote.status = status
|
|
|
|
|
@quote.save
|
|
|
|
|
|
|
|
|
|
embedded_quote = safe_prefetched_embed(@account, @status_parser.quoted_object, @json['context'])
|
|
|
|
|
ActivityPub::VerifyQuoteService.new.call(@quote, fetchable_quoted_uri: @quote_uri, prefetched_quoted_object: embedded_quote, request_id: @options[:request_id], depth: @options[:depth])
|
|
|
|
|
rescue Mastodon::RecursionLimitExceededError, Mastodon::UnexpectedResponseError, *Mastodon::HTTP_CONNECTION_ERRORS
|
|
|
|
|
ActivityPub::RefetchAndVerifyQuoteWorker.perform_in(rand(30..600).seconds, @quote.id, @quote_uri, { 'request_id' => @options[:request_id] })
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def process_tags
|
|
|
|
|
@ -378,6 +374,15 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
|
|
|
|
|
Rails.logger.warn "Error fetching replies: #{e}"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def fetch_and_verify_quote
|
|
|
|
|
return if @quote.nil?
|
|
|
|
|
|
|
|
|
|
embedded_quote = safe_prefetched_embed(@account, @status_parser.quoted_object, @json['context'])
|
|
|
|
|
ActivityPub::VerifyQuoteService.new.call(@quote, fetchable_quoted_uri: @quote_uri, prefetched_quoted_object: embedded_quote, request_id: @options[:request_id], depth: @options[:depth])
|
|
|
|
|
rescue Mastodon::RecursionLimitExceededError, Mastodon::UnexpectedResponseError, *Mastodon::HTTP_CONNECTION_ERRORS
|
|
|
|
|
ActivityPub::RefetchAndVerifyQuoteWorker.perform_in(rand(30..600).seconds, @quote.id, @quote_uri, { 'request_id' => @options[:request_id] })
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def conversation_from_uri(uri)
|
|
|
|
|
return nil if uri.nil?
|
|
|
|
|
return Conversation.find_by(id: OStatus::TagManager.instance.unique_tag_to_local_id(uri, 'Conversation')) if OStatus::TagManager.instance.local_id?(uri)
|
|
|
|
|
|