From 4cfb8717f3caf7f09ae8cb84cf817f9b44492a95 Mon Sep 17 00:00:00 2001 From: Johannes Knutsen Date: Mon, 26 Jul 2010 10:38:37 +0200 Subject: [PATCH] implement command: list artist --- mopidy/mpd/frontend.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/mopidy/mpd/frontend.py b/mopidy/mpd/frontend.py index db0e7183..b48eac10 100644 --- a/mopidy/mpd/frontend.py +++ b/mopidy/mpd/frontend.py @@ -640,6 +640,17 @@ class MpdFrontend(object): # TODO Add result to current playlist #return result + def _music_db_list_artist(self): + """ + Since we don't know exactly all available artists, we respond with + the artists we know for sure, which is all artists in our stored playlists. + """ + artists = set() + for playlist in self.backend.stored_playlists.playlists: + for track in playlist.tracks: + for artist in track.artists: + artists.add(u'Artist: %s' % artist.name) + return u'\n'.join(artists) @handle_pattern(r'^list (?P[Aa]rtist)$') @handle_pattern(r'^list "(?P[Aa]rtist)"$') @handle_pattern(r'^list (?Palbum( artist)?)( "(?P[^"]+)")*$') @@ -659,6 +670,7 @@ class MpdFrontend(object): *GMPC:* - does not add quotes around the field argument. + - asks for "list artist" to get available artists and will not query for artist/album information if this is not retrived - asks for multiple fields, i.e.:: list album artist "an artist name" @@ -677,7 +689,9 @@ class MpdFrontend(object): - capitalizes the field argument. """ field = field.lower() - pass # TODO + if field == u'artist': + return self._music_db_list_artist() + # TODO More to implement @handle_pattern(r'^listall "(?P[^"]+)"') def _music_db_listall(self, uri):