Switch to GTFS-R v2
This commit is contained in:
parent
1bdac7b5c2
commit
93275fc37c
|
|
@ -14,8 +14,8 @@ import traceback
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
class GTFSClient():
|
class GTFSClient():
|
||||||
GTFS_URL = "https://api.nationaltransport.ie/gtfsr/v1?format=json"
|
GTFS_URL = "https://api.nationaltransport.ie/gtfsr/v2/gtfsr?format=json"
|
||||||
API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
API_KEY = ""
|
||||||
|
|
||||||
def __init__(self, feed_url: str, stop_names: list[str], update_queue: queue.Queue, update_interval_seconds: int = 60):
|
def __init__(self, feed_url: str, stop_names: list[str], update_queue: queue.Queue, update_interval_seconds: int = 60):
|
||||||
self.stop_names = stop_names
|
self.stop_names = stop_names
|
||||||
|
|
@ -216,28 +216,37 @@ class GTFSClient():
|
||||||
def __poll_gtfsr_deltas(self) -> list[map, set]:
|
def __poll_gtfsr_deltas(self) -> list[map, set]:
|
||||||
|
|
||||||
# Poll GTFS-R API
|
# Poll GTFS-R API
|
||||||
headers = {"x-api-key": GTFSClient.API_KEY}
|
if False:
|
||||||
response = requests.get(url = GTFSClient.GTFS_URL, headers = headers)
|
headers = {"x-api-key": GTFSClient.API_KEY}
|
||||||
if response.status_code != 200:
|
response = requests.get(url = GTFSClient.GTFS_URL, headers = headers)
|
||||||
print("GTFS-R sent non-OK response: {}\n{}".format(response.status_code, response.text))
|
if response.status_code != 200:
|
||||||
return ({}, set())
|
print("GTFS-R sent non-OK response: {}\n{}".format(response.status_code, response.text))
|
||||||
|
return ({}, set())
|
||||||
|
|
||||||
deltas_json = json.loads(response.read())
|
deltas_json = json.loads(response.text)
|
||||||
|
else:
|
||||||
|
deltas_json = json.load(open("example.json"))
|
||||||
|
|
||||||
deltas = {}
|
deltas = {}
|
||||||
canceled_trips = set()
|
canceled_trips = set()
|
||||||
|
|
||||||
for e in deltas_json.get("Entity"):
|
for e in deltas_json.get("entity"):
|
||||||
is_deleted = e.get("IsDeleted") or False
|
is_deleted = e.get("is_deleted") or False
|
||||||
try:
|
try:
|
||||||
trip_id = e.get("TripUpdate").get("Trip").get("TripId")
|
trip_id = e.get("trip_update").get("trip").get("trip_id")
|
||||||
if e.get("TripUpdate").get("Trip").get("ScheduleRelationship") == "Scheduled":
|
trip_action = e.get("trip_update").get("trip").get("schedule_relationship")
|
||||||
for u in e.get("TripUpdate").get("StopTimeUpdate"):
|
if trip_action == "SCHEDULED":
|
||||||
delay = u.get("Arrival", u.get("Departure", {})).get("Delay", 0)
|
for u in e.get("trip_update").get("stop_time_update"):
|
||||||
|
delay = u.get("arrival", u.get("departure", {})).get("delay", 0)
|
||||||
deltas_for_trip = (deltas.get(trip_id) or {})
|
deltas_for_trip = (deltas.get(trip_id) or {})
|
||||||
deltas_for_trip[u.get("StopId")] = delay
|
deltas_for_trip[u.get("stop_id")] = delay
|
||||||
deltas[trip_id] = deltas_for_trip
|
deltas[trip_id] = deltas_for_trip
|
||||||
|
|
||||||
|
elif trip_action == "ADDED":
|
||||||
|
# TODO: Add support for added trips
|
||||||
|
pass
|
||||||
else:
|
else:
|
||||||
|
print("Trip {} canceled.".format(trip_id))
|
||||||
canceled_trips.add(trip_id)
|
canceled_trips.add(trip_id)
|
||||||
except Exception as x:
|
except Exception as x:
|
||||||
print("Error parsing GTFS-R entry:", str(e))
|
print("Error parsing GTFS-R entry:", str(e))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue