Switched realtime update feed from JSON to Protobuf.
This commit is contained in:
@@ -10,6 +10,8 @@ csv = "1.4"
|
||||
gtfs-structures = "0.47"
|
||||
gtfs-realtime = "0.2"
|
||||
log = "0.4"
|
||||
prost = "0.14"
|
||||
prost-types = "0.14"
|
||||
reqwest = { version = "0.11", features = ["blocking"] }
|
||||
sdl3 = {version = "0.17", features = ["ttf"]}
|
||||
serde = { version = "1.0", features = ["derive"]}
|
||||
|
||||
+10
-3
@@ -28,8 +28,13 @@ impl Gtfs<'_> {
|
||||
}
|
||||
|
||||
// Parse response
|
||||
let realtime_info: gtfs_realtime::FeedMessage
|
||||
= serde_json::from_reader(response)?;
|
||||
let response_bytes= response.bytes()?;
|
||||
let data: Result<gtfs_realtime::FeedMessage, prost::DecodeError> = prost::Message::decode(response_bytes.as_ref());
|
||||
if data.is_err() {
|
||||
return Err(Error {
|
||||
_message : format! ("Error loading realtime prtobuf: {:#?}", data.err().unwrap())
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// Build a map of (trip, stop) -> Arrival for faster lookup
|
||||
@@ -41,7 +46,9 @@ impl Gtfs<'_> {
|
||||
}
|
||||
|
||||
// Match deltas to existing arrivals
|
||||
for entity in realtime_info.entity {
|
||||
let entities = data.unwrap().entity;
|
||||
debug!("Loaded {} entities from realtime update.", entities.len());
|
||||
for entity in entities {
|
||||
if entity.trip_update.is_some() && entity.stop.is_some() {
|
||||
let trip_update = entity.trip_update.unwrap();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user