]> git.mxchange.org Git - friendica.git/commitdiff
Additional "is null" check in post update / create the "vid" if needed
authorMichael <heluecht@pirati.ca>
Sun, 31 May 2020 15:48:31 +0000 (15:48 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 31 May 2020 15:48:31 +0000 (15:48 +0000)
src/Database/PostUpdate.php
src/Model/Item.php

index a3b967d3bf43be097cb34212bf66654d9f3521b8..de584238da93dc8d1f749efd1cc6905c42aad88d 100644 (file)
@@ -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()]);
index b4d22055bcd6ba71399ff326747fa48919284a53..7a965f80b5f41649856f47abf2d0866afbf046e5 100644 (file)
@@ -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