Ajout des cars et des train sur infotbm

Le site a ajouté les cars et les trains, mais ces nouvelles lignes n'ont pas de suivi en temps réel.
Il a fallu ajouter du code pour ne pas les intégrer dans les données récupérées.
Pour le moment, le Bat³ n'est pas visible.

J'ai également modifié le code pour balayer plus de cas dans le test.
This commit is contained in:
Sasha MOREL 2021-09-18 09:01:23 +02:00
parent 1cbcbe3e75
commit 2df827d3ad
1 changed files with 26 additions and 5 deletions

31
stop.py
View File

@ -11,6 +11,14 @@ search_stop_url = 'https://ws.infotbm.com/ws/1.0/get-schedule/%s'
stop_info_url = 'https://ws.infotbm.com/ws/1.0/network/stoparea-informations/%s'
stop_schedule_url = 'https://ws.infotbm.com/ws/1.0/get-realtime-pass/%d/%s'
line_types = (
'Tram',
'Corol',
'Lianes',
'Ligne',
'Bus Relais',
)
def search_stop_by_name (keyword):
'''
@ -85,13 +93,22 @@ def show_stops_from_ref (ref):
'terminus': j ['name'],
'line_human': j ['line'] ['name'],
}
line_id = search ('[0-9A-D]+$', rte ['line_human']).group ()
try:
line_id = search ('[0-9A-D]+$', rte ['line_human']).group ()
except AttributeError:
continue
try:
line_id = '%02d' % int (line_id)
except ValueError:
pass
rte ['line_id'] = line_id
s ['routes'].append (rte)
a = False
for i in line_types:
if rte ['line_human'] [0:len (i)] == i:
a = True
break
if a:
rte ['line_id'] = line_id
s ['routes'].append (rte)
r ['stop_points'].append (s)
return (r)
@ -130,7 +147,11 @@ class StopRoute ():
'''
Met à jour les données
'''
d = get_data_from_json (stop_schedule_url % (self.number, self.line)) ['destinations']
d = get_data_from_json (stop_schedule_url % (self.number, self.line))
if 'destinations' in d:
d = d ['destinations']
else:
return ()
self.last_update = time ()
if type (d) == dict:
self.data = []
@ -196,7 +217,7 @@ class StopRoute ():
if __name__ == '__main__':
from datetime import datetime
for word in ('Gravière', 'Stade Chaban Delmas', 'Cassagne', 'Zorbut'):
for word in ('Gravière', 'Gare Saint Jean', 'Quinconces', 'Zorbut'):
print (word + ':')
for area in search_stop_by_name (word):
print ('\t' + area ['name'] + ' (' + area ['city'] + '):')