X-Git-Url: http://git.kaliko.me/?a=blobdiff_plain;f=sima%2Fplugins%2Fcore%2Fhistory.py;h=6c3ad907ce6a5c19ed453f6a42dea50104656426;hb=38d17f3c7dfcf2909ca1d6c17ec8483b8dd74a37;hp=67414a845f2a756e5f0314f9c1aee5be7b3891a8;hpb=39becab4a5cf591b1833e875c06793d97ac78659;p=mpd-sima.git diff --git a/sima/plugins/core/history.py b/sima/plugins/core/history.py index 67414a8..6c3ad90 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,26 @@ 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 callback_player(self): current = self.player.current - self.log.debug('add history: "{}"'.format(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) + 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