warn if a connecting train may not be reached
This commit is contained in:
parent
c509703ce5
commit
2ee5332ee5
2 changed files with 35 additions and 1 deletions
|
@ -1446,6 +1446,7 @@ sub startup {
|
||||||
|
|
||||||
my ( $eva, $exclude_via, $exclude_train_id, $exclude_before );
|
my ( $eva, $exclude_via, $exclude_train_id, $exclude_before );
|
||||||
my $now = $self->now->epoch;
|
my $now = $self->now->epoch;
|
||||||
|
my ( $stationinfo, $arr_epoch, $arr_platform );
|
||||||
|
|
||||||
if ( $opt{eva} ) {
|
if ( $opt{eva} ) {
|
||||||
if ( $use_history & 0x01 ) {
|
if ( $use_history & 0x01 ) {
|
||||||
|
@ -1461,8 +1462,11 @@ sub startup {
|
||||||
$eva = $status->{arr_eva};
|
$eva = $status->{arr_eva};
|
||||||
$exclude_via = $status->{dep_name};
|
$exclude_via = $status->{dep_name};
|
||||||
$exclude_train_id = $status->{train_id};
|
$exclude_train_id = $status->{train_id};
|
||||||
|
$arr_platform = $status->{arr_platform};
|
||||||
|
$stationinfo = $status->{extra_data}{stationinfo_arr};
|
||||||
if ( $status->{real_arrival} ) {
|
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
|
my @message_ids
|
||||||
= List::Util::uniq map { $_->[1] } $train->raw_messages;
|
= List::Util::uniq map { $_->[1] } $train->raw_messages;
|
||||||
$train->{message_id} = { map { $_ => 1 } @message_ids };
|
$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 );
|
return ( @results, @cancellations );
|
||||||
|
|
|
@ -50,6 +50,9 @@
|
||||||
% if ($train->departure_delay) {
|
% if ($train->departure_delay) {
|
||||||
%= sprintf('(%+d)', $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) {
|
% if ($train->platform) {
|
||||||
<br/>Gleis <%= $train->platform %>
|
<br/>Gleis <%= $train->platform %>
|
||||||
% }
|
% }
|
||||||
|
@ -108,6 +111,9 @@
|
||||||
% if ($train->departure_delay) {
|
% if ($train->departure_delay) {
|
||||||
%= sprintf('(%+d)', $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>
|
</td><td>
|
||||||
% if ($train->platform and not $train->departure_is_cancelled) {
|
% if ($train->platform and not $train->departure_is_cancelled) {
|
||||||
|
|
Loading…
Reference in a new issue