Get conversation ID from child too in scripts/upgrade.php

This commit is contained in:
Mikael Nordfeldth 2016-01-06 14:57:30 +01:00
parent 4a8e936e19
commit d6ac002639

View File

@ -120,6 +120,7 @@ function fixupNoticeConversation()
$notice = new Notice(); $notice = new Notice();
$notice->whereAdd('conversation is null'); $notice->whereAdd('conversation is null');
$notice->whereAdd('conversation = 0', 'OR');
$notice->orderBy('id'); // try to get originals before replies $notice->orderBy('id'); // try to get originals before replies
$notice->find(); $notice->find();
@ -129,29 +130,36 @@ function fixupNoticeConversation()
$orig = clone($notice); $orig = clone($notice);
if (empty($notice->reply_to)) { if (!empty($notice->reply_to)) {
$notice->conversation = $notice->id;
} else {
$reply = Notice::getKV('id', $notice->reply_to); $reply = Notice::getKV('id', $notice->reply_to);
if (empty($reply)) { if ($reply instanceof Notice && !empty($reply->conversation)) {
$notice->conversation = $notice->id;
} else if (empty($reply->conversation)) {
$notice->conversation = $notice->id;
} else {
$notice->conversation = $reply->conversation; $notice->conversation = $reply->conversation;
} }
unset($reply); 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); $result = $notice->update($orig);
$orig = null;
unset($orig); unset($orig);
} catch (Exception $e) { } catch (Exception $e) {
printv("Error setting conversation: " . $e->getMessage()); print("Error setting conversation: " . $e->getMessage());
} }
} }