diff --git a/src/spotify.rs b/src/spotify.rs index 34dda3d..0a56455 100644 --- a/src/spotify.rs +++ b/src/spotify.rs @@ -14,11 +14,13 @@ use librespot::playback::player::Player; use rspotify::spotify::client::ApiError; use rspotify::spotify::client::Spotify as SpotifyAPI; use rspotify::spotify::model::album::{FullAlbum, SimplifiedAlbum}; +use rspotify::spotify::model::artist::FullArtist; use rspotify::spotify::model::page::Page; -use rspotify::spotify::model::playlist::{PlaylistTrack, SimplifiedPlaylist}; +use rspotify::spotify::model::playlist::{FullPlaylist, PlaylistTrack, SimplifiedPlaylist}; use rspotify::spotify::model::search::{ SearchAlbums, SearchArtists, SearchPlaylists, SearchTracks, }; +use rspotify::spotify::model::track::FullTrack; use failure::Error; @@ -446,6 +448,22 @@ impl Spotify { result.map(|r| r.id) } + pub fn album(&self, album_id: &str) -> Option { + self.api_with_retry(|api| api.album(album_id)) + } + + pub fn artist(&self, artist_id: &str) -> Option { + self.api_with_retry(|api| api.artist(artist_id)) + } + + pub fn playlist(&self, playlist_id: &str) -> Option { + self.api_with_retry(|api| api.playlist(playlist_id, None, None)) + } + + pub fn track(&self, track_id: &str) -> Option { + self.api_with_retry(|api| api.track(track_id)) + } + pub fn search_track(&self, query: &str, limit: u32, offset: u32) -> Option { self.api_with_retry(|api| api.search_track(query, limit, offset, None)) }