diff options
author | Daniel Friesel <derf@finalrewind.org> | 2020-12-07 19:44:18 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2020-12-07 19:44:18 +0100 |
commit | 2ee5332ee5373b87c3a3305c7884f0aaaeb78906 (patch) | |
tree | 536bb66d0695485d33f893793f170f31c479e345 /lib | |
parent | c509703ce55e4347af3a07e52b989618f06b710b (diff) |
warn if a connecting train may not be reached
Diffstat (limited to 'lib')
-rwxr-xr-x | lib/Travelynx.pm | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm index edb4637..281a9a0 100755 --- a/lib/Travelynx.pm +++ b/lib/Travelynx.pm @@ -1446,6 +1446,7 @@ sub startup { my ( $eva, $exclude_via, $exclude_train_id, $exclude_before ); my $now = $self->now->epoch; + my ( $stationinfo, $arr_epoch, $arr_platform ); if ( $opt{eva} ) { if ( $use_history & 0x01 ) { @@ -1461,8 +1462,11 @@ sub startup { $eva = $status->{arr_eva}; $exclude_via = $status->{dep_name}; $exclude_train_id = $status->{train_id}; + $arr_platform = $status->{arr_platform}; + $stationinfo = $status->{extra_data}{stationinfo_arr}; if ( $status->{real_arrival} ) { - $exclude_before = $status->{real_arrival}->epoch; + $exclude_before = $arr_epoch + = $status->{real_arrival}->epoch; } } } @@ -1578,6 +1582,30 @@ sub startup { my @message_ids = List::Util::uniq map { $_->[1] } $train->raw_messages; $train->{message_id} = { map { $_ => 1 } @message_ids }; + my $interchange_duration; + if ( exists $stationinfo->{i} ) { + $interchange_duration + = $stationinfo->{i}{$arr_platform}{ $train->platform }; + $interchange_duration //= $stationinfo->{i}{"*"}; + } + if ( defined $interchange_duration ) { + my $interchange_time + = ( $train->departure->epoch - $arr_epoch ) / 60; + if ( $interchange_time < $interchange_duration ) { + $train->{interchange_text} = 'Anschluss knapp'; + $train->{interchange_icon} = 'warning'; + } + elsif ( $interchange_time == $interchange_duration ) { + $train->{interchange_text} + = 'Anschluss könnte knapp werden'; + $train->{interchange_icon} = 'directions_run'; + } + + #else { + # $train->{interchange_text} = 'Anschluss wird voraussichtlich erreicht'; + # $train->{interchange_icon} = 'check'; + #} + } } return ( @results, @cancellations ); |