summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-03-20 18:33:51 +0100
committerDaniel Friesel <derf@finalrewind.org>2019-03-20 18:33:51 +0100
commit0a9d2e4c88f46fb8f5ea91009b16c84403d546e2 (patch)
tree0454dd9c02205a00d537d24ac9d76e3ef1f9bfe4
parent2366b193fef9f0118d08071f564a446733dcfb33 (diff)
journey: show average speed
-rwxr-xr-xindex.pl31
-rw-r--r--templates/journey.html.ep15
2 files changed, 38 insertions, 8 deletions
diff --git a/index.pl b/index.pl
index de1fc08..0cc6d14 100755
--- a/index.pl
+++ b/index.pl
@@ -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>