From e4f72d05c396851b2fa78534155bca9fab04f96f Mon Sep 17 00:00:00 2001
From: mathieui <mathieui@mathieui.net>
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(-)

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