summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2024-08-16 18:21:04 +0200
committerBirte Kristina Friesel <derf@finalrewind.org>2024-08-16 18:21:04 +0200
commit81504dc57975ffc2d5f4e1b1279718d47df7b7d1 (patch)
tree7317e74362c65a7e7220e3b96d7fda692266dbeb
parenta0d1e0528ef1f3013a46133e461b6608f3ce5b66 (diff)
hafas-m: Handle empty routes
-rwxr-xr-xbin/hafas-m18
1 files changed, 15 insertions, 3 deletions
diff --git a/bin/hafas-m b/bin/hafas-m
index 05ae734..fb22f13 100755
--- a/bin/hafas-m
+++ b/bin/hafas-m
@@ -413,8 +413,15 @@ elsif ( $opt{journey} ) {
if ( $result->line_no ) {
printf( " / Linie %s", $result->line_no );
}
- printf( "\nFahrt %s am %s\n",
- $result->id, ( $result->route )[0]->sched_dep->strftime('%d.%m.%Y') );
+
+ if ( $result->route ) {
+ printf( "\nFahrt %s am %s\n",
+ $result->id,
+ ( $result->route )[0]->sched_dep->strftime('%d.%m.%Y') );
+ }
+ else {
+ printf( "\nFahrt %s\n", $result->id );
+ }
my $delay_len = 0;
my $delay_fmt = 0;
@@ -454,7 +461,7 @@ elsif ( $opt{journey} ) {
my $now
= DateTime->now( time_zone => $desc->{time_zone} // 'Europe/Berlin' );
my $mark_stop = 0;
- for my $i ( reverse 1 .. scalar $result->route ) {
+ for my $i ( reverse 1 .. ( scalar $result->route // 0 ) ) {
my $stop = ( $result->route )[ $i - 1 ];
if ( not $stop->dep_cancelled and $stop->dep and $now <= $stop->dep ) {
$mark_stop = $stop;
@@ -468,6 +475,11 @@ elsif ( $opt{journey} ) {
my $message_id = 1;
print "\n";
+
+ if ( not $result->route ) {
+ say 'Route unknown: this backend does not provide intermediate stops';
+ }
+
for my $stop ( $result->route ) {
my $msg_line = q{};
for my $message ( $stop->messages ) {