From ad8ba08a03f07cb83dbca7502cd1263227152ce3 Mon Sep 17 00:00:00 2001 From: Honey Date: Tue, 28 Apr 2026 01:08:32 +0200 Subject: [PATCH] fix: itunesProxy use 2-arg https.get matching existing working pattern, smarter fallback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - itunesProxy: drop 3-arg form (url, options, cb) — use 2-arg (url, cb) like lookupItunesTrackMeta - _iGet: if proxy returns {results:[]} trust it (iTunes said no results); only fall back to direct Apple if proxy gave no response at all Co-Authored-By: Claude Sonnet 4.6 --- backend/novasonic-server.js | 2 +- src/api.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/novasonic-server.js b/backend/novasonic-server.js index 5b42721..e607278 100644 --- a/backend/novasonic-server.js +++ b/backend/novasonic-server.js @@ -488,7 +488,7 @@ function _spTrackItem(t, defaultAlbum, defaultArt, defaultAlbumArtist) { async function itunesProxy(url) { return new Promise((resolve, reject) => { - https.get(url, { headers: { 'User-Agent': 'iTunes/12.0' } }, res => { + https.get(url, res => { let d = ''; res.on('data', c => d += c); res.on('end', () => { try { resolve(JSON.parse(d)); } catch { resolve({}); } }); diff --git a/src/api.js b/src/api.js index 9be995b..49c801d 100644 --- a/src/api.js +++ b/src/api.js @@ -58,7 +58,8 @@ async function _iGet(proxyPath, directUrl) { const base = S.cfg.backendUrl; if (base) { const d = await _fetch(base + proxyPath); - if (d && Object.keys(d).length) return d; + if (d?.results?.length) return d; // proxy returned real results + if (d?.results !== undefined) return d; // proxy responded but iTunes had no results (don't double-fetch) } return directUrl ? _fetch(directUrl) : {}; }