diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2024-12-24 10:01:08 +0100 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2024-12-24 10:01:08 +0100 |
commit | 9cb71f78d09b8dc6e7b431c31c2cfac7657d7682 (patch) | |
tree | 53531d309d9e5e71fa4d5a12d9fccbb6a7784331 /bin/dbris-m | |
parent | e1535415b0ee257b0a475e7de5978612e6153ec3 (diff) |
add journey support
Diffstat (limited to 'bin/dbris-m')
-rwxr-xr-x | bin/dbris-m | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/bin/dbris-m b/bin/dbris-m index cc495a8..3e3488b 100755 --- a/bin/dbris-m +++ b/bin/dbris-m @@ -74,7 +74,7 @@ elsif ( $opt{station} =~ m{ ^ [?] (?<query> .*) $ }x ) { delete $opt{station}; } elsif ( $opt{station} =~ m{[|]} ) { - $opt{journey} = { id => $opt{station} }; + $opt{journey} = $opt{station}; delete $opt{station}; } elsif ( $opt{station} !~ m{ ^ \d+ $ }x ) { @@ -191,6 +191,44 @@ if ( $opt{station} ) { } } } +elsif ( $opt{journey} ) { + my $trip = $status->result; + + my $max_name = max map { length( $_->name ) } $trip->route; + my $max_platform = max map { length( $_->platform // q{} ) } $trip->route; + + say $trip->train; + say q{}; + + for my $stop ( $trip->route ) { + if ( $stop->is_cancelled ) { + print(' --:-- '); + } + elsif ( $stop->arr and $stop->dep ) { + printf( '%s → %s', + $stop->arr->strftime('%H:%M'), + $stop->dep->strftime('%H:%M'), + ); + } + elsif ( $stop->dep ) { + printf( ' %s', $stop->dep->strftime('%H:%M') ); + } + elsif ( $stop->arr ) { + printf( '%s ', $stop->arr->strftime('%H:%M') ); + } + else { + print(' '); + } + printf( " %${max_name}s %${max_platform}s\n", + $stop->name, $stop->platform // q{} ); + } + if ( $trip->messages ) { + say q{}; + } + for my $message ( $trip->messages ) { + say $message->{text}; + } +} elsif ( $opt{geoSearch} ) { for my $result ( $status->results ) { if ( defined $result->eva ) { |