diff options
author | Daniel Friesel <derf@finalrewind.org> | 2019-03-20 18:33:51 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2019-03-20 18:33:51 +0100 |
commit | 0a9d2e4c88f46fb8f5ea91009b16c84403d546e2 (patch) | |
tree | 0454dd9c02205a00d537d24ac9d76e3ef1f9bfe4 | |
parent | 2366b193fef9f0118d08071f564a446733dcfb33 (diff) |
journey: show average speed
-rwxr-xr-x | index.pl | 31 | ||||
-rw-r--r-- | templates/journey.html.ep | 15 |
2 files changed, 38 insertions, 8 deletions
@@ -877,6 +877,31 @@ helper 'get_user_travels' => sub { push( @parsed_messages, [ epoch_to_dt($ts), $msg ] ); } $ref->{messages} = [ reverse @parsed_messages ]; + $ref->{sched_duration} + = $ref->{sched_arrival} + ? $ref->{sched_arrival}->epoch + - $ref->{sched_departure}->epoch + : undef; + $ref->{rt_duration} + = $ref->{rt_arrival} + ? $ref->{rt_arrival}->epoch - $ref->{rt_departure}->epoch + : undef; + $ref->{km_route} + = $self->get_travel_distance( $ref->{from_name}, + $ref->{to_name}, $ref->{route} ); + $ref->{km_beeline} + = $self->get_travel_distance( $ref->{from_name}, + $ref->{to_name}, [ $ref->{from_name}, $ref->{to_name} ] ); + $ref->{kmh_route} + = $ref->{km_route} + / ( + ( $ref->{rt_duration} // $ref->{sched_duration} // 999999 ) + / 3600 ); + $ref->{kmh_beeline} + = $ref->{km_beeline} + / ( + ( $ref->{rt_duration} // $ref->{sched_duration} // 999999 ) + / 3600 ); } if ( $opt{checkin_epoch} and $action == $action_type{cancelled_from} ) @@ -1117,9 +1142,9 @@ get '/api/v0/:action/:token' => sub { line => $status->{train_line}, no => $status->{train_no}, }, - actionTime => $status->{timestamp}->epoch, - scheduledTime => $status->{sched_ts}->epoch, - realTime => $status->{real_ts}->epoch, + actionTime => $status->{timestamp}->epoch, + scheduledTime => $status->{sched_ts}->epoch, + realTime => $status->{real_ts}->epoch, }, ); } diff --git a/templates/journey.html.ep b/templates/journey.html.ep index a9c0c0b..4050e61 100644 --- a/templates/journey.html.ep +++ b/templates/journey.html.ep @@ -78,12 +78,17 @@ <tr> <th scope="row">Entfernung</th> <td> - % my $distance = get_travel_distance($journey->{from_name}, $journey->{to_name}, $journey->{route}); - % my $beeline = get_travel_distance($journey->{from_name}, $journey->{to_name}, [$journey->{from_name}, $journey->{to_name}]); - % if ($distance > 0.1) { - ca. <%= sprintf('%.f', $distance) %> km + % if ($journey->{km_route} > 0.1) { + ca. <%= sprintf('%.f', $journey->{km_route}) %> km % } - (Luftlinie: <%= sprintf('%.f', $beeline) %> km) + (Luftlinie: <%= sprintf('%.f', $journey->{km_beeline}) %> km) + </td> + </tr> + <tr> + <th scope="row">Geschwindigkeit</th> + <td> + ∅ <%= sprintf('%.f', $journey->{kmh_route}) %> km/h + (<%= sprintf('%.f', $journey->{kmh_beeline}) %> km/h) </td> </tr> <tr> |