summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2024-12-14 22:49:45 +0100
committerBirte Kristina Friesel <derf@finalrewind.org>2024-12-14 22:49:45 +0100
commita50cdf13d48e2ba9f040cbd1000accdc3b751cdf (patch)
tree32895154b151a5b6dc4b19792814958727eb598f
parent87637c4f37a798718e75b5b9d7fb08a6fc606349 (diff)
Journey: Add delay accessor
-rwxr-xr-xbin/dbris-m13
-rw-r--r--lib/Travel/Status/DE/DBRIS.pm2
-rw-r--r--lib/Travel/Status/DE/DBRIS/Journey.pm7
3 files changed, 17 insertions, 5 deletions
diff --git a/bin/dbris-m b/bin/dbris-m
index 9fa0990..733b35b 100755
--- a/bin/dbris-m
+++ b/bin/dbris-m
@@ -147,12 +147,19 @@ if ($json_output) {
}
if ( $opt{station} ) {
- my $max_line = max map { length( $_->line ) } $status->results;
- my $max_dest = max map { length( $_->dest_name ) } $status->results;
+ my $max_line = max map { length( $_->line ) } $status->results;
+ my $max_dest = max map { length( $_->dest_name ) } $status->results;
+ my $max_delay = max map { length( $_->delay // q{} ) } $status->results;
+
+ $max_delay += 1;
+
for my $result ( $status->results ) {
printf(
- "%s %${max_line}s %${max_dest}s %s\n",
+ "%s %s %${max_line}s %${max_dest}s %s\n",
$result->is_cancelled ? '--:--' : $result->dep->strftime('%H:%M'),
+ $result->delay
+ ? sprintf( "(%+${max_delay}d)", $result->delay )
+ : q{ } x ( $max_delay + 2 ),
$result->line,
$result->dest_name,
$result->platform // $result->sched_platform
diff --git a/lib/Travel/Status/DE/DBRIS.pm b/lib/Travel/Status/DE/DBRIS.pm
index a2bf311..d9dc0d5 100644
--- a/lib/Travel/Status/DE/DBRIS.pm
+++ b/lib/Travel/Status/DE/DBRIS.pm
@@ -50,7 +50,7 @@ sub new {
if ( my $eva = $conf{station} ) {
$req
- = "https://www.bahnhof.de/api/boards/departures?evaNumbers=${eva}&duration=60&stationCategory=1&locale=de&sortBy=TIME_SCHEDULE";
+ = "https://www.bahnhof.de/api/boards/departures?evaNumbers=${eva}&duration=60&stationCategory=1&locale=de&sortBy=TIME";
}
elsif ( my $gs = $conf{geoSearch} ) {
my $lat = $gs->{latitude};
diff --git a/lib/Travel/Status/DE/DBRIS/Journey.pm b/lib/Travel/Status/DE/DBRIS/Journey.pm
index df7eada..30026ca 100644
--- a/lib/Travel/Status/DE/DBRIS/Journey.pm
+++ b/lib/Travel/Status/DE/DBRIS/Journey.pm
@@ -9,7 +9,7 @@ use parent 'Class::Accessor';
our $VERSION = '0.01';
Travel::Status::DE::DBRIS::Journey->mk_ro_accessors(
- qw(type dep sched_dep rt_dep is_cancelled line stop_name stop_eva id admin_id journey_id sched_platform platform dest_name dest_eva route)
+ qw(type dep sched_dep rt_dep delay is_cancelled line stop_name stop_eva id admin_id journey_id sched_platform platform dest_name dest_eva route)
);
sub new {
@@ -40,6 +40,11 @@ sub new {
}
$ref->{dep} = $ref->{rt_dep} // $ref->{schd_dep};
+ if ( $ref->{sched_dep} and $ref->{rt_dep} ) {
+ $ref->{delay} = $ref->{rt_dep}->subtract_datetime( $ref->{sched_dep} )
+ ->in_units('minutes');
+ }
+
return $ref;
}