]> git.mxchange.org Git - friendica.git/commitdiff
Move Item::getGravity() into ItemInserter
authorArt4 <art4@wlabs.de>
Thu, 9 Jan 2025 21:21:42 +0000 (21:21 +0000)
committerArt4 <art4@wlabs.de>
Thu, 9 Jan 2025 21:21:42 +0000 (21:21 +0000)
src/Model/Item.php
src/Model/ItemInserter.php

index 8035d89631f0d0f294f921229a79a10db7b3b2f3..6833597a7ca287370c71d3c7d5012c2c8b777c3e 100644 (file)
@@ -817,32 +817,6 @@ class Item
                return $toplevel_parent;
        }
 
-       /**
-        * Get the gravity for the given item array
-        *
-        * @param array $item
-        * @return integer gravity
-        */
-       private static function getGravity(array $item): int
-       {
-               $activity = DI::activity();
-
-               if (isset($item['gravity'])) {
-                       return intval($item['gravity']);
-               } elseif ($item['parent-uri-id'] === $item['uri-id']) {
-                       return self::GRAVITY_PARENT;
-               } elseif ($activity->match($item['verb'], Activity::POST)) {
-                       return self::GRAVITY_COMMENT;
-               } elseif ($activity->match($item['verb'], Activity::FOLLOW)) {
-                       return self::GRAVITY_ACTIVITY;
-               } elseif ($activity->match($item['verb'], Activity::ANNOUNCE)) {
-                       return self::GRAVITY_ACTIVITY;
-               }
-
-               Logger::info('Unknown gravity for verb', ['verb' => $item['verb']]);
-               return self::GRAVITY_UNKNOWN;   // Should not happen
-       }
-
        /**
         * Inserts item record
         *
@@ -853,7 +827,7 @@ class Item
         */
        public static function insert(array $item, int $notify = 0, bool $post_local = true): int
        {
-               $itemInserter = new ItemInserter(DI::contentItem());
+               $itemInserter = new ItemInserter(DI::contentItem(), DI::activity());
 
                $orig_item = $item;
 
@@ -917,7 +891,7 @@ class Item
                        }
                }
 
-               $item = self::validateItemData($item);
+               $item = self::validateItemData($item, $itemInserter);
 
                // Ensure that there is an avatar cache
                Contact::checkAvatarCache($item['author-id']);
@@ -1364,7 +1338,7 @@ class Item
                return $post_user_id;
        }
 
-       private static function validateItemData(array $item): array
+       private static function validateItemData(array $item, ItemInserter $itemInserter): array
        {
                $item['wall']          = intval($item['wall'] ?? 0);
                $item['extid']         = trim($item['extid'] ?? '');
@@ -1417,7 +1391,11 @@ class Item
 
                $item['plink'] = ($item['plink'] ?? '') ?: DI::baseUrl() . '/display/' . urlencode($item['guid']);
 
-               $item['gravity'] = self::getGravity($item);
+               $item['gravity'] = $itemInserter->getGravity($item);
+
+               if ($item['gravity'] === self::GRAVITY_UNKNOWN) {
+                       Logger::info('Unknown gravity for verb', ['verb' => $item['verb']]);
+               }
 
                $default = [
                        'url' => $item['author-link'], 'name' => $item['author-name'],
index a19a5be46cc8f433386d3813e66c4e4f134b3b6c..cf824190ca4a482f57a68f303a930a33f4b246df 100644 (file)
@@ -8,6 +8,7 @@
 namespace Friendica\Model;
 
 use Friendica\Content\Item as ItemContent;
+use Friendica\Protocol\Activity;
 
 /**
  * A helper class for inserting an Item Model
@@ -18,9 +19,12 @@ final class ItemInserter
 {
        private ItemContent $itemContent;
 
-       public function __construct(ItemContent $itemContent)
+       private Activity $activity;
+
+       public function __construct(ItemContent $itemContent, Activity $activity)
        {
                $this->itemContent = $itemContent;
+               $this->activity    = $activity;
        }
 
        public function prepareOriginPost(array $item): array
@@ -51,4 +55,26 @@ final class ItemInserter
 
                return $item;
        }
+
+       /**
+        * Get the gravity for the given item array
+        *
+        * @return int gravity
+        */
+       public function getGravity(array $item): int
+       {
+               if (isset($item['gravity'])) {
+                       return intval($item['gravity']);
+               } elseif ($item['parent-uri-id'] === $item['uri-id']) {
+                       return Item::GRAVITY_PARENT;
+               } elseif ($this->activity->match($item['verb'], Activity::POST)) {
+                       return Item::GRAVITY_COMMENT;
+               } elseif ($this->activity->match($item['verb'], Activity::FOLLOW)) {
+                       return Item::GRAVITY_ACTIVITY;
+               } elseif ($this->activity->match($item['verb'], Activity::ANNOUNCE)) {
+                       return Item::GRAVITY_ACTIVITY;
+               }
+
+               return Item::GRAVITY_UNKNOWN;   // Should not happen
+       }
 }