Ignore error if mentioned account was not processable (#29215)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
This commit is contained in:
		@@ -42,6 +42,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
 | 
			
		||||
  def process_status
 | 
			
		||||
    @tags                 = []
 | 
			
		||||
    @mentions             = []
 | 
			
		||||
    @unresolved_mentions  = []
 | 
			
		||||
    @silenced_account_ids = []
 | 
			
		||||
    @params               = {}
 | 
			
		||||
 | 
			
		||||
@@ -55,6 +56,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    resolve_thread(@status)
 | 
			
		||||
    resolve_unresolved_mentions(@status)
 | 
			
		||||
    fetch_replies(@status)
 | 
			
		||||
    distribute
 | 
			
		||||
    forward_for_reply
 | 
			
		||||
@@ -197,6 +199,8 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
 | 
			
		||||
    return if account.nil?
 | 
			
		||||
 | 
			
		||||
    @mentions << Mention.new(account: account, silent: false)
 | 
			
		||||
  rescue Mastodon::UnexpectedResponseError, HTTP::TimeoutError, HTTP::ConnectionError, OpenSSL::SSL::SSLError
 | 
			
		||||
    @unresolved_mentions << tag['href']
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def process_emoji(tag)
 | 
			
		||||
@@ -301,6 +305,12 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
 | 
			
		||||
    ThreadResolveWorker.perform_async(status.id, in_reply_to_uri, { 'request_id' => @options[:request_id] })
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def resolve_unresolved_mentions(status)
 | 
			
		||||
    @unresolved_mentions.uniq.each do |uri|
 | 
			
		||||
      MentionResolveWorker.perform_in(rand(30...600).seconds, status.id, uri, { 'request_id' => @options[:request_id] })
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def fetch_replies(status)
 | 
			
		||||
    collection = @object['replies']
 | 
			
		||||
    return if collection.blank?
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user