diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2019-12-26 10:56:58 +0100 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2019-12-26 10:56:58 +0100 | 
| commit | cf28090a1cba71687b5166d6bc6cf4939e3e32a0 (patch) | |
| tree | de52f0ff11b21d859b24e5a6704e217454998214 /lib/DBInfoscreen | |
| parent | f52eb1cec0b5eb8d2ef901a73267394263b55fc6 (diff) | |
fix wagon order for wing trains2.4.1
Diffstat (limited to 'lib/DBInfoscreen')
| -rw-r--r-- | lib/DBInfoscreen/Controller/Stationboard.pm | 25 | 
1 files changed, 20 insertions, 5 deletions
| diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm index c3c720b..9ebaca4 100644 --- a/lib/DBInfoscreen/Controller/Stationboard.pm +++ b/lib/DBInfoscreen/Controller/Stationboard.pm @@ -102,11 +102,26 @@ sub log_api_access {  	return;  } -sub check_wagonorder { +sub check_wagonorder_with_wings {  	my ( $ua, $cache, $train, $wr_link ) = @_; +	if ( check_wagonorder( $ua, $cache, $train->train_no, $wr_link ) ) { +		return 1; +	} +	elsif ( $train->is_wing ) { +		my $wing = $train->wing_of; +		if ( check_wagonorder( $ua, $cache, $wing->train_no, $wr_link ) ) { +			return 1; +		} +	} +	return; +} + +sub check_wagonorder { +	my ( $ua, $cache, $train_no, $wr_link ) = @_; +  	my $url -	  = "https://lib.finalrewind.org/dbdb/has_wagonorder/${train}/${wr_link}"; +	  = "https://lib.finalrewind.org/dbdb/has_wagonorder/${train_no}/${wr_link}";  	if ( my $content = $cache->get($url) ) {  		return $content eq 'y' ? 1 : undef; @@ -972,9 +987,9 @@ sub handle_request {  				if (  					$departures[-1]{wr_link} -					and not check_wagonorder( -						$self->ua,         $self->app->cache_iris_main, -						$result->train_no, $departures[-1]{wr_link} +					and not check_wagonorder_with_wings( +						$self->ua, $self->app->cache_iris_main, +						$result,   $departures[-1]{wr_link}  					)  				  )  				{ | 
