diff options
author | Daniel Friesel <derf@finalrewind.org> | 2018-10-27 07:32:37 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2018-10-27 07:32:37 +0200 |
commit | ddbe902384d0a33bc4aa4f57ccdb274cd90a9101 (patch) | |
tree | 1816d1100301fafadb00087bef02300e244fdfb8 | |
parent | 95cbc500ae6841ff552a7b299c127c0754fb3a23 (diff) |
departures: show next / most recent departures first
-rwxr-xr-x | index.pl | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -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}, |