From e4f72d05c396851b2fa78534155bca9fab04f96f Mon Sep 17 00:00:00 2001 From: mathieui Date: Mon, 11 Mar 2013 11:31:28 +0100 Subject: Send the tune only if ther is a change from the previous state --- plugins/mpd_client.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'plugins/mpd_client.py') diff --git a/plugins/mpd_client.py b/plugins/mpd_client.py index ae98b41b..9d64f449 100644 --- a/plugins/mpd_client.py +++ b/plugins/mpd_client.py @@ -23,6 +23,7 @@ class UpdateThread(threading.Thread): def run(self, *args, **kwargs): self.alive = True + current = None while self.alive: try: self.c.connect(host=self.plugin.config.get('host', 'localhost'), port=self.plugin.config.get('port', '6600')) @@ -35,11 +36,14 @@ class UpdateThread(threading.Thread): status = self.c.status() if status['state'] == 'play' and self.alive: song = self.c.currentsong() - self.xmpp.plugin['xep_0118'].publish_tune(artist=song.get('artist'), - length=song.get('time'), title=song.get('title'), - track=song.get('track'), block=False) - else if status['state'] != 'play': + if current != song: + self.xmpp.plugin['xep_0118'].publish_tune(artist=song.get('artist'), + length=song.get('time'), title=song.get('title'), + track=song.get('track'), block=False) + current = song + elif status['state'] != 'play': self.xmpp.plugin['xep_0118'].stop(block=False) + current = None self.c.disconnect() except: pass -- cgit v1.2.3