RATP: clean and update module
This commit is contained in:
parent
ae3c46e693
commit
880b2950d3
@ -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 != "":
|
|
||||||
times = ratp.getNextStopsAtStation(transport, line, station)
|
|
||||||
if len(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" %
|
|
||||||
(transport, line, stationname), channel=msg.channel)
|
|
||||||
else:
|
|
||||||
raise IRCException("La station `%s' ne semble pas exister sur le %s ligne %s."
|
|
||||||
% (station, transport, line))
|
|
||||||
else:
|
|
||||||
stations = ratp.getAllStations(transport, line)
|
|
||||||
if len(stations) == 0:
|
|
||||||
raise IRCException("aucune station trouvée.")
|
|
||||||
return Response([s for s in stations], title="Stations", channel=msg.channel)
|
|
||||||
|
|
||||||
def ask_ratp(msg):
|
def ask_ratp(msg):
|
||||||
"""Hook entry from !ratp"""
|
"""Hook entry from !ratp"""
|
||||||
global DATAS
|
|
||||||
if len(msg.cmds) == 4:
|
if len(msg.cmds) == 4:
|
||||||
return extractInformation(msg, msg.cmds[1], msg.cmds[2], msg.cmds[3])
|
transport = msg.cmds[1]
|
||||||
|
line = msg.cmds[2]
|
||||||
|
station = msg.cmds[3]
|
||||||
|
times = ratp.getNextStopsAtStation(transport, line, station)
|
||||||
|
|
||||||
|
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]
|
||||||
|
return Response(message=["\x03\x02%s\x03\x02 direction %s" % (time, direction) for time, direction, stationname in times],
|
||||||
|
title="Prochains passages du %s ligne %s à l'arrêt %s" % (transport, line, stationname),
|
||||||
|
channel=msg.channel)
|
||||||
|
|
||||||
elif len(msg.cmds) == 3:
|
elif len(msg.cmds) == 3:
|
||||||
return extractInformation(msg, msg.cmds[1], msg.cmds[2])
|
stations = ratp.getAllStations(msg.cmds[1], msg.cmds[2])
|
||||||
|
|
||||||
|
if len(stations) == 0:
|
||||||
|
raise IRCException("aucune station trouvée.")
|
||||||
|
return Response([s for s in stations], title="Stations", channel=msg.channel)
|
||||||
|
|
||||||
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
|
|
||||||
|
Loading…
Reference in New Issue
Block a user