From 68d662e689cd42687341c550fb6ebb74e6968d21 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Mon, 8 Sep 2014 00:29:57 +0200 Subject: module -> pyload --- pyload/plugins/hooks/RestartFailed.py | 42 +++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 pyload/plugins/hooks/RestartFailed.py (limited to 'pyload/plugins/hooks/RestartFailed.py') diff --git a/pyload/plugins/hooks/RestartFailed.py b/pyload/plugins/hooks/RestartFailed.py new file mode 100644 index 000000000..a50ab60a4 --- /dev/null +++ b/pyload/plugins/hooks/RestartFailed.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- + +from pyload.plugins.Hook import Hook + + +class RestartFailed(Hook): + __name__ = "RestartFailed" + __type__ = "hook" + __version__ = "1.55" + + __config__ = [("activated", "bool", "Activated", False), + ("interval", "int", "Check interval in minutes", 90)] + + __description__ = """Periodically restart all failed downloads in queue""" + __author_name__ = "Walter Purcaro" + __author_mail__ = "vuolter@gmail.com" + + MIN_INTERVAL = 15 * 60 #: 15m minimum check interval (value is in seconds) + + event_list = ["pluginConfigChanged"] + + + def pluginConfigChanged(self, plugin, name, value): + if name == "interval": + interval = value * 60 + if self.MIN_INTERVAL <= interval != self.interval: + self.core.scheduler.removeJob(self.cb) + self.interval = interval + self.initPeriodical() + else: + self.logDebug("Invalid interval value, kept current") + + def periodical(self): + self.logInfo("Restart failed downloads") + self.api.restartFailed() + + def setup(self): + self.api = self.core.api + self.interval = self.MIN_INTERVAL + + def coreReady(self): + self.pluginConfigChanged(self.__name__, "interval", self.getConfig("interval")) -- cgit v1.2.3