A music player that connects to your cloud/distributed storage.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4 76 lines 2.2 kB view raw
1import foundation from "~/common/foundation.js"; 2import { effect } from "~/common/signal.js"; 3 4import { NAME as AUDIO_METADATA_NAME } from "~/components/artwork/audio-metadata/element.js"; 5import { NAME as INPUT_NAME } from "~/components/artwork/input/element.js"; 6import { NAME as LAST_FM_NAME } from "~/components/artwork/last.fm/element.js"; 7import { NAME as MUSICBRAINZ_NAME } from "~/components/artwork/musicbrainz/element.js"; 8 9/** 10 * @import ArtworkConfigurator from "~/components/configurator/artwork/element.js" 11 * @import InputOrchestrator from "~/components/configurator/input/element.js" 12 */ 13 14/** 15 * Setup DOM elements when needed. 16 */ 17effect(() => { 18 const artwork = foundation.signals.configurator.artwork(); 19 const input = foundation.signals.configurator.input(); 20 if (!artwork || !input) return; 21 22 inputArtwork(artwork, input); 23 audioMetadata(artwork, input); 24 musicBrainz(artwork); 25 lastFm(artwork); 26}); 27 28//////////////////////////////////////////// 29// INPUT 30//////////////////////////////////////////// 31 32/** 33 * @param {ArtworkConfigurator} artwork 34 * @param {InputOrchestrator} input 35 */ 36export function inputArtwork(artwork, input) { 37 const el = document.createElement(INPUT_NAME); 38 el.setAttribute("input-selector", input.selector); 39 artwork.prepend(el); 40} 41 42//////////////////////////////////////////// 43// AUDIO METADATA 44//////////////////////////////////////////// 45 46/** 47 * @param {ArtworkConfigurator} artwork 48 * @param {InputOrchestrator} input 49 */ 50export function audioMetadata(artwork, input) { 51 const el = document.createElement(AUDIO_METADATA_NAME); 52 el.setAttribute("input-selector", input.selector); 53 artwork.append(el); 54} 55 56//////////////////////////////////////////// 57// LAST.FM 58//////////////////////////////////////////// 59 60/** 61 * @param {ArtworkConfigurator} artwork 62 */ 63export function lastFm(artwork) { 64 artwork.append(document.createElement(LAST_FM_NAME)); 65} 66 67//////////////////////////////////////////// 68// MUSICBRAINZ 69//////////////////////////////////////////// 70 71/** 72 * @param {ArtworkConfigurator} artwork 73 */ 74export function musicBrainz(artwork) { 75 artwork.append(document.createElement(MUSICBRAINZ_NAME)); 76}