diff options
-rwxr-xr-x | bin/dbris-m | 13 | ||||
-rw-r--r-- | lib/Travel/Status/DE/DBRIS.pm | 2 | ||||
-rw-r--r-- | lib/Travel/Status/DE/DBRIS/Journey.pm | 7 |
3 files changed, 17 insertions, 5 deletions
diff --git a/bin/dbris-m b/bin/dbris-m index 9fa0990..733b35b 100755 --- a/bin/dbris-m +++ b/bin/dbris-m @@ -147,12 +147,19 @@ if ($json_output) { } if ( $opt{station} ) { - my $max_line = max map { length( $_->line ) } $status->results; - my $max_dest = max map { length( $_->dest_name ) } $status->results; + my $max_line = max map { length( $_->line ) } $status->results; + my $max_dest = max map { length( $_->dest_name ) } $status->results; + my $max_delay = max map { length( $_->delay // q{} ) } $status->results; + + $max_delay += 1; + for my $result ( $status->results ) { printf( - "%s %${max_line}s %${max_dest}s %s\n", + "%s %s %${max_line}s %${max_dest}s %s\n", $result->is_cancelled ? '--:--' : $result->dep->strftime('%H:%M'), + $result->delay + ? sprintf( "(%+${max_delay}d)", $result->delay ) + : q{ } x ( $max_delay + 2 ), $result->line, $result->dest_name, $result->platform // $result->sched_platform diff --git a/lib/Travel/Status/DE/DBRIS.pm b/lib/Travel/Status/DE/DBRIS.pm index a2bf311..d9dc0d5 100644 --- a/lib/Travel/Status/DE/DBRIS.pm +++ b/lib/Travel/Status/DE/DBRIS.pm @@ -50,7 +50,7 @@ sub new { if ( my $eva = $conf{station} ) { $req - = "https://www.bahnhof.de/api/boards/departures?evaNumbers=${eva}&duration=60&stationCategory=1&locale=de&sortBy=TIME_SCHEDULE"; + = "https://www.bahnhof.de/api/boards/departures?evaNumbers=${eva}&duration=60&stationCategory=1&locale=de&sortBy=TIME"; } elsif ( my $gs = $conf{geoSearch} ) { my $lat = $gs->{latitude}; diff --git a/lib/Travel/Status/DE/DBRIS/Journey.pm b/lib/Travel/Status/DE/DBRIS/Journey.pm index df7eada..30026ca 100644 --- a/lib/Travel/Status/DE/DBRIS/Journey.pm +++ b/lib/Travel/Status/DE/DBRIS/Journey.pm @@ -9,7 +9,7 @@ use parent 'Class::Accessor'; our $VERSION = '0.01'; Travel::Status::DE::DBRIS::Journey->mk_ro_accessors( - qw(type dep sched_dep rt_dep is_cancelled line stop_name stop_eva id admin_id journey_id sched_platform platform dest_name dest_eva route) + qw(type dep sched_dep rt_dep delay is_cancelled line stop_name stop_eva id admin_id journey_id sched_platform platform dest_name dest_eva route) ); sub new { @@ -40,6 +40,11 @@ sub new { } $ref->{dep} = $ref->{rt_dep} // $ref->{schd_dep}; + if ( $ref->{sched_dep} and $ref->{rt_dep} ) { + $ref->{delay} = $ref->{rt_dep}->subtract_datetime( $ref->{sched_dep} ) + ->in_units('minutes'); + } + return $ref; } |