Merge branch 'main' into 'fix-find-event'

# Conflicts:
#   src/views/mastodon/statuses.ts
This commit is contained in:
P. Reis 2024-04-08 18:46:11 +00:00
commit 846c8824d4
3 changed files with 20 additions and 12 deletions

View File

@ -14,6 +14,10 @@ lint:
stage: test
script: deno lint
check:
stage: test
script: deno task check
test:
stage: test
script: deno task test

View File

@ -28,25 +28,27 @@ async function unfurlCard(url: string, signal: AbortSignal): Promise<PreviewCard
fetch: (url) => fetchWorker(url, { signal }),
});
const { oEmbed, title, description, canonical_url, open_graph } = result;
return {
type: result.oEmbed?.type || 'link',
url: result.canonical_url || url,
title: result.oEmbed?.title || result.title || '',
description: result.open_graph?.description || result.description || '',
author_name: result.oEmbed?.author_name || '',
author_url: result.oEmbed?.author_url || '',
provider_name: result.oEmbed?.provider_name || '',
provider_url: result.oEmbed?.provider_url || '',
type: oEmbed?.type || 'link',
url: canonical_url || url,
title: oEmbed?.title || title || '',
description: open_graph?.description || description || '',
author_name: oEmbed?.author_name || '',
author_url: oEmbed?.author_url || '',
provider_name: oEmbed?.provider_name || '',
provider_url: oEmbed?.provider_url || '',
// @ts-expect-error `html` does in fact exist on oEmbed.
html: sanitizeHtml(result.oEmbed?.html || '', {
html: sanitizeHtml(oEmbed?.html || '', {
allowedTags: ['iframe'],
allowedAttributes: {
iframe: ['width', 'height', 'src', 'frameborder', 'allowfullscreen'],
},
}),
width: result.oEmbed?.width || 0,
height: result.oEmbed?.height || 0,
image: result.oEmbed?.thumbnails?.[0].url || result.open_graph?.images?.[0].url || null,
width: ((oEmbed && oEmbed.type !== 'link') ? oEmbed.width : 0) || 0,
height: ((oEmbed && oEmbed.type !== 'link') ? oEmbed.height : 0) || 0,
image: oEmbed?.thumbnails?.[0].url || open_graph?.images?.[0].url || null,
embed_url: '',
blurhash: null,
};

View File

@ -107,10 +107,12 @@ async function renderReblog(event: DittoEvent) {
if (!repostId) return;
event.repost = await getEvent(repostId, { kind: 1 });
event.repost = await getEvent(repostId, { kind: 1 });
if (!event.repost) return;
const reblog = await renderStatus(event.repost);
reblog.reblogged = true;
return {
id: event.id,
account: await renderAccount(event.author),