get_connecting_trains: set lookahead to (expected arrival // now) + 40 minutes

This commit is contained in:
Daniel Friesel 2022-09-03 16:46:48 +02:00
parent 6aca1692e4
commit 2f2624a80a
No known key found for this signature in database
GPG key ID: 100D5BFB5166E005

View file

@ -33,7 +33,7 @@ sub get_connecting_trains_p {
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 ); my ( $stationinfo, $arr_epoch, $arr_platform, $arr_countdown );
my $promise = Mojo::Promise->new; my $promise = Mojo::Promise->new;
@ -55,6 +55,7 @@ sub get_connecting_trains_p {
$stationinfo = $status->{extra_data}{stationinfo_arr}; $stationinfo = $status->{extra_data}{stationinfo_arr};
if ( $status->{real_arrival} ) { if ( $status->{real_arrival} ) {
$exclude_before = $arr_epoch = $status->{real_arrival}->epoch; $exclude_before = $arr_epoch = $status->{real_arrival}->epoch;
$arr_countdown = $status->{arrival_countdown};
} }
} }
} }
@ -75,10 +76,12 @@ sub get_connecting_trains_p {
return $promise->reject; return $promise->reject;
} }
my $can_check_in = not $arr_epoch or ( $arr_countdown // 1 ) < 0;
$self->iris->get_departures_p( $self->iris->get_departures_p(
station => $eva, station => $eva,
lookbehind => 10, lookbehind => 10,
lookahead => 60, lookahead => $can_check_in ? 40 : ( ${arr_countdown} / 60 + 40 ),
with_related => 1 with_related => 1
)->then( )->then(
sub { sub {