2012-08-31 21:44:11 +00:00
# coding=utf-8
2014-08-27 23:39:31 +00:00
""" Informe les usagers des prochains passages des transports en communs de la RATP """
2014-09-18 23:42:37 +00:00
from hooks import hook
2012-08-31 21:44:11 +00:00
2014-08-13 13:53:55 +00:00
nemubotversion = 3.4
2012-08-31 21:44:11 +00:00
2014-09-18 23:42:37 +00:00
from . external . src import ratp
2012-08-31 21:44:11 +00:00
def help_full ( ) :
2012-11-04 14:33:04 +00:00
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. "
2012-08-31 21:44:11 +00:00
2014-09-18 23:42:37 +00:00
@hook ( " cmd_hook " , " ratp " )
2012-08-31 21:44:11 +00:00
def ask_ratp ( msg ) :
""" Hook entry from !ratp """
2012-11-04 14:33:04 +00:00
if len ( msg . cmds ) == 4 :
2014-09-18 23:42:37 +00:00
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 )
2012-11-04 14:33:04 +00:00
elif len ( msg . cmds ) == 3 :
2014-09-18 23:42:37 +00:00
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 )
2012-08-31 21:44:11 +00:00
else :
2014-09-18 05:57:06 +00:00
raise IRCException ( " Mauvais usage, merci de spécifier un type de transport et une ligne, ou de consulter l ' aide du module. " )