From 15b43f555dcb06742c677d84c25d05774ef1bde2 Mon Sep 17 00:00:00 2001 From: ThibG Date: Tue, 20 Jun 2017 20:44:32 +0200 Subject: [PATCH] Fix conversations (fixes #3869) (#3870) * Actually create conversations given explicit URIs * Try to get the parent toot in before validation, to avoid creating a new conversation --- app/services/process_feed_service.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/services/process_feed_service.rb b/app/services/process_feed_service.rb index eabeb1799ad..fbdf92caab7 100644 --- a/app/services/process_feed_service.rb +++ b/app/services/process_feed_service.rb @@ -66,8 +66,6 @@ class ProcessFeedService < BaseService status.reblog = original_status.reblog? ? original_status.reblog : original_status end - status.thread = find_status(thread(@xml).first) if thread?(@xml) - status.save! end @@ -155,7 +153,8 @@ class ProcessFeedService < BaseService reply: thread?(entry), language: content_language(entry), visibility: visibility_scope(entry), - conversation: find_or_create_conversation(entry) + conversation: find_or_create_conversation(entry), + thread: thread?(entry) ? find_status(thread(entry).first) : nil ) mentions_from_xml(status, entry) @@ -174,7 +173,7 @@ class ProcessFeedService < BaseService return Conversation.find_by(id: local_id) end - Conversation.find_by(uri: uri) + Conversation.find_by(uri: uri) || Conversation.create!(uri: uri) end def find_status(uri)