]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Item.php
Issue 9968: Avoid blocking update calls
[friendica.git] / src / Model / Item.php
index 10f69cfcef5864fbfc2ca495db48c5b0a32a8ded..6d55fd56658b53d3c795243eeefb8ca368453204 100644 (file)
@@ -76,7 +76,7 @@ class Item
                'commented', 'created', 'edited', 'received', 'verb', 'object-type', 'postopts', 'plink',
                'wall', 'private', 'starred', 'origin', 'parent-origin', 'title', 'body', 'language',
                'content-warning', 'location', 'coord', 'app', 'rendered-hash', 'rendered-html', 'object',
-               'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid',
+               'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid', 'mention',
                'author-id', 'author-link', 'author-name', 'author-avatar', 'author-network',
                'owner-id', 'owner-link', 'owner-name', 'owner-avatar', 'owner-network', 'owner-contact-type',
                'causer-id', 'causer-link', 'causer-name', 'causer-avatar', 'causer-contact-type', 'causer-network',
@@ -94,9 +94,9 @@ class Item
                        'private', 'title', 'body', 'raw-body', 'location', 'coord', 'app',
                        'inform', 'deleted', 'extid', 'post-type', 'gravity',
                        'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid',
-                       'author-id', 'author-link', 'owner-id', 'owner-link', 'contact-uid',
+                       'author-id', 'author-link', 'author-name', 'author-avatar', 'owner-id', 'owner-link', 'contact-uid',
                        'signed_text', 'network', 'wall', 'contact-id', 'plink', 'forum_mode', 'origin',
-                       'thr-parent-id', 'parent-uri-id', 'postopts', 'pubmail', 
+                       'thr-parent-id', 'parent-uri-id', 'postopts', 'pubmail',
                        'event-created', 'event-edited', 'event-start', 'event-finish',
                        'event-summary', 'event-desc', 'event-location', 'event-type',
                        'event-nofinish', 'event-adjust', 'event-ignore', 'event-id'];
@@ -115,22 +115,6 @@ class Item
                        'author-id', 'author-link', 'author-name', 'author-avatar', 'author-network',
                        'owner-id', 'owner-link', 'owner-name', 'owner-avatar', 'causer-id'];
 
-       // Item fields that still are in use
-       const USED_FIELDLIST = ['id', 'parent', 'guid', 'uri', 'uri-id', 'parent-uri', 'parent-uri-id',
-               'thr-parent', 'thr-parent-id', 'created', 'edited', 'commented', 'received', 'changed',
-               'gravity', 'network', 'owner-id', 'author-id', 'causer-id', 'vid', 'extid', 'post-type',
-               'global', 'private', 'visible', 'deleted', 'uid', 'contact-id',
-               'wall', 'origin', 'pubmail', 'starred', 'unseen', 'mention', 'forum_mode', 'psid',
-               'event-id'];
-
-       // Legacy item fields that aren't stored any more in the item table
-       const LEGACY_FIELDLIST = ['uri-hash', 'iaid', 'icid', 'attach',
-               'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid', 'postopts', 
-               'resource-id', 'inform', 'file', 'location', 'coord', 'tag', 'plink', 
-               'title', 'content-warning', 'body', 'app', 'verb', 'object-type', 'object', 
-               'target-type', 'target', 'author-name', 'author-link', 'author-avatar', 
-               'owner-name', 'owner-link', 'owner-avatar', 'rendered-hash', 'rendered-html'];
-
        // List of all verbs that don't need additional content data.
        // Never reorder or remove entries from this list. Just add new ones at the end, if needed.
        const ACTIVITIES = [
@@ -334,14 +318,6 @@ class Item
 
                Post\DeliveryData::delete($item['uri-id']);
 
-               // When the permission set will be used in photo and events as well,
-               // this query here needs to be extended.
-               // @todo Currently deactivated. We need the permission set in the deletion process.
-               // This is a reminder to add the removal somewhere else.
-               //if (!empty($item['psid']) && !self::exists(['psid' => $item['psid'], 'deleted' => false])) {
-               //      DBA::delete('permissionset', ['id' => $item['psid']], ['cascade' => false]);
-               //}
-
                // If it's the parent of a comment thread, kill all the kids
                if ($item['gravity'] == GRAVITY_PARENT) {
                        self::markForDeletion(['parent' => $item['parent'], 'deleted' => false], $priority);
@@ -882,6 +858,8 @@ class Item
                                $item['wall'] = $toplevel_parent['wall'];
                        } else {
                                $item['wall'] = false;
+                               // Participations are technical messages, so they are set to "seen" automatically
+                               $item['unseen'] = false;
                        }
 
                        /*
@@ -992,6 +970,10 @@ class Item
                        unset($item['event-id']);
                }
 
+               if (empty($item['causer-id'])) {
+                       unset($item['causer-id']);
+               }
+
                Post::insert($item['uri-id'], $item);
 
                if ($item['gravity'] == GRAVITY_PARENT) {
@@ -1204,7 +1186,7 @@ class Item
         */
        public static function distribute($itemid, $signed_text = '')
        {
-               $condition = ["`id` IN (SELECT `parent` FROM `post-view` WHERE `id` = ?)", $itemid];
+               $condition = ["`id` IN (SELECT `parent` FROM `post-user-view` WHERE `id` = ?)", $itemid];
                $parent = Post::selectFirst(['owner-id'], $condition);
                if (!DBA::isResult($parent)) {
                        Logger::warning('Item not found', ['condition' => $condition]);
@@ -1521,6 +1503,10 @@ class Item
         */
        private static function getLanguage(array $item)
        {
+               if (!empty($item['language'])) {
+                       return $item['language'];
+               }
+
                if (!in_array($item['gravity'], [GRAVITY_PARENT, GRAVITY_COMMENT]) || empty($item['body'])) {
                        return '';
                }