From 24b9d23c9b565f3cc389160c5104e2b537ee4a2a Mon Sep 17 00:00:00 2001 From: sleepyfran Date: Mon, 23 Dec 2024 23:36:59 +0100 Subject: [PATCH] Fix duplicated tracks --- .../media-provider/src/sync/file-based-sync.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/workers/media-provider/src/sync/file-based-sync.ts b/packages/workers/media-provider/src/sync/file-based-sync.ts index 2b9e95b..0b99a36 100644 --- a/packages/workers/media-provider/src/sync/file-based-sync.ts +++ b/packages/workers/media-provider/src/sync/file-based-sync.ts @@ -345,6 +345,17 @@ const tryRetrieveOrCreateAlbum = ( fileMetadata, ); + const includesTrack = existingAlbum.value.tracks.some( + (existingTrack) => + existingTrack.name === track.name && + existingTrack.trackNumber === track.trackNumber, + ); + const tracks = includesTrack + ? existingAlbum.value.tracks + : [...existingAlbum.value.tracks, track]; + + tracks.sort((a, b) => a.trackNumber - b.trackNumber); + const genres = Genres.addTo( existingAlbum.value.genres, Genres.flatten(trackMetadata.genre ?? []), @@ -353,7 +364,7 @@ const tryRetrieveOrCreateAlbum = ( return { ...existingAlbum.value, genres, - tracks: [...existingAlbum.value.tracks, track], + tracks, }; });