diff --git a/mopidy/backends/despotify.py b/mopidy/backends/despotify.py index 79724600..b41c54cf 100644 --- a/mopidy/backends/despotify.py +++ b/mopidy/backends/despotify.py @@ -68,11 +68,12 @@ class DespotifyLibraryController(BaseLibraryController): for value in values: if field == u'track': field = u'title' - if field is u'any': + if field == u'any': spotify_query.append(value) else: spotify_query.append(u'%s:"%s"' % (field, value)) - spotify_query = u' '.join(query) + spotify_query = u' '.join(spotify_query) + logger.debug(u'Spotify search query: %s', spotify_query) result = self.backend.spotify.search(spotify_query.encode(ENCODING)) if (result is None or result.playlist.tracks[0].get_uri() == 'spotify:track:0000000000000000000000'): diff --git a/mopidy/backends/libspotify.py b/mopidy/backends/libspotify.py index 32444612..047f1328 100644 --- a/mopidy/backends/libspotify.py +++ b/mopidy/backends/libspotify.py @@ -76,7 +76,7 @@ class LibspotifyLibraryController(BaseLibraryController): for value in values: if field == u'track': field = u'title' - if field is u'any': + if field == u'any': spotify_query.append(value) else: spotify_query.append(u'%s:"%s"' % (field, value)) @@ -84,6 +84,13 @@ class LibspotifyLibraryController(BaseLibraryController): logger.debug(u'In search method, search for: %s' % spotify_query) my_end, other_end = multiprocessing.Pipe() self.backend.spotify.search(spotify_query.encode(ENCODING), other_end) + logger.debug(u'In Library.search(), waiting for search results') + my_end.poll(None) + logger.debug(u'In Library.search(), receiving search results') + playlist = my_end.recv() + logger.debug(u'In Library.search(), done receiving search results') + logger.debug(['%s' % t.name for t in playlist.tracks]) + return playlist class LibspotifyPlaybackController(BasePlaybackController): diff --git a/mopidy/mpd/frontend.py b/mopidy/mpd/frontend.py index cc70b938..041603ba 100644 --- a/mopidy/mpd/frontend.py +++ b/mopidy/mpd/frontend.py @@ -113,10 +113,11 @@ class MpdFrontend(object): Parses a mpd query string and converts the MPD query to a list of (field, what) tuples. """ - query_pattern = r'"?(?:[Aa]lbum|[Aa]rtist|[Ff]ilename|[Tt]itle|[Aa]ny)"? "[^"]+"' + query_pattern = ( + r'"?(?:[Aa]lbum|[Aa]rtist|[Ff]ilename|[Tt]itle|[Aa]ny)"? "[^"]+"') query_parts = re.findall(query_pattern, mpd_query) query_part_pattern = ( - r'"?(?P([Aa]lbum|[Aa]rtist|[Ff]ilename|[Tt]itle|[Aa]ny))"?\s' + r'"?(?P([Aa]lbum|[Aa]rtist|[Ff]ilename|[Tt]itle|[Aa]ny))"? ' r'"(?P[^"]+)"') query = {} for query_part in query_parts: @@ -124,11 +125,13 @@ class MpdFrontend(object): field = m.groupdict()['field'].lower() if field == u'title': field = u'track' + field = str(field) # Needed for kwargs keys on OS X and Windows what = m.groupdict()['what'].lower() if field in query: query[field].append(what) else: query[field] = [what] + logger.debug(u'Search query: %s', query) return query @handle_pattern(r'^disableoutput "(?P\d+)"$')