From aa1a5ed571f6a87f512f8afa706160d1dd9800f8 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sun, 3 Jan 2021 09:34:55 +0100 Subject: show "section A"-based wagon order if heuristic is unavailable --- lib/DBInfoscreen/Controller/Stationboard.pm | 9 +++++++-- lib/DBInfoscreen/Controller/Wagenreihung.pm | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm index b951ed8..b591208 100644 --- a/lib/DBInfoscreen/Controller/Stationboard.pm +++ b/lib/DBInfoscreen/Controller/Stationboard.pm @@ -539,6 +539,9 @@ sub render_train { if ($direction) { $departure->{direction} = $direction; } + elsif ( $platform_info->{direction} ) { + $departure->{direction} = 'a' . $platform_info->{direction}; + } return; }, @@ -678,7 +681,8 @@ sub render_train { dt_now => DateTime->now( time_zone => 'Europe/Berlin' ), station_name => $station_name, nav_link => - $self->url_for( 'station', station => $station_name)->query({detailed => $self->param('detailed')}), + $self->url_for( 'station', station => $station_name ) + ->query( { detailed => $self->param('detailed') } ), ); } )->wait; @@ -1237,7 +1241,8 @@ sub handle_result { or $template eq 'multi' ), force_mobile => ( $template eq 'app' ), - nav_link => $self->url_for( 'station', station => $station_name)->query({detailed => $self->param('detailed')}), + nav_link => $self->url_for( 'station', station => $station_name ) + ->query( { detailed => $self->param('detailed') } ), ); } return; diff --git a/lib/DBInfoscreen/Controller/Wagenreihung.pm b/lib/DBInfoscreen/Controller/Wagenreihung.pm index 219212a..11fd084 100644 --- a/lib/DBInfoscreen/Controller/Wagenreihung.pm +++ b/lib/DBInfoscreen/Controller/Wagenreihung.pm @@ -107,6 +107,25 @@ sub wagenreihung { ); } + if ( $exit_side and $exit_side =~ m{^a} ) { + if ( $wr->sections and defined $wr->direction ) { + my $section_0 = ( $wr->sections )[0]; + my $direction = $wr->direction; + if ( $section_0->name eq 'A' and $direction == 0 ) { + $exit_side =~ s{^a}{}; + } + elsif ( $section_0->name ne 'A' and $direction == 100 ) { + $exit_side =~ s{^a}{}; + } + else { + $exit_side = ( $exit_side eq 'ar' ) ? 'l' : 'r'; + } + } + else { + $exit_side = undef; + } + } + my $wref = { e => $exit_side ? substr( $exit_side, 0, 1 ) : '', tt => $wr->train_type, -- cgit v1.2.3