fix(plugins/music): apple tracklist (external redesign) (#955)

This commit is contained in:
Simon Lecoq
2022-03-22 04:34:19 +01:00
committed by GitHub
parent 81675d7697
commit 607d52907f

View File

@@ -104,14 +104,18 @@ export default async function({login, imports, data, q, account}, {enabled = fal
//Apple music //Apple music
case "apple": { case "apple": {
//Parse tracklist //Parse tracklist
await frame.waitForSelector(".tracklist.playlist") await frame.waitForFunction(() => !!document.querySelector("embed-root").shadowRoot.querySelector(".audio-tracklist"))
//Apple music do a lot of lazy-loading preventing the use of networkIdle
await new Promise(solve => setTimeout(solve, 10*1000))
tracks = [ tracks = [
...await frame.evaluate(() => [...document.querySelectorAll(".tracklist li")].map(li => ({ ...await frame.evaluate(() => {
name:li.querySelector(".tracklist__track__name").innerText, const tracklist = document.querySelector("embed-root").shadowRoot.querySelector(".audio-tracklist")
artist:li.querySelector(".tracklist__track__sub").innerText, return [...tracklist.querySelectorAll("embed-audio-tracklist-item")].map(item => ({
artwork:li.querySelector(".tracklist__track__artwork img").src, name:item.querySelector(".audio-tracklist-item__metadata h3").innerText,
artist:item.querySelector(".audio-tracklist-item__metadata h4").innerText,
artwork:item.querySelector("apple-music-artwork")?.shadowRoot?.querySelector("picture source")?.srcset?.split(",")?.[0]?.replace(/\s+\d+x$/, ""),
})) }))
), })
] ]
break break
} }