Oups, add a lot of missing files
This commit is contained in:
parent
d234d83df8
commit
061e73722f
21 changed files with 937 additions and 2 deletions
48
modules/events/Manager.py
Normal file
48
modules/events/Manager.py
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# coding=utf-8
|
||||
|
||||
from datetime import datetime
|
||||
import threading
|
||||
|
||||
newStrendEvt = threading.Event()
|
||||
|
||||
class Manager(threading.Thread):
|
||||
def __init__(self, datas, srvs):
|
||||
self.stop = False
|
||||
self.DATAS = datas
|
||||
self.SRVS = srvs
|
||||
threading.Thread.__init__(self)
|
||||
|
||||
def alertEnd(self, evt):
|
||||
global newStrendEvt
|
||||
#Send the message on each matched servers
|
||||
for server in self.SRVS.keys():
|
||||
if not evt.hasAttribute("server") or server == evt["server"]:
|
||||
if evt["channel"] == self.SRVS[server].nick:
|
||||
self.SRVS[server].send_msg_usr(evt["proprio"], "%s: %s arrivé à échéance." % (evt["proprio"], evt["name"]))
|
||||
else:
|
||||
self.SRVS[server].send_msg(evt["channel"], "%s: %s arrivé à échéance." % (evt["proprio"], evt["name"]))
|
||||
self.DATAS.delChild(self.DATAS.index[evt["name"]])
|
||||
save()
|
||||
newStrendEvt.set()
|
||||
|
||||
def run(self):
|
||||
global newStrendEvt
|
||||
while not self.stop:
|
||||
newStrendEvt.clear()
|
||||
closer = None
|
||||
#Gets the closer event
|
||||
for evt in self.DATAS.index.keys():
|
||||
if self.DATAS.index[evt].hasAttribute("end") and (closer is None or self.DATAS.index[evt].getDate("end") < closer.getDate("end")) and self.DATAS.index[evt].getDate("end") > datetime.now():
|
||||
closer = self.DATAS.index[evt]
|
||||
if closer is not None and closer.hasAttribute("end"):
|
||||
#print ("Closer: %s à %s"%(closer.name, closer["end"]))
|
||||
timeleft = (closer.getDate("end") - datetime.now()).seconds
|
||||
timer = threading.Timer(timeleft, self.alertEnd, (closer,))
|
||||
timer.start()
|
||||
#print ("Start timer (%ds)"%timeleft)
|
||||
|
||||
newStrendEvt.wait()
|
||||
|
||||
if closer is not None and closer.hasAttribute("end") and closer.getDate("end") > datetime.now():
|
||||
timer.cancel()
|
||||
self.threadManager = None
|
||||
Loading…
Add table
Add a link
Reference in a new issue