From 8a3dd7a5838c2aff487dd7ae68f4f32eae69a525 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Wed, 2 Sep 2026 14:23:16 +0200 Subject: [PATCH] feat: loading local songs, basic association association used to load existing playlists with local files --- web/package.json | 1 + web/src/components/AddSong.vue | 7 +- web/src/composables/AssociationView.vue | 91 +++++++++++++++++++ web/src/composables/DiskLoader.vue | 40 +++++++- web/src/composables/SearchView.vue | 20 ++-- web/src/composables/associationManager.ts | 48 ++++++++++ web/src/composables/importTypePicker.ts | 8 +- web/src/composables/searchManager.ts | 9 ++ web/src/scss/components/search.scss | 15 +-- web/src/ts/dtype/playlist.d.ts | 3 +- web/src/ts/player/index.ts | 8 +- web/src/ts/player/playlists/add.ts | 13 +-- web/src/ts/player/playlists/loader.ts | 49 +++++++++- web/src/ts/player/plugins/interface.d.ts | 31 +++++-- .../ts/player/plugins/local/association.ts | 57 ++++++++++++ web/src/ts/player/plugins/local/index.ts | 24 +++-- web/src/ts/player/plugins/local/loader.ts | 77 ++++++++++++++++ web/src/ts/player/plugins/musickit/index.ts | 2 +- .../player/plugins/musickit/search/dtype.d.ts | 7 ++ .../player/plugins/musickit/search/index.ts | 12 +-- .../plugins/musickit/search/playlists.ts | 41 +++++++-- .../player/plugins/musickit/search/songs.ts | 43 ++------- web/src/ts/player/status-tracking.ts | 4 +- web/src/ts/util/search.ts | 45 +++++++++ 24 files changed, 542 insertions(+), 113 deletions(-) create mode 100644 web/src/composables/AssociationView.vue create mode 100644 web/src/composables/associationManager.ts create mode 100644 web/src/ts/player/plugins/local/association.ts create mode 100644 web/src/ts/util/search.ts diff --git a/web/package.json b/web/package.json index c36c46c..0a90bb4 100644 --- a/web/package.json +++ b/web/package.json @@ -16,6 +16,7 @@ "@fortawesome/free-regular-svg-icons": "^7.3.1", "@globalhive/vuejs-tour": "^3.0.1", "@kyvg/vue3-notification": "^3.4.2", + "music-metadata": "^11.15.0", "nprogress": "^0.2.0", "pinia": "^4.0.2", "vue": "^3.5.40", diff --git a/web/src/components/AddSong.vue b/web/src/components/AddSong.vue index a75b25b..6759006 100644 --- a/web/src/components/AddSong.vue +++ b/web/src/components/AddSong.vue @@ -1,4 +1,5 @@ + + diff --git a/web/src/composables/DiskLoader.vue b/web/src/composables/DiskLoader.vue index 9272c9b..b639e9e 100644 --- a/web/src/composables/DiskLoader.vue +++ b/web/src/composables/DiskLoader.vue @@ -1,14 +1,50 @@ diff --git a/web/src/composables/SearchView.vue b/web/src/composables/SearchView.vue index 3963ea7..a1c0944 100644 --- a/web/src/composables/SearchView.vue +++ b/web/src/composables/SearchView.vue @@ -1,19 +1,15 @@