summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2014-11-01 19:45:45 +0100
committerDaniel Friesel <derf@finalrewind.org>2014-11-01 19:48:04 +0100
commit5583505fb32d23a277c357f07340347ab4cd282a (patch)
tree43a25a57e2ffc08a1ef6983b64521857882c9916 /lib
parente85076209ad1c1d01a135154b54403c8c00bcc88 (diff)
allow realtime ppth to override static ppth
This way, if a train has so much delay that its scheduled data was not requested in the first place, it's still possible to compared its scheduled route with its actual route
Diffstat (limited to 'lib')
-rw-r--r--lib/Travel/Status/DE/IRIS.pm18
-rw-r--r--lib/Travel/Status/DE/IRIS/Result.pm12
2 files changed, 22 insertions, 8 deletions
diff --git a/lib/Travel/Status/DE/IRIS.pm b/lib/Travel/Status/DE/IRIS.pm
index ac7b744..06ef067 100644
--- a/lib/Travel/Status/DE/IRIS.pm
+++ b/lib/Travel/Status/DE/IRIS.pm
@@ -253,18 +253,20 @@ sub get_realtime {
}
if ($e_ar) {
$result->add_ar(
- arrival_ts => $e_ar->getAttribute('ct'),
- platform => $e_ar->getAttribute('cp'),
- route_pre => $e_ar->getAttribute('cpth'),
- status => $e_ar->getAttribute('cs'),
+ arrival_ts => $e_ar->getAttribute('ct'),
+ platform => $e_ar->getAttribute('cp'),
+ route_pre => $e_ar->getAttribute('cpth'),
+ sched_route_pre => $e_ar->getAttribute('ppth'),
+ status => $e_ar->getAttribute('cs'),
);
}
if ($e_dp) {
$result->add_dp(
- departure_ts => $e_dp->getAttribute('ct'),
- platform => $e_dp->getAttribute('cp'),
- route_post => $e_dp->getAttribute('cpth'),
- status => $e_dp->getAttribute('cs'),
+ departure_ts => $e_dp->getAttribute('ct'),
+ platform => $e_dp->getAttribute('cp'),
+ route_post => $e_dp->getAttribute('cpth'),
+ sched_route_post => $e_dp->getAttribute('ppth'),
+ status => $e_dp->getAttribute('cs'),
);
}
diff --git a/lib/Travel/Status/DE/IRIS/Result.pm b/lib/Travel/Status/DE/IRIS/Result.pm
index a121792..930533d 100644
--- a/lib/Travel/Status/DE/IRIS/Result.pm
+++ b/lib/Travel/Status/DE/IRIS/Result.pm
@@ -118,6 +118,12 @@ sub add_ar {
$self->{route_start} = $self->{route_pre}[0];
}
+ if ( $attrib{sched_route_pre} ) {
+ $self->{sched_route_pre}
+ = [ split( qr{[|]}, $attrib{sched_route_pre} // q{} ) ];
+ $self->{sched_route_start} = $self->{sched_route_pre}[0];
+ }
+
if ( $attrib{status} and $attrib{status} eq 'c' ) {
$self->{is_cancelled} = 1;
}
@@ -149,6 +155,12 @@ sub add_dp {
$self->{route_end} = $self->{route_post}[-1];
}
+ if ( $attrib{sched_route_post} ) {
+ $self->{sched_route_post}
+ = [ split( qr{[|]}, $attrib{sched_route_post} // q{} ) ];
+ $self->{sched_route_end} = $self->{sched_route_post}[-1];
+ }
+
if ( $attrib{status} and $attrib{status} eq 'c' ) {
$self->{is_cancelled} = 1;
}