Chronos module: code refactoring to work with events interface

This commit is contained in:
Némunaire 2013-01-04 18:07:18 +01:00
parent bd4a9e17eb
commit 418e6ba32a

View File

@ -16,15 +16,46 @@ def help_full ():
return "!chronos [spé] : gives current and next courses." return "!chronos [spé] : gives current and next courses."
def cmd_chronos(msg): def get_courses(classe=None, room=None, teacher=None, date=None):
url = CONF.getNode("server")["url"] url = CONF.getNode("server")["url"]
if len(msg.cmds) > 1: if classe is not None:
url += "&class=" + quote(msg.cmds[1]) url += "&class=" + quote(classe)
if room is not None:
url += "&room=" + quote(room)
if teacher is not None:
url += "&teacher=" + quote(teacher)
#TODO: date, not implemented at 23.tf
res = Response(msg.sender, channel=msg.channel, nomore="Je n'ai pas d'autre cours à afficher")
response = web.getXML(url) response = web.getXML(url)
if response is not None: if response is not None:
courses = response.getNodes("course") return response.getNodes("course")
else:
return None
def get_next_courses(classe=None, room=None, teacher=None, date=None):
courses = get_courses(classe, room, teacher, date)
now = datetime.now()
for c in courses:
start = c.getFirstNode("start").getDate()
if now > start:
return c
return None
def get_near_courses(classe=None, room=None, teacher=None, date=None):
courses = get_courses(classe, room, teacher, date)
return courses[0]
def cmd_chronos(msg):
if len(msg.cmds) > 1:
classe = msg.cmds[1]
else:
classe = ""
res = Response(msg.sender, channel=msg.channel, nomore="Je n'ai pas d'autre cours à afficher")
courses = get_courses(classe)
if courses is not None:
now = datetime.now() now = datetime.now()
tomorrow = now + timedelta(days=1) tomorrow = now + timedelta(days=1)
for c in courses: for c in courses: