]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Update conversation when we update reply_to
authorStephen Paul Weber <singpolyma@singpolyma.net>
Tue, 27 Oct 2015 03:15:38 +0000 (03:15 +0000)
committerStephen Paul Weber <singpolyma@singpolyma.net>
Thu, 12 Nov 2015 19:06:17 +0000 (19:06 +0000)
Or repeat_of

plugins/Linkback/lib/util.php

index 94f0d992f4a4ed87ff2a07b14e225dad607da0c6..ee498a47715b5db595c666593a33bbf69495295e 100644 (file)
@@ -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;