From ddbe902384d0a33bc4aa4f57ccdb274cd90a9101 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sat, 27 Oct 2018 07:32:37 +0200 Subject: [PATCH] departures: show next / most recent departures first --- index.pl | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/index.pl b/index.pl index 90fb660..3809d20 100755 --- a/index.pl +++ b/index.pl @@ -213,7 +213,7 @@ sub get_departures { lookbehind => 20, datetime => DateTime->now( time_zone => 'Europe/Berlin' ) ->subtract( minutes => $lookbehind ), - lookahead => $lookbehind + 20, + lookahead => $lookbehind + 10, ); return { results => [ $status->results ], @@ -700,10 +700,13 @@ get '/*station' => sub { $self->render( 'landingpage', error => $status->{errstr} ); } else { - my @results = sort { $a->line cmp $b->line } @{ $status->{results} }; - # You can't check into a train which terminates here - @results = grep { $_->departure } @results; + my @results = grep { $_->departure } @{ $status->{results} }; + + @results = map { $_->[0] } + sort { $b->[1] <=> $a->[1] } + map { [$_, $_->sched_departure->epoch // $_->departure->epoch] } @results; + $self->render( 'departures', ds100 => $status->{station_ds100},