From 8ffa9b0e09dee412163c6bf0871259be4d7ed243 Mon Sep 17 00:00:00 2001 From: Frederick Date: Thu, 22 Sep 2016 22:26:57 +0200 Subject: [PATCH] Added artist, album, track as possible search combination. --- mopidy_subidy/__init__.py | 2 +- mopidy_subidy/library.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/mopidy_subidy/__init__.py b/mopidy_subidy/__init__.py index 1ca572f..bf3e63a 100644 --- a/mopidy_subidy/__init__.py +++ b/mopidy_subidy/__init__.py @@ -4,7 +4,7 @@ import os from mopidy import ext, config -__version__ = '0.2.0' +__version__ = '0.2.1' class SubidyExtension(ext.Extension): diff --git a/mopidy_subidy/library.py b/mopidy_subidy/library.py index 74b3215..f7460bb 100644 --- a/mopidy_subidy/library.py +++ b/mopidy_subidy/library.py @@ -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: