From 391f5f2561a8d01e8674a0858c33dda243fca5aa Mon Sep 17 00:00:00 2001 From: ktKongTong <44502608+ktKongTong@users.noreply.github.com> Date: Wed, 12 Jun 2024 12:01:19 +0800 Subject: [PATCH] feat: enhanced netease transformer (#1919) --- src/markdown/embed-transformers/NetEaseMusic.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/markdown/embed-transformers/NetEaseMusic.ts b/src/markdown/embed-transformers/NetEaseMusic.ts index ffdbff9b..2b7b70ab 100644 --- a/src/markdown/embed-transformers/NetEaseMusic.ts +++ b/src/markdown/embed-transformers/NetEaseMusic.ts @@ -20,9 +20,10 @@ const parseLink = (url: string) => { } const getIFrame = (url: URL) => { - const { pathname, searchParams } = url - const isSong = pathname.includes("/song") - const id = searchParams.get("id") + const { pathname, searchParams, hash } = url + const isSong = pathname.includes("/song") || hash.includes("/song") + const [, , hashParsedId] = /#\/(song|album|playlist)\?id=(\d+)/.exec(hash) || [] + const id = searchParams.get("id") || hashParsedId const { type } = parseLink(url.toString()) const height = isSong ? 66 : 250 @@ -36,11 +37,12 @@ const getIFrame = (url: URL) => { export const NetEaseMusicTransformer: Transformer = { name: "NetEaseMusic", shouldTransform(url) { - const { host, pathname } = url + const { host, pathname, hash } = url return ( host === "music.163.com" && - includesSomeOfArray(pathname, ["/song", "/playlist", "/album"]) + includesSomeOfArray(pathname, ["/song", "/playlist", "/album"]) || + includesSomeOfArray(hash, ["/song", "/playlist", "/album"]) ) }, getHTML(url) {