diff --git a/src/pages/configurator/input/_applet.astro b/src/pages/configurator/input/_applet.astro index 737fa09..4b871fd 100644 --- a/src/pages/configurator/input/_applet.astro +++ b/src/pages/configurator/input/_applet.astro @@ -41,6 +41,7 @@ import { CONNECTIONS } from "@scripts/configurator/input/constants"; import { applet, register } from "@scripts/applet/common"; import { endpoint, groupTracksPerScheme, transfer } from "@scripts/common"; + import manifest from "./_manifest.json"; //////////////////////////////////////////// // SETUP @@ -48,6 +49,7 @@ const worker = endpoint( new SharedWorker(new URL("../../../scripts/configurator/input/worker", import.meta.url), { type: "module", + name: manifest.name, }).port, ); diff --git a/src/pages/constituent/blur/artwork-controller/_applet.astro b/src/pages/constituent/blur/artwork-controller/_applet.astro index ba8b71a..362118e 100644 --- a/src/pages/constituent/blur/artwork-controller/_applet.astro +++ b/src/pages/constituent/blur/artwork-controller/_applet.astro @@ -329,6 +329,7 @@ import "@styles/diffuse/fonts.css"; import type * as QueueEngine from "@applets/engine/queue/types.d.ts"; import type { Artwork } from "@applets/processor/artwork/types"; + import { debounce } from "throttle-debounce"; // Register const context = register(); @@ -436,43 +437,56 @@ import "@styles/diffuse/fonts.css"; // 🎢 QUEUE //////////////////////////////////////////// - // React to active queue item. + // Set active track based on active queue item. reactive( engine.queue, (data) => comparable(data.future), - async () => { + () => { const track = engine.queue.data.now; if (!track) { setActiveTrack(undefined); - setArtwork([]); return; } setActiveTrack(track); + }, + ); - const cacheId = await trackArtworkCacheId(track); - const art = await processor.artwork.sendAction( - "artwork", - { - cacheId, - tags: track.tags, - urls: { - get: await inputUrl(configurator.input, track.uri, "GET").then((a) => a?.url), - head: await inputUrl(configurator.input, track.uri, "HEAD").then((a) => a?.url), - }, - }, - { - timeoutDuration: 60000 * 5, + // Changed artwork based on active queue item. + // (debounced) + + reactive(engine.queue, (data) => comparable(data.future), debounce(2000, changeArtwork)); + + async function changeArtwork() { + const track = engine.queue.data.now; + + if (!track) { + setArtwork([]); + return; + } + + const cacheId = await trackArtworkCacheId(track); + const art = await processor.artwork.sendAction( + "artwork", + { + cacheId, + tags: track.tags, + urls: { + get: await inputUrl(configurator.input, track.uri, "GET").then((a) => a?.url), + head: await inputUrl(configurator.input, track.uri, "HEAD").then((a) => a?.url), }, - ); + }, + { + timeoutDuration: 60000 * 5, + }, + ); - const currTrack = activeTrack(); - const currCacheId = currTrack ? await trackArtworkCacheId(currTrack) : undefined; - if (cacheId === currCacheId) setArtwork(art); - }, - ); + const currTrack = activeTrack(); + const currCacheId = currTrack ? await trackArtworkCacheId(currTrack) : undefined; + if (cacheId === currCacheId) setArtwork(art); + } //////////////////////////////////////////// // UI diff --git a/src/pages/engine/queue/_applet.astro b/src/pages/engine/queue/_applet.astro index 4b3fda9..586d13c 100644 --- a/src/pages/engine/queue/_applet.astro +++ b/src/pages/engine/queue/_applet.astro @@ -5,6 +5,7 @@ import { register } from "@scripts/applet/common"; import { endpoint, SharedWorker, transfer } from "@scripts/common"; + import manifest from "./_manifest.json"; //////////////////////////////////////////// // SETUP @@ -12,6 +13,7 @@ const worker = endpoint( new SharedWorker(new URL("../../../scripts/engine/queue/worker", import.meta.url), { type: "module", + name: manifest.name, }).port, ); diff --git a/src/pages/input/native-fs/_applet.astro b/src/pages/input/native-fs/_applet.astro index faf1c2d..8a0ae0c 100644 --- a/src/pages/input/native-fs/_applet.astro +++ b/src/pages/input/native-fs/_applet.astro @@ -21,6 +21,7 @@ import { register } from "@scripts/applet/common"; import { endpoint, inIframe, SharedWorker, transfer } from "@scripts/common"; import * as Mounting from "@scripts/input/native-fs/mounting"; + import manifest from "./_manifest.json"; //////////////////////////////////////////// // SETUP @@ -28,6 +29,7 @@ const worker = endpoint( new SharedWorker(new URL("../../../scripts/input/native-fs/worker", import.meta.url), { type: "module", + name: manifest.name, }).port, ); diff --git a/src/pages/input/opensubsonic/_applet.astro b/src/pages/input/opensubsonic/_applet.astro index 00bd39e..554baf1 100644 --- a/src/pages/input/opensubsonic/_applet.astro +++ b/src/pages/input/opensubsonic/_applet.astro @@ -22,6 +22,7 @@ import type { Track } from "@applets/core/types.d.ts"; import { register } from "@scripts/applet/common"; import { endpoint, inIframe, SharedWorker, transfer } from "@scripts/common"; + import manifest from "./_manifest.json"; //////////////////////////////////////////// // SETUP @@ -29,6 +30,7 @@ const worker = endpoint( new SharedWorker(new URL("../../../scripts/input/opensubsonic/worker", import.meta.url), { type: "module", + name: manifest.name, }).port, ); diff --git a/src/pages/input/s3/_applet.astro b/src/pages/input/s3/_applet.astro index 4f53b0d..358f3bb 100644 --- a/src/pages/input/s3/_applet.astro +++ b/src/pages/input/s3/_applet.astro @@ -42,6 +42,7 @@ import type { Track } from "@applets/core/types.d.ts"; import { register } from "@scripts/applet/common"; import { endpoint, inIframe, SharedWorker, transfer } from "@scripts/common"; + import manifest from "./_manifest.json"; //////////////////////////////////////////// // SETUP @@ -49,6 +50,7 @@ const worker = endpoint( new SharedWorker(new URL("../../../scripts/input/s3/worker", import.meta.url), { type: "module", + name: manifest.name, }).port, ); diff --git a/src/pages/output/indexed-db/_applet.astro b/src/pages/output/indexed-db/_applet.astro index e3f532b..8e356eb 100644 --- a/src/pages/output/indexed-db/_applet.astro +++ b/src/pages/output/indexed-db/_applet.astro @@ -4,6 +4,7 @@ import { register } from "@scripts/applet/common"; import { SharedWorker, endpoint, transfer } from "@scripts/common"; import { INITIAL_MANAGED_OUTPUT, outputManager } from "@scripts/output/common"; + import manifest from "./_manifest.json"; //////////////////////////////////////////// // SETUP @@ -11,6 +12,7 @@ const worker = endpoint( new SharedWorker(new URL("../../../scripts/output/indexed-db/worker", import.meta.url), { type: "module", + name: manifest.name, }).port, ); diff --git a/src/pages/output/native-fs/_applet.astro b/src/pages/output/native-fs/_applet.astro index fb39436..2b0c964 100644 --- a/src/pages/output/native-fs/_applet.astro +++ b/src/pages/output/native-fs/_applet.astro @@ -8,6 +8,7 @@ import { INITIAL_MANAGED_OUTPUT, outputManager } from "@scripts/output/common"; import { endpoint, SharedWorker, transfer } from "@scripts/common"; import { IDB_DEVICE_KEY } from "@scripts/output/native-fs/constants"; + import manifest from "./_manifest.json"; //////////////////////////////////////////// // SETUP @@ -15,6 +16,7 @@ const worker = endpoint( new SharedWorker(new URL("../../../scripts/output/native-fs/worker", import.meta.url), { type: "module", + name: manifest.name, }).port, ); diff --git a/src/pages/processor/artwork/_applet.astro b/src/pages/processor/artwork/_applet.astro index 242e555..2005996 100644 --- a/src/pages/processor/artwork/_applet.astro +++ b/src/pages/processor/artwork/_applet.astro @@ -4,6 +4,7 @@ import { register } from "@scripts/applet/common"; import { endpoint, SharedWorker } from "@scripts/common"; import { transfer } from "@scripts/common"; + import manifest from "./_manifest.json"; //////////////////////////////////////////// // SETUP @@ -11,6 +12,7 @@ const worker = endpoint( new SharedWorker(new URL("../../../scripts/processor/artwork/worker", import.meta.url), { type: "module", + name: manifest.name, }).port, ); diff --git a/src/pages/processor/metadata/_applet.astro b/src/pages/processor/metadata/_applet.astro index e5e66e1..8e480e8 100644 --- a/src/pages/processor/metadata/_applet.astro +++ b/src/pages/processor/metadata/_applet.astro @@ -2,6 +2,7 @@ import type { Actions } from "@scripts/processor/metadata/worker"; import { register } from "@scripts/applet/common"; import { endpoint, SharedWorker, transfer } from "@scripts/common"; + import manifest from "./_manifest.json"; //////////////////////////////////////////// // SETUP @@ -9,6 +10,7 @@ const worker = endpoint( new SharedWorker(new URL("../../../scripts/processor/metadata/worker", import.meta.url), { type: "module", + name: manifest.name, }).port, ); diff --git a/src/pages/processor/search/_applet.astro b/src/pages/processor/search/_applet.astro index cc8c6da..9a98022 100644 --- a/src/pages/processor/search/_applet.astro +++ b/src/pages/processor/search/_applet.astro @@ -3,6 +3,7 @@ import type { Track } from "@applets/core/types"; import { register } from "@scripts/applet/common"; import { endpoint, transfer } from "@scripts/common"; + import manifest from "./_manifest.json"; //////////////////////////////////////////// // SETUP @@ -10,6 +11,7 @@ const worker = endpoint( new SharedWorker(new URL("../../../scripts/processor/search/worker", import.meta.url), { type: "module", + name: manifest.name, }).port, ); diff --git a/src/scripts/applet/common.ts b/src/scripts/applet/common.ts index c84f676..0326130 100644 --- a/src/scripts/applet/common.ts +++ b/src/scripts/applet/common.ts @@ -261,8 +261,6 @@ export function register(): BroadcastedApplet { arguments: args, }; - console.log("📣", actionMessage); - return await new Promise((resolve) => { const actionCallback = (event: MessageEvent) => { if ( diff --git a/src/scripts/processor/artwork/worker.ts b/src/scripts/processor/artwork/worker.ts index 22dc305..86cfa02 100644 --- a/src/scripts/processor/artwork/worker.ts +++ b/src/scripts/processor/artwork/worker.ts @@ -22,7 +22,6 @@ export type Actions = typeof actions; // Actions async function artwork(request: ArtworkRequest) { - console.log("INSERT REQ", request); const art = await processRequest(request); return transfer(art); } diff --git a/src/scripts/processor/metadata/common.ts b/src/scripts/processor/metadata/common.ts index f45a320..3d987e1 100644 --- a/src/scripts/processor/metadata/common.ts +++ b/src/scripts/processor/metadata/common.ts @@ -26,8 +26,6 @@ export async function musicMetadataTags({ let meta; - console.log(urls?.get, stream, includeArtwork); - if (urls?.get.startsWith("blob:")) { const blob = await fetch(urls.get).then((r) => r.blob()); meta = await parseBlob(blob, { skipCovers: !includeArtwork });