From 8c983f20149cf910930f25ce36b9efc317218eb3 Mon Sep 17 00:00:00 2001 From: Johannes Knutsen Date: Sun, 14 Feb 2010 01:16:48 +0100 Subject: [PATCH 1/3] Only handle response in session if the response is not none --- mopidy/mpd/session.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mopidy/mpd/session.py b/mopidy/mpd/session.py index edd2a95c..c85ed3a0 100644 --- a/mopidy/mpd/session.py +++ b/mopidy/mpd/session.py @@ -48,7 +48,8 @@ class MpdSession(asynchat.async_chat): def handle_request(self, input): try: response = self.handler.handle_request(input) - self.handle_response(response) + if response is not None: + self.handle_response(response) except MpdAckError, e: logger.warning(e) return self.send_response(u'ACK %s' % e) From 527d345488ed931f16a2597f09af428bc43b064b Mon Sep 17 00:00:00 2001 From: Johannes Knutsen Date: Sun, 14 Feb 2010 01:19:21 +0100 Subject: [PATCH 2/3] Send OK only when no ACK in command list --- mopidy/mpd/handler.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mopidy/mpd/handler.py b/mopidy/mpd/handler.py index ef7274f8..65c00ceb 100644 --- a/mopidy/mpd/handler.py +++ b/mopidy/mpd/handler.py @@ -66,7 +66,7 @@ class MpdHandler(object): response.append(u'%s: %s' % (key, value)) else: response.append(line) - if add_ok: + if add_ok and (not response or not response[-1].startswith(u'ACK')): response.append(u'OK') return response @@ -109,6 +109,8 @@ class MpdHandler(object): response = self.handle_request(command, add_ok=False) if response is not None: result.append(response) + if response and response[-1].startswith(u'ACK'): + return result if command_list_ok: response.append(u'list_OK') return result From b1e15a3830d6fa79d4ebc2c23bdd05914ba368e7 Mon Sep 17 00:00:00 2001 From: Johannes Knutsen Date: Sun, 14 Feb 2010 01:20:18 +0100 Subject: [PATCH 3/3] Implemented deleteid in MPD handler --- mopidy/mpd/handler.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mopidy/mpd/handler.py b/mopidy/mpd/handler.py index 65c00ceb..98a0f97b 100644 --- a/mopidy/mpd/handler.py +++ b/mopidy/mpd/handler.py @@ -144,7 +144,12 @@ class MpdHandler(object): @register(r'^deleteid "(?P\d+)"$') def _deleteid(self, songid): - raise MpdNotImplemented # TODO + songid = int(songid) + try: + track = self.backend.current_playlist.get_by_id(songid) + return self.backend.current_playlist.remove(track) + except KeyError, e: + raise MpdAckError(unicode(e)) @register(r'^$') def _empty(self):