diff options
Diffstat (limited to 'pyload/manager/Event.py')
-rw-r--r-- | pyload/manager/Event.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/pyload/manager/Event.py b/pyload/manager/Event.py index 20897290e..90aaaca30 100644 --- a/pyload/manager/Event.py +++ b/pyload/manager/Event.py @@ -5,18 +5,22 @@ from time import time from pyload.utils import uniqify class PullManager(object): + def __init__(self, core): self.core = core self.clients = [] + def newClient(self, uuid): self.clients.append(Client(uuid)) + def clean(self): for n, client in enumerate(self.clients): if client.lastActive + 30 < time(): del self.clients[n] + def getEvents(self, uuid): events = [] validUuid = False @@ -32,28 +36,34 @@ class PullManager(object): events = [ReloadAllEvent("queue").toList(), ReloadAllEvent("collector").toList()] return uniqify(events) + def addEvent(self, event): for client in self.clients: client.addEvent(event) class Client(object): + def __init__(self, uuid): self.uuid = uuid self.lastActive = time() self.events = [] + def newEvents(self): return len(self.events) > 0 + def popEvent(self): if not len(self.events): return None return self.events.pop(0) + def addEvent(self, event): self.events.append(event) class UpdateEvent(object): + def __init__(self, itype, iid, destination): assert itype == "pack" or itype == "file" assert destination == "queue" or destination == "collector" @@ -61,10 +71,12 @@ class UpdateEvent(object): self.id = iid self.destination = destination + def toList(self): return ["update", self.destination, self.type, self.id] class RemoveEvent(object): + def __init__(self, itype, iid, destination): assert itype == "pack" or itype == "file" assert destination == "queue" or destination == "collector" @@ -72,10 +84,12 @@ class RemoveEvent(object): self.id = iid self.destination = destination + def toList(self): return ["remove", self.destination, self.type, self.id] class InsertEvent(object): + def __init__(self, itype, iid, after, destination): assert itype == "pack" or itype == "file" assert destination == "queue" or destination == "collector" @@ -84,21 +98,26 @@ class InsertEvent(object): self.after = after self.destination = destination + def toList(self): return ["insert", self.destination, self.type, self.id, self.after] class ReloadAllEvent(object): + def __init__(self, destination): assert destination == "queue" or destination == "collector" self.destination = destination + def toList(self): return ["reload", self.destination] class AccountUpdateEvent(object): + def toList(self): return ["account"] class ConfigUpdateEvent(object): + def toList(self): return ["config"] |