Fix: Re-request album tracks if it has >50 tracks

Fixes #926
This commit is contained in:
Henrik Friedrichsen
2022-09-12 23:29:12 +02:00
parent f4ef7e1b56
commit c1f0c5409c

View File

@@ -27,11 +27,12 @@ pub struct Album {
pub url: Option<String>, pub url: Option<String>,
pub tracks: Option<Vec<Track>>, pub tracks: Option<Vec<Track>>,
pub added_at: Option<DateTime<Utc>>, pub added_at: Option<DateTime<Utc>>,
total_tracks: Option<usize>,
} }
impl Album { impl Album {
pub fn load_all_tracks(&mut self, spotify: Spotify) { pub fn load_all_tracks(&mut self, spotify: Spotify) {
if self.tracks.is_some() { if self.tracks.is_some() && self.tracks.as_ref().map(|t| t.len()) == self.total_tracks {
return; return;
} }
@@ -61,7 +62,8 @@ impl Album {
} }
} }
self.tracks = Some(collected_tracks) self.total_tracks = Some(collected_tracks.len());
self.tracks = Some(collected_tracks);
} }
} }
} }
@@ -89,6 +91,7 @@ impl From<&SimplifiedAlbum> for Album {
url: sa.id.as_ref().map(|id| id.url()), url: sa.id.as_ref().map(|id| id.url()),
tracks: None, tracks: None,
added_at: None, added_at: None,
total_tracks: None,
} }
} }
} }
@@ -117,6 +120,7 @@ impl From<&FullAlbum> for Album {
url: Some(fa.id.uri()), url: Some(fa.id.uri()),
tracks, tracks,
added_at: None, added_at: None,
total_tracks: Some(fa.tracks.total as usize),
} }
} }
} }