summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lastfm/api_types.rs2
-rw-r--r--src/lastfm/mod.rs3
2 files changed, 3 insertions, 2 deletions
diff --git a/src/lastfm/api_types.rs b/src/lastfm/api_types.rs
index 30d7114..a7c3712 100644
--- a/src/lastfm/api_types.rs
+++ b/src/lastfm/api_types.rs
@@ -23,7 +23,7 @@ pub struct track {
pub artist: track_artist,
pub name: String,
pub album: track_album,
- pub date: track_date,
+ pub date: Option<track_date>,
}
#[derive(Deserialize)]
diff --git a/src/lastfm/mod.rs b/src/lastfm/mod.rs
index cb0afaf..b510eb3 100644
--- a/src/lastfm/mod.rs
+++ b/src/lastfm/mod.rs
@@ -69,12 +69,13 @@ impl<'a> Tracks<'a> {
let data: api_types::recent_tracks = res.json()?;
self.buf = data.recenttracks.track
.iter()
+ .filter(|t| { t.date.is_some() })
.map(|t| {
Ok(Track {
artist: t.artist.text.clone(),
album: t.album.text.clone(),
name: t.name.clone(),
- timestamp: t.date.uts.parse()?,
+ timestamp: t.date.as_ref().unwrap().uts.parse()?,
})
})
.collect::<Result<Vec<Track>>>()?;