summaryrefslogtreecommitdiff
path: root/lib/DBInfoscreen
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2024-01-05 01:14:58 +0100
committerBirte Kristina Friesel <derf@finalrewind.org>2024-01-05 01:14:58 +0100
commite39d7356cfa67fae4c629dd048824125df7114f4 (patch)
tree0151581aebf2034421903651a7babfabd27f6552 /lib/DBInfoscreen
parente7f61e2f0486b3ce891d577907300c7d2f7f1a2e (diff)
/z/:train: Add support for date=DD.MM.[YYYY] parameter
Diffstat (limited to 'lib/DBInfoscreen')
-rw-r--r--lib/DBInfoscreen/Controller/Stationboard.pm17
-rw-r--r--lib/DBInfoscreen/Helper/HAFAS.pm2
2 files changed, 18 insertions, 1 deletions
diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm
index 23a6ee2..11f499b 100644
--- a/lib/DBInfoscreen/Controller/Stationboard.pm
+++ b/lib/DBInfoscreen/Controller/Stationboard.pm
@@ -1161,6 +1161,23 @@ sub train_details {
$opt{language} = 'en';
}
+ if ( my $date = $self->param('date') ) {
+ if ( $date
+ =~ m{ ^ (?<day> \d{1,2} ) [.] (?<month> \d{1,2} ) [.] (?<year> \d{4})? $ }x
+ )
+ {
+ $opt{datetime} = DateTime->now( time_zone => 'Europe/Berlin' );
+ $opt{datetime}->set(
+ day => $+{day},
+ month => $+{month}
+ );
+ if ( $+{year} ) {
+ $opt{datetime}->set( year => $+{year} );
+ }
+ say "set $opt{datetime}";
+ }
+ }
+
$self->stash( hide_opts => 1 );
$self->render_later;
diff --git a/lib/DBInfoscreen/Helper/HAFAS.pm b/lib/DBInfoscreen/Helper/HAFAS.pm
index 1b9226d..525cc45 100644
--- a/lib/DBInfoscreen/Helper/HAFAS.pm
+++ b/lib/DBInfoscreen/Helper/HAFAS.pm
@@ -58,7 +58,7 @@ sub get_route_timestamps_p {
$hafas_promise //= Travel::Status::DE::HAFAS->new_p(
journeyMatch => $opt{train_req} =~ s{^- }{}r,
- datetime => ( $opt{train} ? $opt{train}->start : undef ),
+ datetime => ( $opt{train} ? $opt{train}->start : $opt{datetime} ),
language => $opt{language},
cache => $self->{realtime_cache},
promise => 'Mojo::Promise',