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;
}
}
- 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);
self::updateDisplayCache($posted_item['uri-id']);
}
+ if ($inserted) {
+ Post\Engagement::storeFromItem($posted_item);
+ }
+
return $post_user_id;
}
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]);
+ }
}
}
$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() ?: [];