commit: 15b43f555dcb06742c677d84c25d05774ef1bde2
parent: d8ec83280637e53ded67d4938a198cbeb9e8db05
Author: ThibG <thib@sitedethib.com>
Date: Tue, 20 Jun 2017 20:44:32 +0200
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
Diffstat:
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git 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)