return 0;
}
- $parent = Post::selectFirst(['uri-id', 'created', 'author-id', 'owner-id', 'uid', 'private', 'contact-contact-type', 'language', 'network',
- 'title', 'content-warning', 'body', 'author-contact-type', 'author-nick', 'author-addr', 'author-gsid', 'owner-contact-type', 'owner-nick', 'owner-addr', 'owner-gsid'],
+ $parent = Post::selectFirst(['uri-id', 'created', 'uid', 'private', 'quote-uri-id',
+ 'contact-contact-type', 'network', 'title', 'content-warning', 'body', 'language',
+ 'author-id', 'author-contact-type', 'author-nick', 'author-addr', 'author-gsid',
+ 'owner-id', 'owner-contact-type', 'owner-nick', 'owner-addr', 'owner-gsid'],
['uri-id' => $item['parent-uri-id']]);
if ($parent['created'] < self::getCreationDateLimit(false)) {
}
}
- $mediatype = self::getMediaType($item['parent-uri-id']);
+ $mediatype = self::getMediaType($item['parent-uri-id'], $parent['quote-uri-id']);
if (!$store) {
$store = !empty($mediatype);
'owner-nick' => $author['nick'],
'owner-addr' => $author['addr'],
'owner-gsid' => $author['gsid'],
+ 'quote-uri-id' => 0,
];
foreach ($receivers as $receiver) {
}
$post = Post::selectFirstPost(['uri-id', 'network', 'title', 'content-warning', 'body', 'private',
- 'author-id', 'author-contact-type', 'author-nick', 'author-addr', 'author-gsid',
+ 'author-id', 'author-contact-type', 'author-nick', 'author-addr', 'author-gsid', 'quote-uri-id',
'owner-id', 'owner-contact-type', 'owner-nick', 'owner-addr', 'owner-gsid'], ['uri-id' => $uri_id]);
if (empty($post['uri-id'])) {
return '';
}
- $mediatype = self::getMediaType($uri_id);
+ $mediatype = self::getMediaType($uri_id, $post['quote-uri-id']);
return self::getSearchTextForItem($post, $mediatype);
}
$body .= ' media_audio';
}
+ if ($mediatype & 8) {
+ $body .= ' media_card';
+ }
+
+ if ($mediatype & 16) {
+ $body .= ' media_post';
+ }
+
$body .= ' ' . $item['title'] . ' ' . $item['content-warning'] . ' ' . $item['body'];
return BBCode::toSearchText($body, $item['uri-id']);
return $text;
}
- public static function getMediaType(int $uri_id): int
+ public static function getMediaType(int $uri_id, int $quote_uri_id = null): int
{
$media = Post\Media::getByURIId($uri_id);
- $type = 0;
+ $type = !empty($quote_uri_id) ? 16 : 0;
foreach ($media as $entry) {
if ($entry['type'] == Post\Media::IMAGE) {
$type = $type | 1;
$type = $type | 2;
} elseif ($entry['type'] == Post\Media::AUDIO) {
$type = $type | 4;
+ } elseif ($entry['type'] == Post\Media::HTML) {
+ $type = $type | 8;
+ } elseif ($entry['type'] == Post\Media::ACTIVITY) {
+ $type = $type | 16;
}
}
return $type;
return;
}
- $item = Post::selectFirstPost(['created', 'owner-id', 'private', 'language', 'network', 'title', 'content-warning', 'body'], ['uri-id' => $uri_id]);
+ $item = Post::selectFirstPost(['created', 'owner-id', 'private', 'language', 'network', 'title', 'content-warning', 'body', 'quote-uri-id'], ['uri-id' => $uri_id]);
$search = [
'uri-id' => $uri_id,
'owner-id' => $item['owner-id'],
- 'media-type' => Engagement::getMediaType($uri_id),
- 'language' => !empty($item['language']) ? (array_key_first(json_decode($item['language'], true)) ?? L10n::UNDETERMINED_LANGUAGE) : L10n::UNDETERMINED_LANGUAGE,
+ 'media-type' => Engagement::getMediaType($uri_id, $item['quote-uri-id']),
+ 'language' => substr(!empty($item['language']) ? (array_key_first(json_decode($item['language'], true)) ?? L10n::UNDETERMINED_LANGUAGE) : L10n::UNDETERMINED_LANGUAGE, 0, 2),
'searchtext' => Post\Engagement::getSearchTextForUriId($uri_id, $refresh),
'size' => Engagement::getContentSize($item),
'created' => $item['created'],