summaryrefslogtreecommitdiffstats
path: root/module/interaction/InteractionTask.py
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2012-03-06 13:36:39 +0100
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2012-03-06 13:36:39 +0100
commit4df2b77fdf42046fe19bd371be7c7255986b5980 (patch)
tree2a7227a0d22e03dc2c085514eaab36a7e5e612c4 /module/interaction/InteractionTask.py
parentssl fix (diff)
downloadpyload-4df2b77fdf42046fe19bd371be7c7255986b5980.tar.xz
renamed hooks to addons, new filemanager and database, many new api methods
you will loose ALL your LINKS, webinterface will NOT work
Diffstat (limited to 'module/interaction/InteractionTask.py')
-rw-r--r--module/interaction/InteractionTask.py87
1 files changed, 17 insertions, 70 deletions
diff --git a/module/interaction/InteractionTask.py b/module/interaction/InteractionTask.py
index 97cb16794..7963a5c72 100644
--- a/module/interaction/InteractionTask.py
+++ b/module/interaction/InteractionTask.py
@@ -16,6 +16,8 @@
@author: RaNaN
"""
+from time import time
+
from module.Api import InteractionTask as BaseInteractionTask
from module.Api import Input, Output
@@ -27,103 +29,48 @@ class InteractionTask(BaseInteractionTask):
#: Plugins can put needed data here
storage = None
#: Timestamp when task expires
- waitUntil = 0
- #: Default data to be used, or True if preset should be used
- default = None
+ wait_until = 0
#: The received result as string representation
result = None
#: List of registered handles
handler = None
- #: Callback functions
- callbacks = None
#: Error Message
error = None
- #: Status string
- status = None
def __init__(self, *args, **kwargs):
BaseInteractionTask.__init__(self, *args, **kwargs)
# additional internal attributes
self.storage = {}
- self.default = []
self.handler = []
- self.callbacks = []
-
-
-class CaptchaTask:
- def __init__(self, id, img, format, file, result_type='textual'):
- self.id = str(id)
- self.captchaImg = img
- self.captchaFormat = format
- self.captchaFile = file
- self.captchaResultType = result_type
- self.handler = [] #the hook plugins that will take care of the solution
- self.result = None
- self.waitUntil = None
- self.error = None #error message
-
- self.status = "init"
- self.data = {} #handler can store data here
-
- def getCaptcha(self):
- return self.captchaImg, self.captchaFormat, self.captchaResultType
-
- def setResult(self, text):
- if self.isTextual():
- self.result = text
- if self.isPositional():
- try:
- parts = text.split(',')
- self.result = (int(parts[0]), int(parts[1]))
- except:
- self.result = None
+ self.wait_until = 0
- def getResult(self):
- try:
- res = self.result.encode("utf8", "replace")
- except:
- res = self.result
+ def convertResult(self, value):
+ return value
- return res
+ def getResult(self):
+ return self.result
- def getStatus(self):
- return self.status
+ def setResult(self, value):
+ pass
def setWaiting(self, sec):
- """ let the captcha wait secs for the solution """
- self.waitUntil = max(time() + sec, self.waitUntil)
- self.status = "waiting"
+ self.wait_until = max(time() + sec, self.wait_until)
- def isWaiting(self):
+ def isWaiting(self, sec):
if self.result or self.error or time() > self.waitUntil:
return False
return True
- def isTextual(self):
- """ returns if text is written on the captcha """
- return self.captchaResultType == 'textual'
-
- def isPositional(self):
- """ returns if user have to click a specific region on the captcha """
- return self.captchaResultType == 'positional'
-
- def setWatingForUser(self, exclusive):
- if exclusive:
- self.status = "user"
- else:
- self.status = "shared-user"
-
def timedOut(self):
return time() > self.waitUntil
- def invalid(self):
- """ indicates the captcha was not correct """
- [x.captchaInvalid(self) for x in self.handler]
-
def correct(self):
- [x.captchaCorrect(self) for x in self.handler]
+ [x.taskCorrect(self) for x in self.handler]
+
+ def invalid(self):
+ [x.taskInvalid(self) for x in self.handler]
def __str__(self):
- return "<CaptchaTask '%s'>" % self.id
+ return "<InteractionTask '%s'>" % self.id \ No newline at end of file