diff --git a/frontend/src/components/PostEmbed.tsx b/frontend/src/components/PostEmbed.tsx index a8e7108..d417682 100644 --- a/frontend/src/components/PostEmbed.tsx +++ b/frontend/src/components/PostEmbed.tsx @@ -177,6 +177,39 @@ const PostEmbed: FC = ( onError={onError}/>) } + case 'pixiv.net': + { + if (url.hostname !== 'pixiv.net' && url.hostname !== 'www.pixiv.net') + break + + const artworkId = + url.pathname === '/member_illust.php' + ? url.searchParams.get ('illust_id') + : url.pathname.match ( + /^\/(?:[a-z]{2}(?:-[A-Za-z]{2})?\/)?artworks\/(\d+)\/?$/)?.[1] + + if (!(artworkId) || !(/^\d+$/.test (artworkId))) + break + + if (embedAutoLoadMode === 'off') + return externalLink + if (shouldLoadEmbed === false) + return manualLoadControl + + const embedUrl = + `https://embed.pixiv.net/oembed_iframe.php?type=illust&id=${ artworkId }` + + return ( +