X-Git-Url: http://git.kaliko.me/?a=blobdiff_plain;f=sima%2Fplugins%2Fcore%2Fhistory.py;h=3380870754b84a12c775dd0075b40173e1f0c0c6;hb=c23e4560ba184403e94d41cbf0816ed9847406fc;hp=67414a845f2a756e5f0314f9c1aee5be7b3891a8;hpb=39becab4a5cf591b1833e875c06793d97ac78659;p=mpd-sima.git diff --git a/sima/plugins/core/history.py b/sima/plugins/core/history.py index 67414a8..3380870 100644 --- a/sima/plugins/core/history.py +++ b/sima/plugins/core/history.py @@ -1,8 +1,27 @@ # -*- coding: utf-8 -*- +# Copyright (c) 2013, 2014, 2020 kaliko +# +# This file is part of sima +# +# sima is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# sima is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with sima. If not, see . +# +# """Add playing tracks to history """ # standard library import +from time import time # third parties components @@ -15,17 +34,32 @@ 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 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