return;
}
+ // Try to fetch the language from the post itself
+ if (!empty($item['language'])) {
+ $language = array_key_first(json_decode($item['language'], true));
+ } else {
+ $language = '';
+ }
+
$did = DI::pConfig()->get($uid, 'bluesky', 'did');
$urls = bluesky_get_urls(Post\Media::removeFromBody($item['body']));
$item['body'] = $urls['body'];
$record = [
'text' => $facets['body'],
+ '$type' => 'app.bsky.feed.post',
'createdAt' => DateTimeFormat::utcNow(DateTimeFormat::ATOM),
- '$type' => 'app.bsky.feed.post'
];
+ if (!empty($language)) {
+ $record['langs'] = [$language];
+ }
+
if (!empty($facets['facets'])) {
$record['facets'] = $facets['facets'];
}
}
foreach (array_reverse($data->feed) as $entry) {
- if (!Relay::isWantedLanguage($entry->post->record->text)) {
+ $contact = bluesky_get_contact($entry->post->author, 0, $uid);
+ $languages = $entry->post->record->langs ?? [];
+
+ if (!Relay::isWantedLanguage($entry->post->record->text, 0, $contact['id'] ?? 0, $languages)) {
Logger::debug('Unwanted language detected', ['text' => $entry->post->record->text]);
continue;
}
$item['body'] = bluesky_get_text($record);
$item['created'] = DateTimeFormat::utc($record->createdAt, DateTimeFormat::MYSQL);
+ $item['transmitted-languages'] = $record->langs ?? [];
return $item;
}