diff options
author | RaNaN <Mast3rRaNaN@hotmail.de> | 2013-11-26 21:50:02 +0100 |
---|---|---|
committer | RaNaN <Mast3rRaNaN@hotmail.de> | 2013-11-26 21:50:02 +0100 |
commit | d43b66838414e219b7ffecfe917b7d4a8354418e (patch) | |
tree | bea2492aa4840be34a53bd26064f4c333d25790e /pyload/threads | |
parent | invoke addons via context menu (diff) | |
download | pyload-d43b66838414e219b7ffecfe917b7d4a8354418e.tar.xz |
extraction via context menu + progress information working
Diffstat (limited to 'pyload/threads')
-rw-r--r-- | pyload/threads/AddonThread.py | 14 | ||||
-rw-r--r-- | pyload/threads/BaseThread.py | 4 | ||||
-rw-r--r-- | pyload/threads/ThreadManager.py | 7 |
3 files changed, 19 insertions, 6 deletions
diff --git a/pyload/threads/AddonThread.py b/pyload/threads/AddonThread.py index afb56f66b..fd613bdec 100644 --- a/pyload/threads/AddonThread.py +++ b/pyload/threads/AddonThread.py @@ -4,6 +4,7 @@ from copy import copy from traceback import print_exc +from pyload.Api import ProgressInfo from BaseThread import BaseThread class AddonThread(BaseThread): @@ -18,6 +19,7 @@ class AddonThread(BaseThread): self.kwargs = kwargs self.active = [] + self.progress = 0 m.localThreads.append(self) @@ -26,6 +28,18 @@ class AddonThread(BaseThread): def getActiveFiles(self): return self.active + # TODO: multiple progresses + def setProgress(self, progress, pyfile=None): + """ Sets progress for the thread in percent""" + self.progress = progress + + def getProgress(self): + """ Progress of the thread """ + if self.active: + active = self.active[0] + return ProgressInfo(active.pluginname, active.name, active.getStatusName(), 0, + self.progress, 100) + def addActive(self, pyfile): """ Adds a pyfile to active list and thus will be displayed on overview""" if pyfile not in self.active: diff --git a/pyload/threads/BaseThread.py b/pyload/threads/BaseThread.py index 3655480dd..9b4e5af67 100644 --- a/pyload/threads/BaseThread.py +++ b/pyload/threads/BaseThread.py @@ -16,7 +16,7 @@ from pyload.setup.system import get_system_info class BaseThread(Thread): """abstract base class for thread types""" - def __init__(self, manager, ower=None): + def __init__(self, manager, owner=None): Thread.__init__(self) self.setDaemon(True) self.m = manager #thread manager @@ -24,7 +24,7 @@ class BaseThread(Thread): self.log = manager.core.log #: Owner of the thread, every type should set it or overwrite user - self.owner = None + self.owner = owner @property def user(self): diff --git a/pyload/threads/ThreadManager.py b/pyload/threads/ThreadManager.py index 55cfcbfd2..3132e98e2 100644 --- a/pyload/threads/ThreadManager.py +++ b/pyload/threads/ThreadManager.py @@ -27,7 +27,7 @@ from random import choice from pyload.datatypes.PyFile import PyFile from pyload.datatypes.OnlineCheck import OnlineCheck from pyload.network.RequestFactory import getURL -from pyload.utils import lock, uniqify +from pyload.utils import lock, uniqify, to_list from pyload.utils.fs import free_space from DecrypterThread import DecrypterThread @@ -118,13 +118,12 @@ class ThreadManager: def getProgressList(self, user=None): info = [] - # TODO: local threads can create multiple progresses for thread in self.threads + self.localThreads: # skip if not belong to current user - if user and thread.user != user: continue + if user is not None and thread.owner != user: continue progress = thread.getProgress() - if progress: info.append(progress) + if progress: info.extend(to_list(progress)) return info |