]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Item.php
Merge remote-tracking branch 'upstream/develop' into restricted
[friendica.git] / src / Model / Item.php
index f2fd0bf6e699f65e0187b1040f0b419cf22ef680..8972d3b75e1870214e2da3ecbc8670ac3c9c8b00 100644 (file)
@@ -32,6 +32,7 @@ use Friendica\Core\System;
 use Friendica\Core\Worker;
 use Friendica\Database\DBA;
 use Friendica\DI;
+use Friendica\Model\Post\Category;
 use Friendica\Network\HTTPException\InternalServerErrorException;
 use Friendica\Protocol\Activity;
 use Friendica\Protocol\ActivityPub;
@@ -1249,7 +1250,7 @@ class Item
                        }
                }
 
-               Post::insert($item['uri-id'], $item);
+               $inserted = Post::insert($item['uri-id'], $item);
 
                if ($item['gravity'] == self::GRAVITY_PARENT) {
                        Post\Thread::insert($item['uri-id'], $item);
@@ -1404,6 +1405,10 @@ class Item
                        self::updateDisplayCache($posted_item['uri-id']);
                }
 
+               if ($inserted) {
+                       Post\Engagement::storeFromItem($posted_item);
+               }
+
                return $post_user_id;
        }
 
@@ -1509,10 +1514,13 @@ class Item
                        return;
                }
 
-               $uids = Tag::getUIDListByURIId($item['uri-id']);
-               foreach ($uids as $uid) {
+               foreach (Tag::getUIDListByURIId($item['uri-id']) as $uid => $tags) {
                        $stored = self::storeForUserByUriId($item['uri-id'], $uid, ['post-reason' => self::PR_TAG]);
                        Logger::info('Stored item for users', ['uri-id' => $item['uri-id'], 'uid' => $uid, 'stored' => $stored]);
+                       foreach ($tags as $tag) {
+                               $stored = Category::storeFileByURIId($item['uri-id'], $uid, Category::SUBCRIPTION, $tag);
+                               Logger::debug('Stored tag subscription for user', ['uri-id' => $item['uri-id'], 'uid' => $uid, $tag, 'stored' => $stored]);
+                       }
                }
        }
 
@@ -2009,11 +2017,8 @@ class Item
 
                $naked_body = self::getDominantLanguage($naked_body);
 
-               $availableLanguages = DI::l10n()->getAvailableLanguages();
-               // See https://github.com/friendica/friendica/issues/10511
-               // Persian is manually added to language detection until a persian translation is provided for the interface, at
-               // which point it will be automatically available through `getAvailableLanguages()` and this should be removed.
-               $availableLanguages['fa'] = 'fa';
+               $availableLanguages = DI::l10n()->getAvailableLanguages(true);
+               $availableLanguages = DI::l10n()->convertForLanguageDetection($availableLanguages);
 
                $ld = new Language(array_keys($availableLanguages));
                return $ld->detect($naked_body)->limit(0, $count)->close() ?: [];