diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2022-10-29 15:25:31 +0200 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2022-10-29 15:25:31 +0200 | 
| commit | 148cf58c871ae28cfe3b2bcd806375f43f7791e7 (patch) | |
| tree | 43e39ea2b595c448babbec65d5f4533fb56b3a9c /lib/DBInfoscreen/Controller | |
| parent | daa8cc5a72bd10d732912595bf0ca2ad3bf167c4 (diff) | |
Use HAFAS utilization directly
Diffstat (limited to 'lib/DBInfoscreen/Controller')
| -rw-r--r-- | lib/DBInfoscreen/Controller/Stationboard.pm | 35 | 
1 files changed, 9 insertions, 26 deletions
| diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm index de1f5e5..5a8c44e 100644 --- a/lib/DBInfoscreen/Controller/Stationboard.pm +++ b/lib/DBInfoscreen/Controller/Stationboard.pm @@ -568,15 +568,12 @@ sub render_train {  	$self->render_later;  	my $wagonorder_req  = Mojo::Promise->new; -	my $utilization_req = Mojo::Promise->new;  	my $occupancy_req   = Mojo::Promise->new;  	my $stationinfo_req = Mojo::Promise->new;  	my $route_req       = Mojo::Promise->new; -	my @requests = ( -		$wagonorder_req,  $utilization_req, $occupancy_req, -		$stationinfo_req, $route_req -	); +	my @requests +	  = ( $wagonorder_req, $occupancy_req, $stationinfo_req, $route_req );  	if ( $departure->{wr_link} ) {  		$self->wagonorder->is_available_p( $result, $departure->{wr_link} ) @@ -595,30 +592,9 @@ sub render_train {  				return;  			}  		)->wait; - -		# Looks like utilization data is only available for long-distance trains -		# – and the few regional trains which also have wagon order data (e.g. -		# around Stuttgart). Funky. -		$self->marudor->get_train_utilization( train => $result )->then( -			sub { -				my ( $first, $second ) = @_; -				$departure->{utilization} = [ $first, $second ]; -				return; -			}, -			sub { -				$departure->{utilization} = undef; -				return; -			} -		)->finally( -			sub { -				$utilization_req->resolve; -				return; -			} -		)->wait;  	}  	else {  		$wagonorder_req->resolve; -		$utilization_req->resolve;  	}  	$self->marudor->get_efa_occupancy( @@ -702,6 +678,13 @@ sub render_train {  			$departure->{trip_id} = $journey->id; +			if ( my $load = $route_ts->{$station_name}{load} ) { +				if ( %{$load} ) { +					$departure->{utilization} +					  = [ $load->{FIRST}, $load->{SECOND} ]; +				} +			} +  			# If a train number changes on the way, IRIS routes are incomplete,  			# whereas HAFAS data has all stops -> merge HAFAS stops into IRIS  			# stops. This is a rare case, one point where it can be observed is | 
