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

Configure Feed

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

chore: _data facets as json + determine defaults

+131 -83
+94
src/_data/facets.json
··· 1 + [ 2 + { 3 + "url": "facets/playback/auto-queue/feature/index.html", 4 + "title": "Automatic Queue", 5 + "kind": "prelude", 6 + "category": "Playback", 7 + "featured": true, 8 + "desc": "Automatically put tracks into the queue. **Always on.**" 9 + }, 10 + { 11 + "url": "facets/playback/auto-queue/index.html", 12 + "title": "Automatic Queue", 13 + "category": "Playback", 14 + "featured": true, 15 + "desc": "Automatically put tracks into the queue when this interface is opened. Also allows for controlling shuffle, repeat, search, sorting and playlist selection." 16 + }, 17 + { 18 + "url": "themes/blur/artwork-controller/facet/index.html", 19 + "title": "Blur / Artwork controller", 20 + "category": "Playback", 21 + "featured": true, 22 + "desc": "Audio playback controller with an artwork display. Play audio from the queue, add tracks to your favourites, control the queue and volume." 23 + }, 24 + { 25 + "url": "facets/data/export-import/index.html", 26 + "title": "Export & Import", 27 + "category": "Data", 28 + "desc": "Export all data as a JSON snapshot, or restore from a previously exported file." 29 + }, 30 + { 31 + "url": "facets/data/output-bundle/index.html", 32 + "title": "Default Output Bundle", 33 + "kind": "prelude", 34 + "category": "Data", 35 + "featured": true, 36 + "desc": "The default setup for user-data storage output. Supports these services: AT Protocol and S3-compatible storage. For both of these a custom local-first syncing algorithm is used." 37 + }, 38 + { 39 + "url": "facets/data/process-tracks/index.html", 40 + "title": "Process Tracks", 41 + "kind": "prelude", 42 + "category": "Data", 43 + "featured": true, 44 + "desc": "Process all your audio inputs automatically when opening any interface facet." 45 + }, 46 + { 47 + "url": "facets/misc/scrobble/index.html", 48 + "title": "Scrobble", 49 + "kind": "prelude", 50 + "category": "Misc", 51 + "featured": true, 52 + "desc": "Enable scrobbling, keep track of what you're listening to." 53 + }, 54 + { 55 + "url": "facets/misc/scrobble/last.fm/index.html", 56 + "title": "Scrobble / Last.fm", 57 + "category": "Misc", 58 + "featured": true, 59 + "desc": "Enable Last.fm scrobbling." 60 + }, 61 + { 62 + "url": "facets/misc/split-view/index.html", 63 + "title": "Split View", 64 + "category": "Misc", 65 + "desc": "Arrange multiple facets side-by-side in a resizable split-panel layout." 66 + }, 67 + { 68 + "url": "facets/data/v3-import/index.html", 69 + "title": "V3.x Import", 70 + "category": "Data", 71 + "desc": "Import data from Diffuse v3." 72 + }, 73 + { 74 + "url": "themes/webamp/browser/facet/index.html", 75 + "title": "Webamp / Browser", 76 + "category": "Browsing", 77 + "featured": true, 78 + "desc": "Collection browser and search." 79 + }, 80 + { 81 + "url": "themes/webamp/configurators/input/facet/index.html", 82 + "title": "Webamp / Input Configurator", 83 + "category": "Data", 84 + "featured": true, 85 + "desc": "Add your audio sources." 86 + }, 87 + { 88 + "url": "themes/webamp/configurators/output/facet/index.html", 89 + "title": "Webamp / Output Configurator", 90 + "category": "Data", 91 + "featured": true, 92 + "desc": "Manage your data storage." 93 + } 94 + ]
-72
src/_data/facets.yaml
··· 1 - - url: "facets/playback/auto-queue/feature/index.html" 2 - title: "Automatic Queue" 3 - kind: prelude 4 - category: Playback 5 - featured: true 6 - desc: > 7 - Automatically put tracks into the queue. **Always on.** 8 - - url: "facets/playback/auto-queue/index.html" 9 - title: "Automatic Queue" 10 - category: Playback 11 - featured: true 12 - desc: > 13 - Automatically put tracks into the queue when this interface is opened. Also allows for controlling shuffle, repeat, search, sorting and playlist selection. 14 - - url: "themes/blur/artwork-controller/facet/index.html" 15 - title: "Blur / Artwork controller" 16 - category: Playback 17 - featured: true 18 - desc: > 19 - Audio playback controller with an artwork display. Play audio from the queue, add tracks to your favourites, control the queue and volume. 20 - - url: "facets/data/export-import/index.html" 21 - title: "Export & Import" 22 - category: Data 23 - desc: > 24 - Export all data as a JSON snapshot, or restore from a previously exported file. 25 - - url: "facets/data/process-tracks/index.html" 26 - title: "Process Tracks" 27 - kind: prelude 28 - category: Data 29 - featured: true 30 - desc: > 31 - Process all your audio inputs automatically when opening any interface facet. 32 - - url: "facets/misc/scrobble/index.html" 33 - title: "Scrobble" 34 - kind: prelude 35 - category: Misc 36 - featured: true 37 - desc: > 38 - Enable scrobbling, keep track of what you're listening to. 39 - - url: "facets/misc/scrobble/last.fm/index.html" 40 - title: "Scrobble / Last.fm" 41 - category: Misc 42 - featured: true 43 - desc: > 44 - Enable Last.fm scrobbling. 45 - - url: "facets/misc/split-view/index.html" 46 - title: "Split View" 47 - category: "Misc" 48 - desc: > 49 - Arrange multiple facets side-by-side in a resizable split-panel layout. 50 - - url: "facets/data/v3-import/index.html" 51 - title: "V3.x Import" 52 - category: Data 53 - desc: > 54 - Import data from Diffuse v3. 55 - - url: "themes/webamp/browser/facet/index.html" 56 - title: "Webamp / Browser" 57 - category: Browsing 58 - featured: true 59 - desc: > 60 - Collection browser and search. 61 - - url: "themes/webamp/configurators/input/facet/index.html" 62 - title: "Webamp / Input Configurator" 63 - category: Data 64 - featured: true 65 - desc: > 66 - Add your audio sources. 67 - - url: "themes/webamp/configurators/output/facet/index.html" 68 - title: "Webamp / Output Configurator" 69 - category: Data 70 - featured: true 71 - desc: > 72 - Manage your data storage.
+37 -11
src/common/facets/constants.js
··· 1 + import facets from "../../_data/facets.json" with { 2 + type: "json", 3 + }; 4 + 1 5 /** 2 6 * @import {Facet} from "~/definitions/types.d.ts" 3 7 */ 8 + 9 + export const TYPE = /** @type {const} */ ("sh.diffuse.output.facet"); 4 10 5 11 /** @type {Facet[]} */ 6 - export const STARTING_SET = [ 7 - { 8 - $type: "sh.diffuse.output.facet", 9 - id: "default/process-tracks", 10 - kind: "prelude", 11 - name: "Process Tracks", 12 - uri: "diffuse://facets/data/process-tracks/index.html", 13 - description: 14 - "Process all your audio inputs automatically when opening any interface facet.", 15 - }, 16 - ]; 12 + export const STARTING_SET = facets.flatMap((facet) => { 13 + const properties = { 14 + $type: TYPE, 15 + description: facet.desc, 16 + kind: facet.kind === "prelude" 17 + ? /** @type {const} */ ("prelude") 18 + : /** @type {const} */ ("interactive"), 19 + name: facet.title, 20 + uri: "diffuse://" + facet.url, 21 + }; 22 + 23 + switch (facet.url) { 24 + case "facets/data/input-bundle/index.html": 25 + return [{ 26 + ...properties, 27 + id: "defaults/input-bundle", 28 + }]; 29 + case "facets/data/output-bundle/index.html": 30 + return [{ 31 + ...properties, 32 + id: "defaults/output-bundle", 33 + }]; 34 + case "facets/data/process-tracks/index.html": 35 + return [{ 36 + ...properties, 37 + id: "defaults/process-tracks", 38 + }]; 39 + default: 40 + return []; 41 + } 42 + });