summaryrefslogtreecommitdiff
path: root/lib/Travelynx/Command/work.pm
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2025-12-27 18:42:42 +0100
committerBirte Kristina Friesel <derf@finalrewind.org>2025-12-27 18:42:42 +0100
commite9e06417cff8f42beb4debc9a90cb439f53e0bce (patch)
tree6e38b4689bd8d63eac31e518804666e5374b695e /lib/Travelynx/Command/work.pm
parent3acb1b379b9be3c1cc252d7a55f1ec34240e48f6 (diff)
DBRIS: show connections while still checked in
Diffstat (limited to 'lib/Travelynx/Command/work.pm')
-rw-r--r--lib/Travelynx/Command/work.pm54
1 files changed, 45 insertions, 9 deletions
diff --git a/lib/Travelynx/Command/work.pm b/lib/Travelynx/Command/work.pm
index 69e9bd2..35c90c2 100644
--- a/lib/Travelynx/Command/work.pm
+++ b/lib/Travelynx/Command/work.pm
@@ -190,16 +190,52 @@ sub run {
)->wait;
if ( $arr
- and $entry->{real_arr_ts}
- and $now->epoch - $entry->{real_arr_ts} > 900 )
+ and $entry->{real_arr_ts} )
{
- $self->app->checkout_p(
- station => $arr,
- force => 2,
- dep_eva => $dep,
- arr_eva => $arr,
- uid => $uid
- )->wait;
+ if ( $now->epoch - $entry->{real_arr_ts} > 900 ) {
+ $self->app->checkout_p(
+ station => $arr,
+ force => 2,
+ dep_eva => $dep,
+ arr_eva => $arr,
+ uid => $uid
+ )->wait;
+ }
+ elsif ( $entry->{real_arr_ts} - $now->epoch < 900 ) {
+ my @destinations
+ = $self->app->journeys->get_connection_targets(
+ uid => $uid,
+ backend_id => $entry->{backend_id},
+ eva => $arr,
+ exclude => $dep,
+ );
+ $self->app->dbris->get_connections_p(
+ station => $arr,
+ timestamp => $entry->{real_arr},
+ destinations => \@destinations
+ )->then(
+ sub {
+ my ($suggestions) = @_;
+ $self->app->in_transit->update_data(
+ uid => $uid,
+ train_id => $train_id,
+ data => {
+ connection_suggestions_dbris =>
+ $suggestions
+ },
+ );
+ return;
+ }
+ )->catch(
+ sub {
+ my ($err) = @_;
+ $self->app->log->debug(
+"work($uid) @ DBRIS $entry->{backend_name}: get_departures_p($arr): $err"
+ );
+ return;
+ }
+ )->wait;
+ }
}
};
if ($@) {