Added artist, album, track as possible search combination.

This commit is contained in:
Frederick 2016-09-22 22:26:57 +02:00
parent 6103fd1f27
commit 8ffa9b0e09
2 changed files with 8 additions and 1 deletions

View file

@ -4,7 +4,7 @@ import os
from mopidy import ext, config
__version__ = '0.2.0'
__version__ = '0.2.1'
class SubidyExtension(ext.Extension):

View file

@ -74,6 +74,11 @@ class SubidyLibraryProvider(backend.LibraryProvider):
return SearchResult(tracks=[song])
return None
def search_by_artist_album_and_track(self, artist_name, album_name, track_name):
tracks = self.search_by_artist_and_album(artist_name, album_name)
track = next(item for item in tracks.tracks if track_name in item.name)
return SearchResult(tracks=[track])
def search_by_artist_and_album(self, artist_name, album_name):
artists = self.subsonic_api.get_raw_artists()
artist = next(item for item in artists if artist_name in item.get('name'))
@ -95,6 +100,8 @@ class SubidyLibraryProvider(backend.LibraryProvider):
return [artist.name for artist in search_result.artists]
def search(self, query=None, uris=None, exact=False):
if 'artist' in query and 'album' in query and 'track_name' in query:
return self.search_by_artist_album_and_track(query.get('artist')[0], query.get('album')[0], query.get('track_name')[0])
if 'artist' in query and 'album' in query:
return self.search_by_artist_and_album(query.get('artist')[0], query.get('album')[0])
if 'artist' in query: