RATP: clean and update module

This commit is contained in:
nemunaire 2014-09-19 01:42:37 +02:00
parent ae3c46e693
commit 880b2950d3

View File

@ -2,46 +2,39 @@
"""Informe les usagers des prochains passages des transports en communs de la RATP""" """Informe les usagers des prochains passages des transports en communs de la RATP"""
import http.client from hooks import hook
import re
from xml.dom.minidom import parseString
from .external.src import ratp
nemubotversion = 3.4 nemubotversion = 3.4
def load(context): from .external.src import ratp
global DATAS
DATAS.setIndex("name", "station")
def help_full (): def help_full ():
return "!ratp transport line [station]: Donne des informations sur les prochains passages du transport en commun séléctionné à l'arrêt désiré. Si aucune station n'est précisée, les liste toutes." return "!ratp transport line [station]: Donne des informations sur les prochains passages du transport en commun séléctionné à l'arrêt désiré. Si aucune station n'est précisée, les liste toutes."
def extractInformation(msg, transport, line, station=None): @hook("cmd_hook", "ratp")
if station is not None and station != "": def ask_ratp(msg):
"""Hook entry from !ratp"""
if len(msg.cmds) == 4:
transport = msg.cmds[1]
line = msg.cmds[2]
station = msg.cmds[3]
times = ratp.getNextStopsAtStation(transport, line, station) times = ratp.getNextStopsAtStation(transport, line, station)
if len(times) > 0:
if len(times) == 0:
raise IRCException("la station %s n'existe pas sur le %s ligne %s." % (station, transport, line))
(time, direction, stationname) = times[0] (time, direction, stationname) = times[0]
return Response(message=["\x03\x02"+time+"\x03\x02 direction "+direction for time, direction, stationname in times], title="Prochains passages du %s ligne %s à l'arrêt %s" % return Response(message=["\x03\x02%s\x03\x02 direction %s" % (time, direction) for time, direction, stationname in times],
(transport, line, stationname), channel=msg.channel) title="Prochains passages du %s ligne %s à l'arrêt %s" % (transport, line, stationname),
else: channel=msg.channel)
raise IRCException("La station `%s' ne semble pas exister sur le %s ligne %s."
% (station, transport, line)) elif len(msg.cmds) == 3:
else: stations = ratp.getAllStations(msg.cmds[1], msg.cmds[2])
stations = ratp.getAllStations(transport, line)
if len(stations) == 0: if len(stations) == 0:
raise IRCException("aucune station trouvée.") raise IRCException("aucune station trouvée.")
return Response([s for s in stations], title="Stations", channel=msg.channel) return Response([s for s in stations], title="Stations", channel=msg.channel)
def ask_ratp(msg):
"""Hook entry from !ratp"""
global DATAS
if len(msg.cmds) == 4:
return extractInformation(msg, msg.cmds[1], msg.cmds[2], msg.cmds[3])
elif len(msg.cmds) == 3:
return extractInformation(msg, msg.cmds[1], msg.cmds[2])
else: else:
raise IRCException("Mauvais usage, merci de spécifier un type de transport et une ligne, ou de consulter l'aide du module.") raise IRCException("Mauvais usage, merci de spécifier un type de transport et une ligne, ou de consulter l'aide du module.")
return False