From 11810bbf54b74a049173f99c9c1137052f7b2527 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Tue, 27 Oct 2015 03:15:38 +0000 Subject: [PATCH] Update conversation when we update reply_to Or repeat_of --- plugins/Linkback/lib/util.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/Linkback/lib/util.php b/plugins/Linkback/lib/util.php index 94f0d992f4..ee498a4771 100644 --- a/plugins/Linkback/lib/util.php +++ b/plugins/Linkback/lib/util.php @@ -356,8 +356,20 @@ function linkback_save($source, $target, $response, $notice_or_user) { try { $dupe->saveKnownUrls($options['urls']); } catch (ServerException $ex) {} if($options['reply_to']) { $dupe->reply_to = $options['reply_to']; } - if($options['repost_of']) { $dupe->repost_of = $options['repost_of']; } + if($options['repeat_of']) { $dupe->repeat_of = $options['repeat_of']; } + if($dupe->reply_to != $orig->reply_to || $dupe->repeat_of != $orig->repeat_of) { + $parent = Notice::getKV('id', $dupe->repost_of ? $dupe->repost_of : $dupe->reply_to); + if($parent instanceof Notice) { + // If we changed the reply_to or repeat_of we might live in a new conversation now + $dupe->conversation = $parent->conversation; + } + } if($dupe->update($orig)) { $saved = $dupe; } + if($dupe->conversation != $orig->conversation && Conversation::noticeCount($orig->conversation) < 1) { + // Delete empty conversation + $emptyConversation = Conversation::getKV('id', $orig->conversation); + $emptyConversation->delete(); + } } catch (Exception $e) { common_log(LOG_ERR, "Linkback update of remote message $source failed: " . $e->getMessage()); return false; -- 2.39.5