|
|
|
@ -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) |
|
|
|
|
|
|
|
|
|
return if status.nil? |
|
|
|
|
return status unless just_created |
|
|
|
|
|
|
|
|
|
if verb == :share |
|
|
|
|
original_status = shared_status_from_xml(@xml.at_xpath('.//activity:object', activity: TagManager::AS_XMLNS)) |
|
|
|
|
status.reblog = original_status |
|
|
|
|
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 |
|
|
|
|
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? |
|
|
|
|