diff --git a/CHANGELOG.md b/CHANGELOG.md index e641fe1..aa0606e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,4 +10,5 @@ Fixed: - Default folder images not working Improved: -- Moved `Hide Ads` into `Main Settings` \ No newline at end of file +- Moved `Hide Ads` into `Main Settings` +- Added hover tooltips on playlist / folder images. Useful for collapsed sidebar \ No newline at end of file diff --git a/src/js/Folders.js b/src/js/Folders.js index 909522a..16ba0ae 100644 --- a/src/js/Folders.js +++ b/src/js/Folders.js @@ -9,59 +9,44 @@ waitForElement([`.main-rootlist-rootlistPlaylistsScrollNode ul[tabindex="0"]`, ` root.classList.add("dribs-playlist-list"); /** Replace Playlist name with their pictures */ - function loadPlaylistImage() { + async function loadPlaylistImage() { for (const item of listElem.children) { let link = item.querySelector("a"); if (!link) continue; let [_, app, uid] = link.pathname.split("/"); - let uri; + + if (link.querySelector("svg")) link.querySelector("svg").remove(); + if (link.querySelector("img")) link.querySelector("img").remove(); + const title = link.querySelector("span").innerText; + let elem; + if (app === "playlist") { - uri = Spicetify.URI.playlistV2URI(uid); + const { + metadata: { picture } + } = await Spicetify.CosmosAsync.get(`sp://core-playlist/v1/playlist/${Spicetify.URI.playlistV2URI(uid).toURI()}/metadata`, { policy: { picture: true } }); + + if (picture != null && picture.trim() != "") { + if (!link.querySelector("img")) elem = document.createElement("img"); + elem.src = picture; + } else { + if (!link.querySelector("svg")) elem = htmlToNode(iconNote.replace(/<\/svg>/, `