From 9821334cc8824baabdbdda1a903c56e73d938f21 Mon Sep 17 00:00:00 2001 From: Honey Date: Wed, 27 May 2026 17:40:14 +0200 Subject: [PATCH] fix: split multi-artist string before iTunes search query in lookupItunesTrackMeta --- backend/lib/metadata.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/lib/metadata.js b/backend/lib/metadata.js index c86e4d9..cbeb5e5 100644 --- a/backend/lib/metadata.js +++ b/backend/lib/metadata.js @@ -92,8 +92,9 @@ async function lookupItunesTrackMeta(artist, title) { // e.g. "don't rush - slowed" → search "don't rush" so iTunes finds the single const baseTitle = title.replace(/\s*[-–]\s*\S[^-]*$/, '').trim() || title; const searchTitle = baseTitle !== title ? baseTitle : title; + const searchArtist = artist.split(/[;,&]/)[0].trim(); const fetchItunes = (country) => new Promise((resolve, reject) => { - const url = `https://itunes.apple.com/search?term=${encodeURIComponent(artist + ' ' + searchTitle)}&media=music&entity=musicTrack&limit=10&country=${country}&explicit=Yes`; + const url = `https://itunes.apple.com/search?term=${encodeURIComponent(searchArtist + ' ' + searchTitle)}&media=music&entity=musicTrack&limit=10&country=${country}&explicit=Yes`; https.get(url, res => { let d = ''; res.on('data', c => d += c); res.on('end', () => { try { resolve(JSON.parse(d).results || []); } catch { reject(new Error('parse')); } });