From 030b318a9cd80dcef1e5753838bb36bd42423ac7 Mon Sep 17 00:00:00 2001 From: Jakob Date: Sun, 1 Oct 2017 04:15:19 +0200 Subject: [PATCH] fix crash for artists without tracks (closes #103) (#256) --- metadata/src/lib.rs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/metadata/src/lib.rs b/metadata/src/lib.rs index c6f5a5b..3ad5c4e 100644 --- a/metadata/src/lib.rs +++ b/metadata/src/lib.rs @@ -194,15 +194,19 @@ impl Metadata for Artist { fn parse(msg: &Self::Message, session: &Session) -> Self { let country = session.country(); - let top_tracks = msg.get_top_track() + let top_tracks: Vec = match msg.get_top_track() .iter() - .find(|tt| !tt.has_country() || countrylist_contains(tt.get_country(), &country)) - .unwrap() - .get_track() - .iter() - .filter(|track| track.has_gid()) - .map(|track| SpotifyId::from_raw(track.get_gid())) - .collect::>(); + .find(|tt| !tt.has_country() || countrylist_contains(tt.get_country(), &country)) { + Some(tracks) => { + tracks.get_track() + .iter() + .filter(|track| track.has_gid()) + .map(|track| SpotifyId::from_raw(track.get_gid())) + .collect::>() + }, + None => Vec::new() + }; + Artist { id: SpotifyId::from_raw(msg.get_gid()),