65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
# coding=utf-8
|
|
|
|
import http.client
|
|
import re
|
|
from xml.dom.minidom import parseString
|
|
|
|
from event import ModuleEvent
|
|
from xmlparser.node import ModuleState
|
|
from .external.src import ratp
|
|
|
|
|
|
nemubotversion = 3.2
|
|
|
|
def load(context):
|
|
global DATAS
|
|
DATAS.setIndex("name", "station")
|
|
|
|
|
|
def help_tiny ():
|
|
"""Line inserted in the response to the command !help"""
|
|
return "Informe les usagers des prochains passages des transports en communs de la RATP"
|
|
|
|
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."
|
|
|
|
|
|
def extractInformation(msg,
|
|
transport,
|
|
line,
|
|
station):
|
|
if station is not None and station != "":
|
|
times = ratp.getNextStopsAtStation(transport, line, station)
|
|
stops = ""
|
|
for time, direction, stationname in times:
|
|
station = stationname
|
|
stops += time+" direction "+direction+"; "
|
|
if len(stops) > 0:
|
|
return Response(msg.sender, "Prochains passages du %s ligne %s à l'arrêt %s: %s" %
|
|
(transport, line, stationname, stops), msg.channel, msg.nick)
|
|
else:
|
|
return Response(msg.sender, "La station `%s' ne semble pas exister sur le %s ligne %s."
|
|
% (station, transport, line), msg.channel, msg.nick)
|
|
else:
|
|
stations = ratp.getAllStations(transport, line)
|
|
if len(stations) > 0:
|
|
s = ""
|
|
for name in stations:
|
|
s += name + "; "
|
|
return Response(msg.sender, "Stations: %s." % s, msg.channel, msg.nick)
|
|
return 0
|
|
else:
|
|
return Response(msg.sender, "Aucune station trouvée.", msg.channel, msg.nick)
|
|
|
|
def ask_ratp(msg):
|
|
"""Hook entry from !ratp"""
|
|
global DATAS
|
|
if len(msg.cmd) == 4:
|
|
return extractInformation(msg, msg.cmd[1], msg.cmd[2], msg.cmd[3])
|
|
elif len(msg.cmd) == 3:
|
|
return extractInformation(msg, msg.cmd[1], msg.cmd[2], None)
|
|
else:
|
|
return Response(msg.sender, "Mauvais usage, merci de spécifier un type de transport et une ligne, ou de consulter l'aide du module.", msg.channel, msg.nick)
|
|
return False
|
|
|