mirror of
https://github.com/austinried/subtracks.git
synced 2026-11-10 23:21:59 +01:00
OpenSubsonic servers return a per-song <genres> array that was dropped, leaving every song with only its first (or joined) legacy genre. Parse it and store the ordered list in a song_genres table, keeping the single genre column as the fallback for base Subsonic servers. Album genres are derived by unioning the album's song genres, falling back to the single song genre, so album-level genre never trusts the per-server album genres[] behaviour. Schema 21 -> 22, with parser, sync, unit and integration coverage.