A music player that connects to your cloud/distributed storage. diffuse.sh
Something went wrong. Try again.
2.2 kB · 76 lines
JavaScript
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677import foundation from "~/common/foundation.js";import { effect } from "~/common/signal.js";
import { NAME as AUDIO_METADATA_NAME } from "~/components/artwork/audio-metadata/element.js";import { NAME as INPUT_NAME } from "~/components/artwork/input/element.js";import { NAME as LAST_FM_NAME } from "~/components/artwork/last.fm/element.js";import { NAME as MUSICBRAINZ_NAME } from "~/components/artwork/musicbrainz/element.js";
/** * @import ArtworkConfigurator from "~/components/configurator/artwork/element.js" * @import InputOrchestrator from "~/components/configurator/input/element.js" */
/** * Setup DOM elements when needed. */effect(() => { const artwork = foundation.signals.configurator.artwork(); const input = foundation.signals.configurator.input(); if (!artwork || !input) return;
inputArtwork(artwork, input); audioMetadata(artwork, input); musicBrainz(artwork); lastFm(artwork);});
////////////////////////////////////////////// INPUT////////////////////////////////////////////
/** * @param {ArtworkConfigurator} artwork * @param {InputOrchestrator} input */export function inputArtwork(artwork, input) { const el = document.createElement(INPUT_NAME); el.setAttribute("input-selector", input.selector); artwork.prepend(el);}
////////////////////////////////////////////// AUDIO METADATA////////////////////////////////////////////
/** * @param {ArtworkConfigurator} artwork * @param {InputOrchestrator} input */export function audioMetadata(artwork, input) { const el = document.createElement(AUDIO_METADATA_NAME); el.setAttribute("input-selector", input.selector); artwork.append(el);}
////////////////////////////////////////////// LAST.FM////////////////////////////////////////////
/** * @param {ArtworkConfigurator} artwork */export function lastFm(artwork) { artwork.append(document.createElement(LAST_FM_NAME));}
////////////////////////////////////////////// MUSICBRAINZ////////////////////////////////////////////
/** * @param {ArtworkConfigurator} artwork */export function musicBrainz(artwork) { artwork.append(document.createElement(MUSICBRAINZ_NAME));}