remove artist song list fetch post-processing

- the post-processing sort breaks the correct order returned by the API
This commit is contained in:
jeffvli
2025-12-14 04:26:39 -08:00
parent 1bc1f619ff
commit 1e8e1789cd
+9
View File
@@ -306,7 +306,11 @@ export const sortSongsByFetchedOrder = (
} }
// Sort each group by discNumber and trackNumber // Sort each group by discNumber and trackNumber
// Skip sorting for ALBUM_ARTIST as songs are already sorted by the API
for (const [fetchedId, groupSongs] of songsByFetchedId.entries()) { for (const [fetchedId, groupSongs] of songsByFetchedId.entries()) {
if (itemType === LibraryItem.ALBUM_ARTIST) {
continue;
}
const sortedGroup = orderBy(groupSongs, ['discNumber', 'trackNumber'], ['asc', 'asc']); const sortedGroup = orderBy(groupSongs, ['discNumber', 'trackNumber'], ['asc', 'asc']);
songsByFetchedId.set(fetchedId, sortedGroup); songsByFetchedId.set(fetchedId, sortedGroup);
} }
@@ -324,6 +328,10 @@ export const sortSongsByFetchedOrder = (
const matchedIds = new Set(result.map((s) => s.id)); const matchedIds = new Set(result.map((s) => s.id));
const unmatchedSongs = songs.filter((s) => !matchedIds.has(s.id)); const unmatchedSongs = songs.filter((s) => !matchedIds.has(s.id));
if (unmatchedSongs.length > 0) { if (unmatchedSongs.length > 0) {
// Skip sorting for ALBUM_ARTIST as songs are already sorted by the API
if (itemType === LibraryItem.ALBUM_ARTIST) {
result.push(...unmatchedSongs);
} else {
const sortedUnmatched = orderBy( const sortedUnmatched = orderBy(
unmatchedSongs, unmatchedSongs,
['discNumber', 'trackNumber'], ['discNumber', 'trackNumber'],
@@ -331,6 +339,7 @@ export const sortSongsByFetchedOrder = (
); );
result.push(...sortedUnmatched); result.push(...sortedUnmatched);
} }
}
return result; return result;
}; };