modifyng search_by_artist_and_album

This commit is contained in:
vincent 2020-11-02 21:13:27 +01:00
parent 511a101c2c
commit 6857653cdb

View file

@ -138,31 +138,30 @@ class SubidyLibraryProvider(backend.LibraryProvider):
return SearchResult(tracks=[track]) return SearchResult(tracks=[track])
def search_by_artist_and_album(self, artist_name, album_name): def search_by_artist_and_album(self, artist_name, album_name):
artists = self.subsonic_api.get_raw_artists() artists = self.subsonic_api.find_raw(artist_name).get("artist")
artist = next( if artists is None:
item for item in artists if artist_name in item.get("name")
)
albums = self.subsonic_api.get_raw_albums(artist.get("id"))
album = next(item for item in albums if album_name in item.get("title"))
return SearchResult(
tracks=self.subsonic_api.get_songs_as_tracks(album.get("id"))
)
def search_by_artist(self, artist_search):
result = self.subsonic_api.find_raw(artist_search)
if result is None:
return None return None
tracks = [] tracks = []
for artist in result.get("artist"): for artist in artists:
albums = self.subsonic_api.get_raw_albums(artist.get("id")) for album in self.subsonic_api.get_raw_albums(artist.get("id")):
for album in albums: if album_name in album.get("name"):
tracks.extend( tracks.extend(
self.subsonic_api.get_songs_as_tracks(album.get("id")) self.subsonic_api.get_songs_as_tracks(album.get("id"))
) )
return SearchResult( return SearchResult(tracks=tracks)
uri=uri.get_search_uri(artist_search), tracks=tracks
def search_by_artist(self, artist_name):
result = self.subsonic_api.find_raw(artist_name)
if result is None:
return None
tracks = []
for artist in result.get("artist"):
tracks.extend(
self.subsonic_api.get_artist_as_songs_as_tracks_iter(
artist.get("id")
) )
)
return SearchResult(uri=uri.get_search_uri(artist_name), tracks=tracks)
def get_distinct(self, field, query): def get_distinct(self, field, query):
search_result = self.search(query) search_result = self.search(query)