fix: filter out duplicate audiotracks

This commit is contained in:
Adrian Castro
2024-02-23 16:08:36 +01:00
parent 7c3fcfcd4e
commit b6782c4493

View File

@@ -113,17 +113,26 @@ export const ScraperProcess = ({ data }: ScraperProcessProps) => {
}; };
if (tracks?.audio.length) { if (tracks?.audio.length) {
const audioTracks: AudioTrack[] = tracks.audio.map((track) => ({ const audioTracks: AudioTrack[] = tracks.audio
.map((track) => ({
uri: constructFullUrl( uri: constructFullUrl(
(streamResult.stream as HlsBasedStream).playlist, (streamResult.stream as HlsBasedStream).playlist,
track.uri, track.uri,
), ),
name: (track.properties[0]?.attributes.name as string) ?? "Unknown", name:
(track.properties[0]?.attributes.name as string) ?? "Unknown",
language: language:
(track.properties[0]?.attributes.language as string) ?? "Unknown", (track.properties[0]?.attributes.language as string) ??
"Unknown",
active: active:
(track.properties[0]?.attributes.default as boolean) ?? false, (track.properties[0]?.attributes.default as boolean) ?? false,
})); }))
.filter((track, index, self) => {
const trackUriSet = new Set(self.map((t) => t.uri));
return (
!trackUriSet.has(track.uri) || trackUriSet.size === index + 1
);
});
setAudioTracks(audioTracks); setAudioTracks(audioTracks);
} }
} }