X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Fplugins%2Fcore%2Fhistory.py;h=57b57bd7b24b19552bbdb6753ea9ef65c20beb17;hb=HEAD;hp=ae98a3ff5490f204c72626f61bec7e114a533b3f;hpb=e5ac6da78e3433a1b94676f6523e358d6089f263;p=mpd-sima.git diff --git a/sima/plugins/core/history.py b/sima/plugins/core/history.py index ae98a3f..57b57bd 100644 --- a/sima/plugins/core/history.py +++ b/sima/plugins/core/history.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2013, 2014 Jack Kaliko +# Copyright (c) 2013, 2014, 2020 kaliko # # This file is part of sima # @@ -21,31 +21,46 @@ """ # standard library import +from time import time # third parties components # local import from ...lib.plugin import Plugin + class History(Plugin): """ History management """ 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 callback_next_song(self): + def _h_tip(self): + hist = self.sdb.fetch_history() + if hist: + return hist[0] + return None + + def callback_player(self): current = self.player.current - self.log.debug('add history: "%s"', current) if not current: - self.log.warning('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 time() - self._last_clean > 86400: + self.shutdown() + self._last_clean = time() # VIM MODLINE