A music player that connects to your cloud/distributed storage.
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();