Added the playlist generator
This commit is contained in:
@@ -2,8 +2,8 @@ use std::future::Future;
|
||||
|
||||
use crate::error::DataResult;
|
||||
use crate::types::{
|
||||
ArtistInfo, ArtistSearchResult, DiscographyEntry, LyricsResult, RecordingDetails,
|
||||
RecordingMatch, ReleaseGroupEntry, ReleaseMatch, ReleaseTrack,
|
||||
ArtistInfo, ArtistSearchResult, DiscographyEntry, LyricsResult, PopularTrack, RecordingDetails,
|
||||
RecordingMatch, ReleaseGroupEntry, ReleaseMatch, ReleaseTrack, SimilarArtist,
|
||||
};
|
||||
|
||||
/// Trait for metadata lookup backends. MusicBrainz is the default implementation;
|
||||
@@ -86,6 +86,21 @@ pub trait LyricsFetcher: Send + Sync {
|
||||
) -> impl Future<Output = DataResult<LyricsResult>> + Send;
|
||||
}
|
||||
|
||||
/// Fetches similar artists and top tracks from an external source (e.g. Last.fm).
|
||||
pub trait SimilarArtistFetcher: Send + Sync {
|
||||
fn get_similar_artists(
|
||||
&self,
|
||||
artist_name: &str,
|
||||
mbid: Option<&str>,
|
||||
) -> impl Future<Output = DataResult<Vec<SimilarArtist>>> + Send;
|
||||
|
||||
fn get_top_tracks(
|
||||
&self,
|
||||
artist_name: &str,
|
||||
mbid: Option<&str>,
|
||||
) -> impl Future<Output = DataResult<Vec<PopularTrack>>> + Send;
|
||||
}
|
||||
|
||||
/// Fetches cover art URLs for releases.
|
||||
pub trait CoverArtFetcher: Send + Sync {
|
||||
fn get_cover_art_url(&self, release_id: &str) -> Option<String>;
|
||||
|
||||
Reference in New Issue
Block a user