summaryrefslogtreecommitdiffstats
path: root/module/interaction/InteractionManager.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/InteractionManager.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/InteractionManager.py')
-rw-r--r--module/interaction/InteractionManager.py33
1 files changed, 23 insertions, 10 deletions
diff --git a/module/interaction/InteractionManager.py b/module/interaction/InteractionManager.py
index 5ebcd1fcd..c547e1c97 100644
--- a/module/interaction/InteractionManager.py
+++ b/module/interaction/InteractionManager.py
@@ -15,10 +15,13 @@
@author: RaNaN
"""
-from utils import lock
from traceback import print_exc
from threading import Lock
+from module.utils import lock, bits_set
+
+from InteractionTask import InteractionTask
+
class InteractionManager:
"""
Class that gives ability to interact with the user.
@@ -30,13 +33,25 @@ class InteractionManager:
self.core = core
self.tasks = [] #task store, for outgoing tasks only
+ self.last_clients = {}
+
self.ids = 0 #only for internal purpose
+
def work(self):
- """Mainloop that gets the work done"""
+ pass
+
+ @lock
+ def newNotification(self):
+ pass
+
+ @lock
+ def newQueryTask(self):
+ pass
- def newTask(self, img, format, file, result_type):
- task = CaptchaTask(self.ids, img, format, file, result_type)
+ @lock
+ def newCaptchaTask(self, img, format, file, result_type):
+ task = InteractionTask(self.ids, img, format, file, result_type)
self.ids += 1
return task
@@ -48,14 +63,12 @@ class InteractionManager:
@lock
def getTask(self):
for task in self.tasks:
- if task.status in ("waiting", "shared-user"):
- return task
+ return task
@lock
- def getTaskByID(self, tid):
+ def getTaskByID(self, iid):
for task in self.tasks:
- if task.id == str(tid): #task ids are strings
- self.lock.release()
+ if task.id == iid:
return task
def handleCaptcha(self, task):
@@ -64,7 +77,7 @@ class InteractionManager:
if cli: #client connected -> should solve the captcha
task.setWaiting(50) #wait 50 sec for response
- for plugin in self.core.hookManager.activePlugins():
+ for plugin in self.core.addonManager.activePlugins():
try:
plugin.newCaptchaTask(task)
except: