From: Art4 Date: Thu, 9 Jan 2025 21:21:42 +0000 (+0000) Subject: Move Item::getGravity() into ItemInserter X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=b845524134964118af03976eb5f4a279e41ac3d2;p=friendica.git Move Item::getGravity() into ItemInserter --- diff --git a/src/Model/Item.php b/src/Model/Item.php index 8035d89631..6833597a7c 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -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'], diff --git a/src/Model/ItemInserter.php b/src/Model/ItemInserter.php index a19a5be46c..cf824190ca 100644 --- a/src/Model/ItemInserter.php +++ b/src/Model/ItemInserter.php @@ -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 + } }