Chronos module: code refactoring to work with events interface
This commit is contained in:
parent
bd4a9e17eb
commit
418e6ba32a
@ -16,15 +16,46 @@ def help_full ():
|
||||
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"]
|
||||
if len(msg.cmds) > 1:
|
||||
url += "&class=" + quote(msg.cmds[1])
|
||||
if classe is not None:
|
||||
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)
|
||||
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()
|
||||
tomorrow = now + timedelta(days=1)
|
||||
for c in courses:
|
||||
|
Loading…
x
Reference in New Issue
Block a user