]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - scripts/upgrade.php
Merge remote-tracking branch 'upstream/master' into social-master
[quix0rs-gnu-social.git] / scripts / upgrade.php
index c6f3e28606a7fbd2c5ef03b229d6fb0f583beff1..dff4057cd487099ce93b09c0073cb4ebc9ac9c4f 100755 (executable)
@@ -41,7 +41,6 @@ function main()
 
         // These replace old "fixup_*" scripts
 
-        fixupNoticeRendered();
         fixupNoticeConversation();
         initConversation();
         fixupGroupURI();
@@ -94,32 +93,13 @@ function updateSchemaPlugins()
     printfnq("DONE.\n");
 }
 
-function fixupNoticeRendered()
-{
-    printfnq("Ensuring all notices have rendered HTML...");
-
-    $notice = new Notice();
-
-    $notice->whereAdd('rendered IS NULL');
-    $notice->find();
-
-    while ($notice->fetch()) {
-        $original = clone($notice);
-        $notice->rendered = common_render_content($notice->content,
-                                                  $notice->getProfile(),
-                                                  $notice->hasParent() ? $notice->getParent() : null);
-        $notice->update($original);
-    }
-
-    printfnq("DONE.\n");
-}
-
 function fixupNoticeConversation()
 {
     printfnq("Ensuring all notices have a conversation ID...");
 
     $notice = new Notice();
     $notice->whereAdd('conversation is null');
+    $notice->whereAdd('conversation = 0', 'OR');
     $notice->orderBy('id'); // try to get originals before replies
     $notice->find();
 
@@ -129,29 +109,36 @@ function fixupNoticeConversation()
     
             $orig = clone($notice);
     
-            if (empty($notice->reply_to)) {
-                $notice->conversation = $notice->id;
-            } else {
+            if (!empty($notice->reply_to)) {
                 $reply = Notice::getKV('id', $notice->reply_to);
 
-                if (empty($reply)) {
-                    $notice->conversation = $notice->id;
-                } else if (empty($reply->conversation)) {
-                    $notice->conversation = $notice->id;
-                } else {
+                if ($reply instanceof Notice && !empty($reply->conversation)) {
                     $notice->conversation = $reply->conversation;
                 }
-       
                 unset($reply);
-                $reply = null;
+            }
+
+            // if still empty
+            if (empty($notice->conversation)) {
+                $child = new Notice();
+                $child->reply_to = $notice->getID();
+                $child->limit(1);
+                if ($child->find(true) && !empty($child->conversation)) {
+                    $notice->conversation = $child->conversation;
+                }
+                unset($child);
+            }
+
+            // if _still_ empty we just create our own conversation
+            if (empty($notice->conversation)) {
+                $notice->conversation = $notice->getID();
             }
 
             $result = $notice->update($orig);
 
-            $orig = null;
             unset($orig);
         } catch (Exception $e) {
-            printv("Error setting conversation: " . $e->getMessage());
+            print("Error setting conversation: " . $e->getMessage());
         }
     }