A music player that connects to your cloud/distributed storage.
at v4 47 lines 1.2 kB view raw
1import foundation from "~/common/foundation.js"; 2 3// Set doc title 4foundation.setup({ title: "Generate Playlist | Diffuse" }); 5 6const output = await foundation.orchestrator.output(); 7const queue = await foundation.engine.queue(); 8 9/** 10 * Playlist generator 11 */ 12function generatePlaylist() { 13 const queueItems = [ 14 ...queue.past(), 15 ...(queue.now() ? [queue.now()] : []), 16 ...queue.future().filter((i) => i.manualEntry), 17 ]; 18 19 const tracksCol = output.tracks.collection(); 20 const tracksList = tracksCol.state === "loaded" ? tracksCol.data : []; 21 const playlist = queueItems 22 .map((item) => tracksList.find((t) => t.id === item?.id)) 23 .filter((t) => t); 24 25 const element = document.querySelector("main ol"); 26 if (!element) return; 27 28 element.innerHTML = playlist 29 .map((track) => 30 `<li> 31 ${track?.tags?.artist ?? "Unknown artist"} - 32 ${track?.tags?.title ?? "Unknown title"} 33 </li>` 34 ) 35 .join(""); 36} 37 38/** @type {HTMLButtonElement} */ (document.body.querySelector("button")) 39 .onclick = () => { 40 generatePlaylist(); 41 }; 42 43//////////////////////////////////////////// 44// 🚀 45//////////////////////////////////////////// 46 47foundation.ready();