diff options
| author | 2013-08-18 15:53:58 +0200 | |
|---|---|---|
| committer | 2013-08-18 15:53:58 +0200 | |
| commit | fc1802c4be6de0881991ba7aaad9e835e6ab91d1 (patch) | |
| tree | 76863efe684808765ca1723c382c787feb103487 /module/plugins/hooks | |
| parent | LetitbitNet: implemented premium mode (diff) | |
| download | pyload-fc1802c4be6de0881991ba7aaad9e835e6ab91d1.tar.xz | |
create WindowsPhoneToastNotify hook
Diffstat (limited to 'module/plugins/hooks')
| -rw-r--r-- | module/plugins/hooks/WindowsPhoneToastNotify.py | 64 | 
1 files changed, 64 insertions, 0 deletions
| diff --git a/module/plugins/hooks/WindowsPhoneToastNotify.py b/module/plugins/hooks/WindowsPhoneToastNotify.py new file mode 100644 index 000000000..c9a84982f --- /dev/null +++ b/module/plugins/hooks/WindowsPhoneToastNotify.py @@ -0,0 +1,64 @@ +# -*- 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 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/>. + +    @author: RaNaN, Godofdream, zoidberg +""" +import sys, httplib +from module.plugins.Hook import Hook + +class WindowsPhoneToastNotify(Hook): +    __name__ = "WindowsPhoneToastNotify" +    __version__ = "0.01" +    __description__ = """Send push notifications to Windows Phone.""" +    __author_name__ = ("Andy Voigt") +    __author_mail__ = ("phone-support@hotmail.de") +    __config__ = [("activated", "bool", "Activated", False), +                  ("force", "bool", "Force even if client is connected", False), +                  ("pushId", "pId", "pushId", ""), +                  ("pushUrl","pUrl","pushUrl", "")] + +    def setup(self): +        self.info = {} +     +    def getXmlData(self): +        myxml = "<?xml version='1.0' encoding='utf-8'?> <wp:Notification xmlns:wp='WPNotification'> <wp:Toast>  +<wp:Text1>Pyload Mobile</wp:Text1> <wp:Text2>Captcha waiting!</wp:Text2> </wp:Toast> </wp:Notification>" +        return myxml + +    def doRequest(self): +        URL = self.getConfig("pushUrl") +        request = self.getXmlData() +        webservice = httplib.HTTP(URL) +        webservice.putrequest("POST", self.getConfig("pushId")) +        webservice.putheader("Host", URL) +        webservice.putheader("Content-type", "text/xml") +        webservice.putheader("X-NotificationClass", "2") +        webservice.putheader("X-WindowsPhone-Target", "toast") +        webservice.putheader("Content-length", "%d" % len(request)) +        webservice.endheaders() +        webservice.send(request) +        #statuscode, statusmessage, header = webservice.getreply() +        #result = webservice.getfile().read() +        webservice.close() + +    def newCaptchaTask(self, task): +        if not self.getConfig("pushId") or not self.getConfig("pushUrl"): +            return False + +        if self.core.isClientConnected() and not self.getConfig("force"): +            return False + +        self.doRequest() + | 
