diff options
| author | 2013-05-04 13:18:06 +0200 | |
|---|---|---|
| committer | 2013-05-12 14:54:30 +0200 | |
| commit | b99de39af5a5f5201c516d4435414c6d05dd86f3 (patch) | |
| tree | 64dcb7a69357165eef092c193a4c84fdcb970301 | |
| parent | Added fully rewrited RestartFailed plugin, originally by bambie (diff) | |
| download | pyload-b99de39af5a5f5201c516d4435414c6d05dd86f3.tar.xz | |
Version 0.4: fixes
| -rw-r--r-- | module/plugins/hooks/RestartFailed.py | 119 | 
1 files changed, 62 insertions, 57 deletions
| diff --git a/module/plugins/hooks/RestartFailed.py b/module/plugins/hooks/RestartFailed.py index 5c3a4fbe0..24bbe85c4 100644 --- a/module/plugins/hooks/RestartFailed.py +++ b/module/plugins/hooks/RestartFailed.py @@ -1,69 +1,74 @@ -# -*- coding: utf-8 -*- +  # -*- coding: utf-8 -*-  """ -	This program 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. +    This program 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. -	This program 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. +    This program 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 this program; if not, see <http://www.gnu.org/licenses/>. +    You should have received a copy of the GNU General Public License +    along with this program; if not, see <http://www.gnu.org/licenses/>. -	@author: vuolter +    @author: vuolter  """  from module.plugins.Hook import Hook  import time +  class RestartFailed(Hook): -	__name__        = "RestartFailed" -	__version__     = "0.3" -	__description__ = "Restart failed packages according to defined rules" -	__config__      = [ ("activated", "bool", "Activated" , "True"), -						("on_downloadFailed", "bool", "Restart if downloads fails" , "True"), -						("downloadFailed_number", "int", "Only restart when failed downloads are more than", "5"), -						("downloadFailed_interval", "int", "Only restart when elapsed time since last one is (min)", "10"), -						("on_packageFinished", "bool", "Restart when package finished" , "True") -						("on_reconnect", "bool", "Restart after reconnected" , "True") ] -	__author_name__ = ("vuolter") -	__author_mail__ = ("vuolter@gmail.com") +    __name__ = "RestartFailed" +    __version__ = "0.4" +    __description__ = "Restart failed packages according to defined rules" +    __config__ = [ +        ("activated", "bool", "Activated", "True"), +        ("dlFailed", "bool", "Restart if downloads fails", "True"), +        ("dlFailed_n", "int", "Only when failed downloads are more than", "5"), +        ("dlFailed_i", "int", "Only when elapsed time since last restart is (min)", "10"), +        ("packFinished", "bool", "Restart when package finished", "True") +        ("recnt", "bool", "Restart after reconnected", "True") +    ] +    __author_name__ = ("vuolter") +    __author_mail__ = ("vuolter@gmail.com") + +    failed = 0 +    lastime = 0 + +    def checkInterval(self, interval): +        now = time() +        interval *= 60 +        if now >= lastime + interval: +            lastime = now +            return True +        else: +            return False + +    def downloadFailed(self, pyfile): +        if not self.getConfig("dlFailed"): +            failed = 0 +            return +        number = self.getConfig("dlFailed_n") +        interval = self.getConfig("dlFailed_i") +        if failed > number and checkInterval(interval): +            self.core.api.restartFailed() +            self.logDebug("executed after " + failed + " downloads failed") +            failed = 0 +        else: +            failed + 1 + +    def packageFinished(self, pypack): +        if not self.getConfig("packFinished"): +            return +        self.core.api.restartFailed() +        self.logDebug("executed after one package finished") -	failed = 0 -	lastime = 0 -	 -	def checkInterval(self, interval): -		interval *= 60 -		if now = time() >= lastime + interval : -			lastime = now -			return True -		else -			return False -	 -	def downloadFailed(self, pyfile): -		if not self.getConfig("on_downloadFailed"): -			failed = 0 -			return -		if failed > number = self.getConfig("downloadFailed_number")  -		and checkInterval(interval = self.getConfig("downloadFailed_interval")) : -			self.core.api.restartFailed() -			self.logDebug(self.__name__ + ": executed after " + failed + " downloads failed") -			failed = 0 -		else -			++failed -			 -	def packageFinished(self, pypack): -		if not self.getConfig("on_packageFinished"): -			return -		self.core.api.restartFailed() -		self.logDebug(self.__name__ + ": executed after one package finished") -	 -	def afterReconnecting(self, ip): -		if not self.getConfig("on_reconnect"): -			return -		self.core.api.restartFailed() -		self.logDebug(self.__name__ + ": executed after reconnecting") +    def afterReconnecting(self, ip): +        if not self.getConfig("recnt"): +            return +        self.core.api.restartFailed() +        self.logDebug("executed after reconnecting") | 
