From a668150460042c299aa33fdc411b93313ef5a7bc Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 10 Dec 2019 21:27:23 +0100 Subject: only link to wagon order if the train has one --- lib/DBInfoscreen/Controller/Stationboard.pm | 35 +++++++++++++++++++++++++++++ templates/_train_details.html.ep | 2 +- templates/wagenreihung.html.ep | 14 +++--------- 3 files changed, 39 insertions(+), 12 deletions(-) diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm index 1935c25..79538a0 100644 --- a/lib/DBInfoscreen/Controller/Stationboard.pm +++ b/lib/DBInfoscreen/Controller/Stationboard.pm @@ -102,6 +102,29 @@ sub log_api_access { return; } +sub check_wagonorder { + my ( $ua, $cache, $train, $wr_link ) = @_; + + my $url + = "https://lib.finalrewind.org/dbdb/has_wagonorder/${train}/${wr_link}"; + + if ( my $content = $cache->get($url) ) { + return $content eq 'y' ? 1 : undef; + } + + $ua->request_timeout(2); + my $res = $ua->head($url)->result; + + if ( $res->is_error ) { + $cache->set( $url, 'n' ); + return; + } + else { + $cache->set( $url, 'y' ); + return 1; + } +} + sub hafas_json_req { my ( $ua, $cache, $url ) = @_; @@ -946,6 +969,18 @@ sub handle_request { [ $result->sched_route_post ] ) ]; + + if ( + $departures[-1]{wr_link} + and not check_wagonorder( + $self->ua, $self->app->cache_iris_main, + $result->train_no, $departures[-1]{wr_link} + ) + ) + { + $departures[-1]{wr_link} = undef; + } + my ( $route_ts, $route_info ) = get_route_timestamps( $self->ua, $self->app->cache_iris_main, diff --git a/templates/_train_details.html.ep b/templates/_train_details.html.ep index 5bff90f..44cf01d 100644 --- a/templates/_train_details.html.ep +++ b/templates/_train_details.html.ep @@ -73,7 +73,7 @@ % } % } -% if (($linetype eq 'fern' or $linetype eq 'ext') and $departure->{wr_link}) { +% if ($departure->{wr_link}) {
Wagenreihung
diff --git a/templates/wagenreihung.html.ep b/templates/wagenreihung.html.ep index ce028d3..fd20196 100644 --- a/templates/wagenreihung.html.ep +++ b/templates/wagenreihung.html.ep @@ -14,19 +14,11 @@ %= join( ' / ', map { $_->{name} } $wr->destinations ) <%= $wr->station_name %> Gleis <%= $wr->platform %>
- Zugtyp: <%= $wr->train_subtype // 'IC?' %> + % if ($wr->train_type =~ m{^IC|EC}) { + Zugtyp: <%= $wr->train_subtype // 'IC?' %> + % } -% if ($wr->train_type ne 'ICE') { -
-
- ⚠ Keine zuverlässigen Daten vorhanden. - IC/EC-Wagenreihungen werden vom Backend noch nicht offiziell unterstützt. - Sowohl die hier angegebenen Daten als auch die am Bahnsteig angezeigte - Wagenreihung können fehlerhaft sein. -
-
-% }
% if (not $wr->has_bad_wagons) { -- cgit v1.2.3