From fc1802c4be6de0881991ba7aaad9e835e6ab91d1 Mon Sep 17 00:00:00 2001 From: Andy Voigt Date: Sun, 18 Aug 2013 15:53:58 +0200 Subject: create WindowsPhoneToastNotify hook --- module/plugins/hooks/WindowsPhoneToastNotify.py | 64 +++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 module/plugins/hooks/WindowsPhoneToastNotify.py (limited to 'module/plugins') 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 . + + @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 = " +Pyload Mobile Captcha waiting! " + 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() + -- cgit v1.2.3