Commute stats: count days, not journeys

This commit is contained in:
Daniel Friesel 2020-04-19 17:03:02 +02:00
parent 0a87135e35
commit 94ea5a089f
2 changed files with 26 additions and 23 deletions

View file

@ -534,36 +534,38 @@ sub commute {
); );
my %journeys_by_month; my %journeys_by_month;
my %count_by_month;
my $total = 0; my $total = 0;
my $prev_doy = 0;
for my $journey ( reverse @journeys ) { for my $journey ( reverse @journeys ) {
my $month = $journey->{rt_departure}->month; my $month = $journey->{rt_departure}->month;
if ( if (
$filter_type eq 'exact' (
and ( $journey->{to_name} eq $station $filter_type eq 'exact' and ( $journey->{to_name} eq $station
or $journey->{from_name} eq $station ) or $journey->{from_name} eq $station )
)
or (
$filter_type eq 'substring'
and ( $journey->{to_name} =~ m{\Q$station\E}
or $journey->{from_name} =~ m{\Q$station\E} )
)
or (
$filter_type eq 'regex'
and ( $journey->{to_name} =~ m{$station}
or $journey->{from_name} =~ m{$station} )
)
) )
{ {
push( @{ $journeys_by_month{$month} }, $journey ); push( @{ $journeys_by_month{$month} }, $journey );
$total++;
} my $doy = $journey->{rt_departure}->day_of_year;
elsif ( if ( $doy != $prev_doy ) {
$filter_type eq 'substring' $count_by_month{$month}++;
and ( $journey->{to_name} =~ m{\Q$station\E} $total++;
or $journey->{from_name} =~ m{\Q$station\E} ) }
)
{ $prev_doy = $doy;
push( @{ $journeys_by_month{$month} }, $journey );
$total++;
}
elsif (
$filter_type eq 'regex'
and ( $journey->{to_name} =~ m{$station}
or $journey->{from_name} =~ m{$station} )
)
{
push( @{ $journeys_by_month{$month} }, $journey );
$total++;
} }
} }
@ -575,6 +577,7 @@ sub commute {
template => 'commute', template => 'commute',
with_autocomplete => 1, with_autocomplete => 1,
journeys_by_month => \%journeys_by_month, journeys_by_month => \%journeys_by_month,
count_by_month => \%count_by_month,
total_journeys => $total, total_journeys => $total,
months => [ months => [
qw(Januar Februar März April Mai Juni Juli August September Oktober November Dezember) qw(Januar Februar März April Mai Juni Juli August September Oktober November Dezember)

View file

@ -75,7 +75,7 @@
% for my $i (0 .. $#{$months}) { % for my $i (0 .. $#{$months}) {
<tr> <tr>
<td><%= $months->[$i] %></td> <td><%= $months->[$i] %></td>
<td><%= scalar @{$journeys_by_month->{$i+1} // []} %></td> <td><%= $count_by_month->{$i+1} // 0 %></td>
</tr> </tr>
% } % }
</tbody> </tbody>