From 49148711e004cbe57f04415b28910cd964078154 Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Wed, 8 Feb 2023 16:51:50 +0100 Subject: [PATCH] fix: ignore extraction error when fetching album playlist --- src/client/music_playlist.rs | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/client/music_playlist.rs b/src/client/music_playlist.rs index ca3c6cf..107a0b8 100644 --- a/src/client/music_playlist.rs +++ b/src/client/music_playlist.rs @@ -75,23 +75,27 @@ impl RustyPipeQuery { .collect::>(); if !to_replace.is_empty() { - let playlist = self.music_playlist(playlist_id).await?; - - for (i, title) in to_replace { - let found_track = playlist.tracks.items.iter().find_map(|track| { - if track.name == title && !track.is_video { - Some((track.id.to_owned(), track.duration)) - } else { - None + match self.music_playlist(playlist_id).await { + Ok(playlist) => { + for (i, title) in to_replace { + let found_track = playlist.tracks.items.iter().find_map(|track| { + if track.name == title && !track.is_video { + Some((track.id.to_owned(), track.duration)) + } else { + None + } + }); + if let Some((track_id, duration)) = found_track { + album.tracks[i].id = track_id; + if let Some(duration) = duration { + album.tracks[i].duration = Some(duration); + } + album.tracks[i].is_video = false; + } } - }); - if let Some((track_id, duration)) = found_track { - album.tracks[i].id = track_id; - if let Some(duration) = duration { - album.tracks[i].duration = Some(duration); - } - album.tracks[i].is_video = false; } + Err(Error::Extraction(_)) => {} + Err(e) => return Err(e), } } }