From 735386f5ecb887439f304f765912df05c2d91deb Mon Sep 17 00:00:00 2001 From: SnowCait Date: Mon, 3 Feb 2025 04:03:18 +0900 Subject: [PATCH] Niconico embedded player --- web/src/lib/Constants.ts | 1 + web/src/lib/components/Content.svelte | 3 +++ .../lib/components/content/Nicovideo.svelte | 18 ++++++++++++++++++ web/src/lib/components/content/Url.svelte | 5 ++++- 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 web/src/lib/components/content/Nicovideo.svelte diff --git a/web/src/lib/Constants.ts b/web/src/lib/Constants.ts index cc810ae2..b22b82e3 100644 --- a/web/src/lib/Constants.ts +++ b/web/src/lib/Constants.ts @@ -15,6 +15,7 @@ export const timelineBufferMs = 1500; export const timeout = 5000; export const hashtagsRegexp = /(?<=^|\s)#(?[\p{Letter}\p{Number}_]+)/gu; +export const nicovideoRegexp = /^https:\/\/(www|sp).nicovideo.jp\/watch\/(?[a-zA-Z0-9]+)/; export const replaceableKinds = [ Kind.Metadata, diff --git a/web/src/lib/components/Content.svelte b/web/src/lib/components/Content.svelte index b73323a0..a935f8a4 100644 --- a/web/src/lib/components/Content.svelte +++ b/web/src/lib/components/Content.svelte @@ -11,6 +11,7 @@ import Ogp from './content/Ogp.svelte'; import { enablePreview } from '$lib/stores/Preference'; import { Twitter } from '$lib/Twitter'; + import { nicovideoRegexp } from '$lib/Constants'; export let content: string; export let tags: string[][]; @@ -56,6 +57,8 @@ {:else if url.hostname === 'youtu.be' || /^(.+\.)*youtube\.com$/s.test(url.hostname)} + {:else if url.hostname.endsWith('nicovideo.jp') && nicovideoRegexp.test(url.href)} + {:else if url.hostname === 'amzn.to' || url.hostname === 'amzn.asia' || /^(.+\.)*amazon\.co\.jp$/s.test(url.hostname)} {:else if /\.(apng|avif|gif|jpg|jpeg|png|webp|bmp|mp3|m4a|wav|mp4|ogg|webm|ogv|mov|mkv|avi|m4v)$/i.test(url.pathname)} diff --git a/web/src/lib/components/content/Nicovideo.svelte b/web/src/lib/components/content/Nicovideo.svelte new file mode 100644 index 00000000..2e43c0e4 --- /dev/null +++ b/web/src/lib/components/content/Nicovideo.svelte @@ -0,0 +1,18 @@ + + +
diff --git a/web/src/lib/components/content/Url.svelte b/web/src/lib/components/content/Url.svelte index a823c0af..4b2177e2 100644 --- a/web/src/lib/components/content/Url.svelte +++ b/web/src/lib/components/content/Url.svelte @@ -1,6 +1,6 @@