From c22fd4476092d8885b777f6b8bf8b0a037a3edce Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Fri, 25 Dec 2009 22:45:51 +0100 Subject: [PATCH] Add support for returning lists of two-tuples since we dont have ordered dicts --- mopidy/backends/spotify.py | 23 ++++++++++++----------- mopidy/handler.py | 22 +++++++++++----------- mopidy/session.py | 7 +++++-- 3 files changed, 28 insertions(+), 24 deletions(-) diff --git a/mopidy/backends/spotify.py b/mopidy/backends/spotify.py index af856bfe..2246371d 100644 --- a/mopidy/backends/spotify.py +++ b/mopidy/backends/spotify.py @@ -68,20 +68,21 @@ class SpotifyBackend(BaseBackend): pos_range = range(len(playlist)) tracks = [] for track, pos in zip(playlist, pos_range): - tracks.extend(self._format_track(track, pos)) + tracks.append(self._format_track(track, pos)) return tracks def _format_track(self, track, pos=0): - result = [] - result.append(u'file: %s' % track.get_uri()) - result.append(u'Time: %d' % (track.length // 1000)) - result.append(u'Artist: %s' % self._format_artists(track.artists)) - result.append(u'Title: %s' % decode(track.title)) - result.append(u'Album: %s' % decode(track.album)) - result.append(u'Track: %d/0' % track.tracknumber) - result.append(u'Date: %s' % track.year) - result.append(u'Pos: %d' % pos) - result.append(u'Id: %d' % pos) + result = [ + ('file', track.get_uri()), + ('Time', (track.length // 1000)), + ('Artist', self._format_artists(track.artists)), + ('Title', decode(track.title)), + ('Album', decode(track.album)), + ('Track', '%d/0' % track.tracknumber), + ('Date', track.year), + ('Pos', pos), + ('Id', pos), + ] return result def _format_artists(self, artists): diff --git a/mopidy/handler.py b/mopidy/handler.py index 052e916d..07199e3d 100644 --- a/mopidy/handler.py +++ b/mopidy/handler.py @@ -332,17 +332,17 @@ class MpdHandler(object): @register(r'^status$') def _status(self): - return { - 'volume': self.backend.status_volume(), - 'repeat': self.backend.status_repeat(), - 'random': self.backend.status_random(), - 'single': self.backend.status_single(), - 'consume': self.backend.status_consume(), - 'playlist': self.backend.status_playlist(), - 'playlistlength': self.backend.status_playlist_length(), - 'xfade': self.backend.status_xfade(), - 'state': self.backend.status_state(), - } + return [ + ('volume', self.backend.status_volume()), + ('repeat', self.backend.status_repeat()), + ('random', self.backend.status_random()), + ('single', self.backend.status_single()), + ('consume', self.backend.status_consume()), + ('playlist', self.backend.status_playlist()), + ('playlistlength', self.backend.status_playlist_length()), + ('xfade', self.backend.status_xfade()), + ('state', self.backend.status_state()), + ] @register(r'^swap (?P\d+) (?P\d+)$') def _swap(self, songpos1, songpos2): diff --git a/mopidy/session.py b/mopidy/session.py index 22ac7301..1cfb7cd0 100644 --- a/mopidy/session.py +++ b/mopidy/session.py @@ -46,8 +46,11 @@ class MpdSession(asynchat.async_chat): for line in response: self.handle_response(line) elif isinstance(response, dict): - for key, value in response.items(): - self.send_response(u'%s: %s' % (key, value)) + for item in response.items(): + self.handle_response(item) + elif isinstance(response, tuple): + (key, value) = response + self.send_response(u'%s: %s' % (key, value)) elif response is not None: self.send_response(response)