From 4a3c2476fa883bc5366bdd028287b83570da4bb3 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Mon, 9 Aug 2010 12:29:58 +0200 Subject: [PATCH 1/4] Try to fix non-string kwargs keys on OSX/Windows --- mopidy/mpd/frontend.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mopidy/mpd/frontend.py b/mopidy/mpd/frontend.py index cc70b938..51d1269e 100644 --- a/mopidy/mpd/frontend.py +++ b/mopidy/mpd/frontend.py @@ -113,7 +113,8 @@ 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' @@ -122,8 +123,8 @@ class MpdFrontend(object): for query_part in query_parts: m = re.match(query_part_pattern, query_part) field = m.groupdict()['field'].lower() - if field == u'title': - field = u'track' + if field == 'title': + field = 'track' what = m.groupdict()['what'].lower() if field in query: query[field].append(what) From 8997c08595c23ed8642d516135811df855f1a969 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Mon, 9 Aug 2010 12:33:16 +0200 Subject: [PATCH 2/4] Try to fix non-string kwargs keys on OSX/Windows. Try 2. --- mopidy/mpd/frontend.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mopidy/mpd/frontend.py b/mopidy/mpd/frontend.py index 51d1269e..946b0bae 100644 --- a/mopidy/mpd/frontend.py +++ b/mopidy/mpd/frontend.py @@ -123,8 +123,9 @@ class MpdFrontend(object): for query_part in query_parts: m = re.match(query_part_pattern, query_part) field = m.groupdict()['field'].lower() - if field == 'title': - field = 'track' + 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) From e2ed3b2d6116ec980bcbffd51787015c199a6790 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Mon, 9 Aug 2010 13:17:09 +0200 Subject: [PATCH 3/4] Log search queries --- mopidy/backends/despotify.py | 3 ++- mopidy/backends/libspotify.py | 3 ++- mopidy/mpd/frontend.py | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mopidy/backends/despotify.py b/mopidy/backends/despotify.py index 79724600..c88e0dda 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) + 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 4f1b2049..711cf0a6 100644 --- a/mopidy/backends/libspotify.py +++ b/mopidy/backends/libspotify.py @@ -77,11 +77,12 @@ 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)) spotify_query = u' '.join(spotify_query) + logger.debug(u'Spotify search query: %s', spotify_query) 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) diff --git a/mopidy/mpd/frontend.py b/mopidy/mpd/frontend.py index 946b0bae..041603ba 100644 --- a/mopidy/mpd/frontend.py +++ b/mopidy/mpd/frontend.py @@ -117,7 +117,7 @@ class MpdFrontend(object): 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: @@ -131,6 +131,7 @@ class MpdFrontend(object): query[field].append(what) else: query[field] = [what] + logger.debug(u'Search query: %s', query) return query @handle_pattern(r'^disableoutput "(?P\d+)"$') From e27957a7feb3a5b19ec58f03122858516cb6bf75 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Mon, 9 Aug 2010 13:17:23 +0200 Subject: [PATCH 4/4] despotify: Fix search --- mopidy/backends/despotify.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mopidy/backends/despotify.py b/mopidy/backends/despotify.py index c88e0dda..b41c54cf 100644 --- a/mopidy/backends/despotify.py +++ b/mopidy/backends/despotify.py @@ -72,7 +72,7 @@ class DespotifyLibraryController(BaseLibraryController): 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() ==