mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-18 08:36:13 +00:00
feat: add Amazon Music source classification and fix ETag caching
- Recognize Amazon Music in learned sources (classifyAsAmazon) and AddSource dispatch, using CredentialTypeToken (cs1) not cs3 - Exclude Amazon from default sources: an empty-credential Amazon entry triggers the speaker's AmazonController to fail JSON parsing with MUSIC_SERVICE_ACCOUNT_LOGIN_FAILED; Amazon must only appear once a real OAuth token is present - Merge missing defaults into stored sources at request time so devices with older Sources.xml still receive all current defaults - Fix source providers ETag: was time.Now().UnixMilli() (always new), now a content hash so If-None-Match/304 works correctly - Include default sources fingerprint in GetETagForAccount so adding a new default invalidates cached /full responses on speakers - Refactor createLearnedSource into classifyLearnedSource + classifyAsX helpers to reduce cyclomatic complexity below linter limit - Add regression test for two-device scenario matching production setup Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
c8f280f9d4
commit
5fbad7d315
@@ -45,6 +45,8 @@ Authorization: Bearer {{token}}
|
||||
|
||||
var sources = account.getElementsByTagName("sources")[0];
|
||||
client.assert(sources !== null, "Missing 'sources' element");
|
||||
client.assert(sources.getElementsByTagName("source").length > 0, "No 'source' elements found in account sources");
|
||||
var sourceCount = sources.getElementsByTagName("source").length;
|
||||
client.assert(sourceCount > 0, "No 'source' elements found in account sources");
|
||||
client.assert(sourceCount === 6, "Expected 6 sources (AUX, INTERNET_RADIO, LOCAL_INTERNET_RADIO, TUNEIN, RADIO_BROWSER, Spotify) but got " + sourceCount);
|
||||
});
|
||||
%}
|
||||
|
||||
Reference in New Issue
Block a user