Loading lib/Travelynx.pm +29 −1 Original line number Diff line number Diff line Loading @@ -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 ) { Loading @@ -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; } } } Loading Loading @@ -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 ); Loading templates/_connections.html.ep +6 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,9 @@ % if ($train->departure_delay) { %= sprintf('(%+d)', $train->departure_delay) % } % if ($train->{interchange_icon}) { <i class="material-icons tiny" aria-label="<%= $train->{interchange_text} %>"><%= $train->{interchange_icon} %></i> % } % if ($train->platform) { <br/>Gleis <%= $train->platform %> % } Loading Loading @@ -108,6 +111,9 @@ % if ($train->departure_delay) { %= sprintf('(%+d)', $train->departure_delay) % } % if ($train->{interchange_icon}) { <i class="material-icons tiny" aria-label="<%= $train->{interchange_text} %>"><%= $train->{interchange_icon} %></i> % } % } </td><td> % if ($train->platform and not $train->departure_is_cancelled) { Loading Loading
lib/Travelynx.pm +29 −1 Original line number Diff line number Diff line Loading @@ -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 ) { Loading @@ -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; } } } Loading Loading @@ -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 ); Loading
templates/_connections.html.ep +6 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,9 @@ % if ($train->departure_delay) { %= sprintf('(%+d)', $train->departure_delay) % } % if ($train->{interchange_icon}) { <i class="material-icons tiny" aria-label="<%= $train->{interchange_text} %>"><%= $train->{interchange_icon} %></i> % } % if ($train->platform) { <br/>Gleis <%= $train->platform %> % } Loading Loading @@ -108,6 +111,9 @@ % if ($train->departure_delay) { %= sprintf('(%+d)', $train->departure_delay) % } % if ($train->{interchange_icon}) { <i class="material-icons tiny" aria-label="<%= $train->{interchange_text} %>"><%= $train->{interchange_icon} %></i> % } % } </td><td> % if ($train->platform and not $train->departure_is_cancelled) { Loading