]> kaliko git repositories - mpd-sima.git/blobdiff - sima/plugins/core/history.py
Update simadb API
[mpd-sima.git] / sima / plugins / core / history.py
index 4876eba3b4c61a6adb6d17c1850d4869506d0f83..3380870754b84a12c775dd0075b40173e1f0c0c6 100644 (file)
@@ -34,25 +34,30 @@ class History(Plugin):
     """
     def __init__(self, daemon):
         Plugin.__init__(self, daemon)
-        self.sdb = daemon.sdb
         self._last_clean = time()
 
     def shutdown(self):
         self.log.info('Cleaning database')
         self.sdb.purge_history()
-        self.sdb.clean_database()
+
+    def _h_tip(self):
+        hist = self.sdb.fetch_history()
+        if hist:
+            return hist[0]
+        return None
 
     def callback_player(self):
         current = self.player.current
-        last_hist = next(self.sdb.get_history(), None)
-        if last_hist and last_hist[3] == current.file:
-            return
         if not current:
-            self.log.debug('Cannot add "%s" to history (empty or missing file)', current)
+            if self.player.state == 'play':
+                self.log.debug('Cannot add "%s" to history (empty or missing file)', current)
+            return
+        last_hist = self._h_tip()
+        if last_hist and last_hist == current:
             return
         self.log.debug('add history: "%s"', current)
         self.sdb.add_history(current)
-        if self._last_clean - time() > 86400:
+        if time() - self._last_clean > 86400:
             self.shutdown()
             self._last_clean = time()