Update nextstop module for v3.3

This commit is contained in:
Némunaire 2012-11-04 15:33:04 +01:00
parent c6d5d88723
commit 20f5c5f453

View File

@ -4,12 +4,9 @@ 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
nemubotversion = 3.3
def load(context):
global DATAS
@ -24,41 +21,30 @@ 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):
def extractInformation(msg, transport, line, station=None):
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)
if len(times) > 0:
(time, direction, stationname) = times[0]
return Response(msg.sender, 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:
return Response(msg.sender, "La station `%s' ne semble pas exister sur le %s ligne %s."
% (station, transport, line), msg.channel, msg.nick)
% (station, transport, line), msg.channel)
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
return Response(msg.sender, [s for s in stations], title="Stations", channel=msg.channel)
else:
return Response(msg.sender, "Aucune station trouvée.", msg.channel, msg.nick)
return Response(msg.sender, "Aucune station trouvée.", msg.channel)
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)
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:
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