so that public timeline/caching would not encounter incomplete data
This commit is contained in:
		
							parent
							
								
									c0aba00ae1
								
							
						
					
					
						commit
						cc91569a92
					
				
					 1 changed files with 18 additions and 13 deletions
				
			
		| 
						 | 
				
			
			@ -47,25 +47,30 @@ class ProcessFeedService < BaseService
 | 
			
		|||
        return
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      status, just_created = nil
 | 
			
		||||
 | 
			
		||||
      Rails.logger.debug "Creating remote status #{id}"
 | 
			
		||||
      status, just_created = status_from_xml(@xml)
 | 
			
		||||
 | 
			
		||||
      return if status.nil?
 | 
			
		||||
      return status unless just_created
 | 
			
		||||
      ApplicationRecord.transaction do
 | 
			
		||||
        status, just_created = status_from_xml(@xml)
 | 
			
		||||
 | 
			
		||||
      if verb == :share
 | 
			
		||||
        original_status = shared_status_from_xml(@xml.at_xpath('.//activity:object', activity: TagManager::AS_XMLNS))
 | 
			
		||||
        status.reblog   = original_status
 | 
			
		||||
        return if status.nil?
 | 
			
		||||
        return status unless just_created
 | 
			
		||||
 | 
			
		||||
        if original_status.nil?
 | 
			
		||||
          status.destroy
 | 
			
		||||
          return nil
 | 
			
		||||
        elsif original_status.reblog?
 | 
			
		||||
          status.reblog = original_status.reblog
 | 
			
		||||
        if verb == :share
 | 
			
		||||
          original_status = shared_status_from_xml(@xml.at_xpath('.//activity:object', activity: TagManager::AS_XMLNS))
 | 
			
		||||
          status.reblog   = original_status
 | 
			
		||||
 | 
			
		||||
          if original_status.nil?
 | 
			
		||||
            status.destroy
 | 
			
		||||
            return nil
 | 
			
		||||
          elsif original_status.reblog?
 | 
			
		||||
            status.reblog = original_status.reblog
 | 
			
		||||
          end
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      status.save!
 | 
			
		||||
        status.save!
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      notify_about_mentions!(status) unless status.reblog?
 | 
			
		||||
      notify_about_reblog!(status) if status.reblog? && status.reblog.account.local?
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue