summaryrefslogtreecommitdiffstats
path: root/module/plugins/hooks/AndroidPhoneNotify.py
diff options
context:
space:
mode:
authorGravatar Walter Purcaro <vuolter@gmail.com> 2015-01-11 21:51:52 +0100
committerGravatar Walter Purcaro <vuolter@gmail.com> 2015-01-11 21:51:52 +0100
commit1bf6adf3f1f9720333c1b1352de37898a153c409 (patch)
treed6447450b93b888237bcf28e8f29ac12a4912dbf /module/plugins/hooks/AndroidPhoneNotify.py
parentFix getAccount in some plugins (diff)
downloadpyload-1bf6adf3f1f9720333c1b1352de37898a153c409.tar.xz
Update notify addons
Diffstat (limited to 'module/plugins/hooks/AndroidPhoneNotify.py')
-rw-r--r--module/plugins/hooks/AndroidPhoneNotify.py70
1 files changed, 56 insertions, 14 deletions
diff --git a/module/plugins/hooks/AndroidPhoneNotify.py b/module/plugins/hooks/AndroidPhoneNotify.py
index d6bf64db4..18e1cce66 100644
--- a/module/plugins/hooks/AndroidPhoneNotify.py
+++ b/module/plugins/hooks/AndroidPhoneNotify.py
@@ -1,37 +1,79 @@
# -*- coding: utf-8 -*-
+from time import time
-from module.plugins.Hook import Hook
from module.network.RequestFactory import getURL
+from module.plugins.Hook import Hook
+
class AndroidPhoneNotify(Hook):
__name__ = "AndroidPhoneNotify"
__type__ = "hook"
- __version__ = "0.01"
+ __version__ = "0.02"
- __config__ = [("apikey", "str", "apikey", ""),
- ("appname", "str", "ApplicationName", "pyLoad"),
- ("notifycaptcha", "bool", "Send captcha notifications (maybe usefull if premium fails)", False)]
+ __config__ = [("apikey" , "str" , "API key" , "" ),
+ ("notifycaptcha" , "bool", "Notify captcha request" , True ),
+ ("notifypackage" , "bool", "Notify package finished" , True ),
+ ("notifyprocessed", "bool", "Notify processed packages status" , True ),
+ ("timeout" , "int" , "Timeout between captchas in seconds" , 5 ),
+ ("force" , "bool", "Send notifications if client is connected", False)]
__description__ = """Send push notifications to your Android Phone using notifymyandroid.com"""
__license__ = "GPLv3"
- __authors__ = [("Steven Kosyra", "steven.kosyra@gmail.com")]
+ __authors__ = [("Steven Kosyra", "steven.kosyra@gmail.com"),
+ ("Walter Purcaro", "vuolter@gmail.com")]
- def packageFinished(self, pypack):
- self.genUrl("Package finished:",pypack.name)
+ event_list = ["allDownloadsProcessed"]
+
+
+ #@TODO: Remove in 0.4.10
+ def initPeriodical(self):
+ pass
+
+
+ def setup(self):
+ self.info = {} #@TODO: Remove in 0.4.10
def newCaptchaTask(self, task):
- if self.getConfig("notifycaptcha"):
- self.genUrl("Captcha","new Captcha request")
+ if not self.getConfig("notifycaptcha"):
+ return False
+
+ if time() - float(self.getStorage("AndroidPhoneNotify", 0)) < self.getConf("timeout"):
+ return False
+
+ self.notify(_("Captcha"), _("New request waiting user input"))
+
+
+ def packageFinished(self, pypack):
+ if self.getConfig("notifypackage"):
+ self.notify(_("Package finished"), pypack.name)
+
+
+ def allDownloadsProcessed(self, thread):
+ if not self.getConfig("notifyprocessed"):
+ return False
+
+ if any(True for pdata in self.core.api.getQueue() if pdata.linksdone < pdata.linkstotal):
+ self.notify(_("Package failed"), _("One or more packages was not completed successfully"))
+ else:
+ self.notify(_("All packages finished"))
+ def notify(self, event, msg=""):
+ apikey = self.getConfig("apikey")
- def genUrl(self,event, msg):
- self.response(event, msg)
+ if not apikey:
+ return False
+ if self.core.isClientConnected() and not self.getConfig("force"):
+ return False
+ getURL("http://www.notifymyandroid.com/publicapi/notify",
+ get={'apikey' : apikey,
+ 'application': "pyLoad",
+ 'event' : event,
+ 'description': msg})
- def response(self, event, msg):
- html = getURL("http://www.notifymyandroid.com/publicapi/notify?apikey=" + self.getConfig("apikey") + "&application=" + self.getConfig("appname") + "&event=" + str(event) + "&description= " + str(msg) + "")
+ self.setStorage("AndroidPhoneNotify", time())