Trafic_Lille / get_departures.py
tyriaa
4rd commitekk
8b1e2ee
import requests
from datetime import datetime
import pytz
def get_station_departures(api_key, station_id):
"""
Récupère les prochains départs d'une gare spécifique
"""
headers = {
'Authorization': api_key
}
# On utilise l'API des départs pour la gare spécifique
url = f'https://api.navitia.io/v1/coverage/sncf/stop_points/{station_id}/departures'
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
data = response.json()
departures = []
for departure in data.get('departures', []):
# On extrait les informations pertinentes
departure_time = departure['stop_date_time']['departure_date_time']
direction = departure['display_informations']['direction']
line_name = departure['display_informations']['commercial_mode']
headsign = departure['display_informations']['headsign']
# Conversion du temps de départ
dt = datetime.strptime(departure_time, "%Y%m%dT%H%M%S")
paris_tz = pytz.timezone('Europe/Paris')
dt = paris_tz.localize(dt)
formatted_time = dt.strftime("%H:%M")
departures.append({
'time': formatted_time,
'direction': direction,
'type': line_name,
'train_number': headsign
})
return departures
except requests.exceptions.RequestException as e:
print(f"Erreur lors de la récupération des départs: {e}")
return []
def get_all_departures(api_key):
"""
Récupère les départs des deux gares principales de Lille
"""
# IDs des gares de Lille
stations = {
'Lille Europe': 'stop_point:SNCF:87223263:Train',
'Lille Flandres': 'stop_point:SNCF:87286005:Train'
}
all_departures = {}
for station_name, station_id in stations.items():
departures = get_station_departures(api_key, station_id)
all_departures[station_name] = departures
return all_departures