summaryrefslogtreecommitdiffstats
path: root/module/plugins/hooks
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hooks')
-rw-r--r--module/plugins/hooks/AndroidPhoneNotify.py9
-rw-r--r--module/plugins/hooks/ClickAndLoad.py33
-rw-r--r--module/plugins/hooks/SkipRev.py10
-rw-r--r--module/plugins/hooks/WindowsPhoneNotify.py (renamed from module/plugins/hooks/WindowsPhoneToastNotify.py)13
4 files changed, 35 insertions, 30 deletions
diff --git a/module/plugins/hooks/AndroidPhoneNotify.py b/module/plugins/hooks/AndroidPhoneNotify.py
index fbc2acd5c..a3b24a255 100644
--- a/module/plugins/hooks/AndroidPhoneNotify.py
+++ b/module/plugins/hooks/AndroidPhoneNotify.py
@@ -9,7 +9,7 @@ from module.plugins.Hook import Hook
class AndroidPhoneNotify(Hook):
__name__ = "AndroidPhoneNotify"
__type__ = "hook"
- __version__ = "0.03"
+ __version__ = "0.05"
__config__ = [("apikey" , "str" , "API key" , "" ),
("notifycaptcha" , "bool", "Notify captcha request" , True ),
@@ -33,14 +33,15 @@ class AndroidPhoneNotify(Hook):
def setup(self):
- self.info = {} #@TODO: Remove in 0.4.10
+ self.info = {} #@TODO: Remove in 0.4.10
+ self.last_notify = 0
def newCaptchaTask(self, task):
if not self.getConfig("notifycaptcha"):
return False
- if time() - float(self.getStorage("AndroidPhoneNotify", 0)) < self.getConf("timeout"):
+ if time() - self.last_notify < self.getConf("timeout"):
return False
self.notify(_("Captcha"), _("New request waiting user input"))
@@ -76,4 +77,4 @@ class AndroidPhoneNotify(Hook):
'event' : event,
'description': msg})
- self.setStorage("AndroidPhoneNotify", time())
+ self.last_notify = time()
diff --git a/module/plugins/hooks/ClickAndLoad.py b/module/plugins/hooks/ClickAndLoad.py
index 0bcd6ddef..d0f340aae 100644
--- a/module/plugins/hooks/ClickAndLoad.py
+++ b/module/plugins/hooks/ClickAndLoad.py
@@ -3,23 +3,22 @@
import socket
from threading import Thread, Lock
-from time import sleep
from module.plugins.Hook import Hook, threaded
def forward(source, destination):
try:
- size = 1024
- data = source.recv(size)
+ bufsize = 1024
+ data = source.recv(bufsize)
while data:
destination.sendall(data)
- data = source.recv(size)
+ data = source.recv(bufsize)
finally:
destination.shutdown(socket.SHUT_WR)
-#: socket.create_connection wrapper for python 2.5
+#: create_connection wrapper for python 2.5 socket module
def create_connection(address, timeout=object(), source_address=None):
if hasattr(socket, 'create_connection'):
if type(timeout) == object:
@@ -56,7 +55,7 @@ def create_connection(address, timeout=object(), source_address=None):
class ClickAndLoad(Hook):
__name__ = "ClickAndLoad"
__type__ = "hook"
- __version__ = "0.33"
+ __version__ = "0.34"
__config__ = [("activated", "bool", "Activated" , True ),
("port" , "int" , "Port" , 9666 ),
@@ -72,7 +71,7 @@ class ClickAndLoad(Hook):
if not self.config['webinterface']['activated']:
return
- ip = "0.0.0.0" if self.getConfig("extern") else "127.0.0.1"
+ ip = socket.gethostbyname(socket.gethostname()) if self.getConfig("extern") else "127.0.0.1"
webport = int(self.config['webinterface']['port'])
cnlport = self.getConfig('port')
@@ -89,22 +88,24 @@ class ClickAndLoad(Hook):
def server(self, ip, webport, cnlport):
try:
- dock_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- dock_socket.bind((ip, cnlport))
- dock_socket.listen(5)
+ server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+ server_socket.bind((ip, cnlport))
+ server_socket.listen(5)
while True:
- client_socket = dock_socket.accept()[0]
- server_socket = create_connection(("127.0.0.1", webport))
+ client_socket = server_socket.accept()[0]
+ dock_socket = create_connection(("127.0.0.1", webport))
- self.manager.startThread(forward, client_socket, server_socket)
- self.manager.startThread(forward, server_socket, client_socket)
+ self.manager.startThread(forward, client_socket, dock_socket)
+ self.manager.startThread(forward, dock_socket, client_socket)
+
+ client_socket.close()
+ dock_socket.close()
except socket.error, e:
self.logDebug(e)
self.server(ip, webport, cnlport)
finally:
- client_socket.close()
server_socket.close()
- dock_socket.close()
diff --git a/module/plugins/hooks/SkipRev.py b/module/plugins/hooks/SkipRev.py
index 51d385bb4..0bbdec3b2 100644
--- a/module/plugins/hooks/SkipRev.py
+++ b/module/plugins/hooks/SkipRev.py
@@ -18,7 +18,7 @@ def _setup(self):
class SkipRev(Hook):
__name__ = "SkipRev"
__type__ = "hook"
- __version__ = "0.24"
+ __version__ = "0.25"
__config__ = [("tokeep", "int", "Number of rev files to keep for package (-1 to auto)", -1)]
@@ -60,10 +60,12 @@ class SkipRev(Hook):
tokeep = self.getConfig("tokeep")
if tokeep:
- saved = [True for link in self.core.api.getPackageData(pyfile.package().id).links \
- if link.name.endswith(".rev") and link.status in (0, 12)].count(True)
+ status_list = (1, 4, 8, 9, 14) if tokeep < 0 else (1, 3, 4, 8, 9, 14)
- if not saved or saved < tokeep: #: keep one rev at least in auto mode
+ queued = [True for link in self.core.api.getPackageData(pyfile.package().id).links \
+ if link.name.endswith(".rev") and link.status not in status_list].count(True)
+
+ if not queued or queued < tokeep: #: keep one rev at least in auto mode
return
pyfile.setCustomStatus("SkipRev", "skipped")
diff --git a/module/plugins/hooks/WindowsPhoneToastNotify.py b/module/plugins/hooks/WindowsPhoneNotify.py
index 20686ee36..e0dd75f92 100644
--- a/module/plugins/hooks/WindowsPhoneToastNotify.py
+++ b/module/plugins/hooks/WindowsPhoneNotify.py
@@ -7,10 +7,10 @@ from time import time
from module.plugins.Hook import Hook
-class WindowsPhoneToastNotify(Hook):
- __name__ = "WindowsPhoneToastNotify"
+class WindowsPhoneNotify(Hook):
+ __name__ = "WindowsPhoneNotify"
__type__ = "hook"
- __version__ = "0.05"
+ __version__ = "0.07"
__config__ = [("id" , "str" , "Push ID" , "" ),
("url" , "str" , "Push url" , "" ),
@@ -35,14 +35,15 @@ class WindowsPhoneToastNotify(Hook):
def setup(self):
- self.info = {} #@TODO: Remove in 0.4.10
+ self.info = {} #@TODO: Remove in 0.4.10
+ self.last_notify = 0
def newCaptchaTask(self, task):
if not self.getConfig("notifycaptcha"):
return False
- if time() - float(self.getStorage("WindowsPhoneToastNotify", 0)) < self.getConf("timeout"):
+ if time() - self.last_notify < self.getConf("timeout"):
return False
self.notify(_("Captcha"), _("New request waiting user input"))
@@ -92,4 +93,4 @@ class WindowsPhoneToastNotify(Hook):
webservice.send(request)
webservice.close()
- self.setStorage("WindowsPhoneToastNotify", time())
+ self.last_notify = time()