From 7ac4a08e1b6981be6178f85381ad1827d986d6b1 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 31 May 2020 15:48:31 +0000 Subject: [PATCH] Additional "is null" check in post update / create the "vid" if needed --- src/Database/PostUpdate.php | 6 +++--- src/Model/Item.php | 12 +++++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Database/PostUpdate.php b/src/Database/PostUpdate.php index a3b967d3bf..de584238da 100644 --- a/src/Database/PostUpdate.php +++ b/src/Database/PostUpdate.php @@ -831,7 +831,7 @@ class PostUpdate } /** - * update the "vid" (verb) field in the item table + * update the "vid" (verb) field in the item table * * @return bool "true" when the job is done * @throws \Friendica\Network\HTTPException\InternalServerErrorException @@ -851,10 +851,10 @@ class PostUpdate $start_id = $id; $rows = 0; - $items = DBA::p("SELECT `item`.`id`, `item`.`vid`, `item`.`verb` AS `item-verb`, `item-content`.`verb`, `item-activity`.`activity` + $items = DBA::p("SELECT `item`.`id`, `item`.`verb` AS `item-verb`, `item-content`.`verb`, `item-activity`.`activity` FROM `item` LEFT JOIN `item-content` ON `item-content`.`uri-id` = `item`.`uri-id` LEFT JOIN `item-activity` ON `item-activity`.`uri-id` = `item`.`uri-id` AND `item`.`gravity` = ? - WHERE `item`.`id` >= ? ORDER BY `item`.`id` LIMIT 10000", GRAVITY_ACTIVITY, $id); + WHERE `item`.`id` >= ? AND `item`.`vid` IS NULL ORDER BY `item`.`id` LIMIT 10000", GRAVITY_ACTIVITY, $id); if (DBA::errorNo() != 0) { Logger::error('Database error', ['no' => DBA::errorNo(), 'message' => DBA::errorMessage()]); diff --git a/src/Model/Item.php b/src/Model/Item.php index b4d22055bc..7a965f80b5 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -72,7 +72,7 @@ class Item 'event-id', 'event-created', 'event-edited', 'event-start', 'event-finish', 'event-summary', 'event-desc', 'event-location', 'event-type', 'event-nofinish', 'event-adjust', 'event-ignore', 'event-id', - 'delivery_queue_count', 'delivery_queue_done', 'delivery_queue_failed', 'activity' + 'delivery_queue_count', 'delivery_queue_done', 'delivery_queue_failed' ]; // Field list that is used to deliver items via the protocols @@ -285,6 +285,10 @@ class Item } } + if (array_key_exists('vid', $row) && is_null($row['vid']) && !empty($row['verb'])) { + $row['vid'] = Verb::getID($row['verb']); + } + if (!array_key_exists('verb', $row) || in_array($row['verb'], ['', Activity::POST, Activity::SHARE])) { // Build the file string out of the term entries if (array_key_exists('file', $row) && empty($row['file'])) { @@ -1777,7 +1781,7 @@ class Item // Check for hashtags in the body and repair or add hashtag links self::setHashtags($item); - + // Fill the cache field self::putInCache($item); @@ -1796,12 +1800,14 @@ class Item } $body = $item['body']; - + // We just remove everything that is content foreach (array_merge(self::CONTENT_FIELDLIST, self::MIXED_CONTENT_FIELDLIST) as $field) { unset($item[$field]); } + unset($item['activity']); + // Filling item related side tables // Diaspora signature