# -*- coding: utf-8 -*-
-# Copyright (c) 2013, 2014 Jack Kaliko <kaliko@azylum.org>
+# Copyright (c) 2013, 2014, 2020 kaliko <kaliko@azylum.org>
#
# This file is part of sima
#
"""
# 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: "{}"'.format(current))
+ if not 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