From bbaec65d2f7b954c8464823829a3497e7eeb9c2d Mon Sep 17 00:00:00 2001 From: Codex Night Worker Date: Fri, 13 Nov 2026 12:53:33 +0900 Subject: [PATCH] AI: address issue #150 --- frontend/src/components/PostEmbed.tsx | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/frontend/src/components/PostEmbed.tsx b/frontend/src/components/PostEmbed.tsx index a8e7108..a7d23fc 100644 --- a/frontend/src/components/PostEmbed.tsx +++ b/frontend/src/components/PostEmbed.tsx @@ -196,6 +196,39 @@ const PostEmbed: FC = ( return } + case 'bilibili.com': + { + const videoId = url.pathname.match ( + /^\/video\/(BV[a-zA-Z0-9]{10}|av[1-9]\d*)\/?$/)?.[1] + if (!(videoId)) + break + + if (embedAutoLoadMode === 'off') + return externalLink + if (shouldLoadEmbed === false) + return manualLoadControl + + const playerUrl = new URL ('https://player.bilibili.com/player.html') + const parameter = videoId.startsWith ('BV') ? 'bvid' : 'aid' + const identifier = parameter === 'bvid' ? videoId : videoId.slice (2) + playerUrl.searchParams.set (parameter, identifier) + playerUrl.searchParams.set ('autoplay', '1') + + const page = url.searchParams.get ('p') + if (page != null && /^[1-9]\d*$/.test (page)) + playerUrl.searchParams.set ('p', page) + + return ( +