]> 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 cf039da3ab32e267873cc73e6872d5610e813f6f..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;
@@ -95,7 +96,7 @@ class Item
                'wall', 'private', 'starred', 'origin', 'parent-origin', 'title', 'body', 'language',
                'content-warning', 'location', 'coord', 'app', 'rendered-hash', 'rendered-html', 'object',
                'quote-uri', 'quote-uri-id', 'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid', 'mention', 'global',
-               'author-id', 'author-link', 'author-alias', 'author-name', 'author-avatar', 'author-network', 'author-updated', 'author-gsid', 'author-addr', 'author-uri-id',
+               'author-id', 'author-link', 'author-alias', 'author-name', 'author-avatar', 'author-network', 'author-updated', 'author-gsid', 'author-baseurl', 'author-addr', 'author-uri-id',
                'owner-id', 'owner-link', 'owner-alias', 'owner-name', 'owner-avatar', 'owner-network', 'owner-contact-type', 'owner-updated', 'owner-gsid',
                'causer-id', 'causer-link', 'causer-alias', 'causer-name', 'causer-avatar', 'causer-contact-type', 'causer-network', 'causer-gsid',
                'contact-id', 'contact-uid', 'contact-link', 'contact-name', 'contact-avatar',
@@ -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() ?: [];