summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2022-09-03 16:46:48 +0200
committerDaniel Friesel <derf@finalrewind.org>2022-09-03 16:46:48 +0200
commit2f2624a80a4ff2c007af16ce3cb1ffddf9c895cc (patch)
treeb80229d7ff77528dc61c52b3fac7638f69fd49de
parent6aca1692e49a87f5f3ea7b57648ce79f107cfc15 (diff)
get_connecting_trains: set lookahead to (expected arrival // now) + 40 minutes1.23.10
-rwxr-xr-xlib/Travelynx/Controller/Traveling.pm11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm
index 2108b62..ddb0cf1 100755
--- a/lib/Travelynx/Controller/Traveling.pm
+++ b/lib/Travelynx/Controller/Traveling.pm
@@ -8,8 +8,8 @@ use Mojo::Base 'Mojolicious::Controller';
use DateTime;
use DateTime::Format::Strptime;
use JSON;
-use List::Util qw(uniq min max);
-use List::UtilsBy qw(max_by uniq_by);
+use List::Util qw(uniq min max);
+use List::UtilsBy qw(max_by uniq_by);
use List::MoreUtils qw(first_index);
use Mojo::Promise;
use Text::CSV;
@@ -33,7 +33,7 @@ sub get_connecting_trains_p {
my ( $eva, $exclude_via, $exclude_train_id, $exclude_before );
my $now = $self->now->epoch;
- my ( $stationinfo, $arr_epoch, $arr_platform );
+ my ( $stationinfo, $arr_epoch, $arr_platform, $arr_countdown );
my $promise = Mojo::Promise->new;
@@ -55,6 +55,7 @@ sub get_connecting_trains_p {
$stationinfo = $status->{extra_data}{stationinfo_arr};
if ( $status->{real_arrival} ) {
$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;
}
+ my $can_check_in = not $arr_epoch or ( $arr_countdown // 1 ) < 0;
+
$self->iris->get_departures_p(
station => $eva,
lookbehind => 10,
- lookahead => 60,
+ lookahead => $can_check_in ? 40 : ( ${arr_countdown} / 60 + 40 ),
with_related => 1
)->then(
sub {