X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Fplugins%2Fcore%2Fhistory.py;h=b85c0dd923b1cb302237fa299dbcd301b3d14cf6;hb=03d85cc860dde8ec2ecd2076d014db763017f547;hp=67414a845f2a756e5f0314f9c1aee5be7b3891a8;hpb=39becab4a5cf591b1833e875c06793d97ac78659;p=mpd-sima.git diff --git a/sima/plugins/core/history.py b/sima/plugins/core/history.py index 67414a8..b85c0dd 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 @@ -16,16 +35,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[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 self._last_clean - time() > 86400: + self.shutdown() + self._last_clean = time() # VIM MODLINE