Do not rely on activity arriving exactly once after delete arrived (#4754)
This commit is contained in:
		@@ -97,14 +97,7 @@ class ActivityPub::Activity
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def delete_arrived_first?(uri)
 | 
			
		||||
    key = "delete_upon_arrival:#{@account.id}:#{uri}"
 | 
			
		||||
 | 
			
		||||
    if redis.exists(key)
 | 
			
		||||
      redis.del(key)
 | 
			
		||||
      true
 | 
			
		||||
    else
 | 
			
		||||
      false
 | 
			
		||||
    end
 | 
			
		||||
    redis.exists("delete_upon_arrival:#{@account.id}:#{uri}")
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def delete_later!(uri)
 | 
			
		||||
 
 | 
			
		||||
@@ -5,13 +5,13 @@ class ActivityPub::Activity::Delete < ActivityPub::Activity
 | 
			
		||||
    status   = Status.find_by(uri: object_uri, account: @account)
 | 
			
		||||
    status ||= Status.find_by(uri: @object['_:atomUri'], account: @account) if @object.is_a?(Hash) && @object['_:atomUri'].present?
 | 
			
		||||
 | 
			
		||||
    if status.nil?
 | 
			
		||||
    delete_later!(object_uri)
 | 
			
		||||
    else
 | 
			
		||||
 | 
			
		||||
    return if status.nil?
 | 
			
		||||
 | 
			
		||||
    forward_for_reblogs(status)
 | 
			
		||||
    delete_now!(status)
 | 
			
		||||
  end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user