From 64232a39fef44264c0088ecbb251503013dec103 Mon Sep 17 00:00:00 2001 From: Honey Date: Sun, 24 May 2026 12:24:47 +0200 Subject: [PATCH] feat: accept & and / as artist separators in metadata editor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _fmtArtists and _normalizeArtists now split on & and / in addition to • · ; , — so "Arriez & King Dif" typed in the field normalizes correctly. Co-Authored-By: Claude Sonnet 4.6 --- backend/novasonic-server.js | 2 +- src/ui.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/novasonic-server.js b/backend/novasonic-server.js index d519b2c..62fa3e8 100644 --- a/backend/novasonic-server.js +++ b/backend/novasonic-server.js @@ -244,7 +244,7 @@ app.post('/api/spotify/resolve', async (req, res) => { // and rejoins with the canonical sep ("; " for track artist, ", " for album artist). function _normalizeArtists(str, sep) { if (!str) return str; - return str.split(/\s*[•·;,]\s*/).map(s => s.trim()).filter(Boolean).join(sep); + return str.split(/\s*[•·;,&/]\s*/).map(s => s.trim()).filter(Boolean).join(sep); } // Strip " - Topic" suffix YouTube Music appends to artist channel names diff --git a/src/ui.js b/src/ui.js index 8f426d1..080ad29 100644 --- a/src/ui.js +++ b/src/ui.js @@ -240,7 +240,7 @@ document.addEventListener('click', e => { // Track artist → "Serph; Zun" | Album artist → "Serph, Zun" function _fmtArtists(str, sep) { if (!str) return ''; - return str.split(/\s*[•·;,]\s*/).map(s => s.trim()).filter(Boolean).join(sep); + return str.split(/\s*[•·;,&/]\s*/).map(s => s.trim()).filter(Boolean).join(sep); } function _renderInfoModal(s) {