From b0a9973139fe13cecc14185b6c07262c4c114fc7 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sun, 17 Sep 2017 15:10:32 +0200 Subject: Add API and CLI output for cancelled route parts (delay -9999) --- bin/efa | 5 ++++- lib/Travel/Routing/DE/EFA/Route/Part.pm | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/bin/efa b/bin/efa index 36ee898..44fa754 100755 --- a/bin/efa +++ b/bin/efa @@ -214,7 +214,10 @@ sub display_routes { sub display_connection { my ($c) = @_; - if ( $c->delay ) { + if ( $c->is_cancelled ) { + say '# FAHRT FĂ„LLT AUS'; + } + elsif ( $c->delay ) { printf( "# +%d, Plan: %s -> %s\n", $c->delay, $c->departure_stime, $c->arrival_stime ); } diff --git a/lib/Travel/Routing/DE/EFA/Route/Part.pm b/lib/Travel/Routing/DE/EFA/Route/Part.pm index cffe53d..c9ebfd9 100644 --- a/lib/Travel/Routing/DE/EFA/Route/Part.pm +++ b/lib/Travel/Routing/DE/EFA/Route/Part.pm @@ -82,6 +82,15 @@ sub footpath_parts { return; } +sub is_cancelled { + my ($self) = @_; + + if ( $self->{delay} and $self->{delay} eq '-9999' ) { + return 1; + } + return; +} + # DEPRECATED sub extra { my ($self) = @_; @@ -287,6 +296,12 @@ connection between two stops), so the B accessors contain redundant information. Other values such as "BEFORE" may also be returned, but this is unknown at this point. +=item $part->is_cancelled + +Returns true if this part of the route has been cancelled (i.e., the entire +route is probably useless), false otherwise. For unknown reasons, EFA may +sometimes return routes which contain cancelled departures. + =item $part->regular_notes Remarks about the line serving this connaction part. Returns a list of -- cgit v1.2.3