diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/DBInfoscreen/Controller/Stationboard.pm | 6 | ||||
| -rw-r--r-- | lib/DBInfoscreen/Helper/HAFAS.pm | 23 | 
2 files changed, 22 insertions, 7 deletions
| diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm index cfd949b..b33d865 100644 --- a/lib/DBInfoscreen/Controller/Stationboard.pm +++ b/lib/DBInfoscreen/Controller/Stationboard.pm @@ -79,7 +79,7 @@ sub handle_no_results {  			locationSearch => $station,  			service        => $service,  			promise        => 'Mojo::Promise', -			user_agent     => $self->ua, +			user_agent => $service eq 'PKP' ? Mojo::UserAgent->new : $self->ua,  		)->then(  			sub {  				my ($status) = @_; @@ -407,7 +407,7 @@ sub get_results_p {  				agent   => 'dbf.finalrewind.org/2'  			},  			promise    => 'Mojo::Promise', -			user_agent => $self->ua, +			user_agent => $service eq 'PKP' ? Mojo::UserAgent->new : $self->ua,  		);  	} @@ -2424,7 +2424,7 @@ sub stations_by_coordinates {  	Travel::Status::DE::HAFAS->new_p(  		promise    => 'Mojo::Promise', -		user_agent => $self->ua, +		user_agent => $service eq 'PKP' ? Mojo::UserAgent->new : $self->ua,  		service    => $service,  		geoSearch  => {  			lat => $lat, diff --git a/lib/DBInfoscreen/Helper/HAFAS.pm b/lib/DBInfoscreen/Helper/HAFAS.pm index fe0caa5..6c38973 100644 --- a/lib/DBInfoscreen/Helper/HAFAS.pm +++ b/lib/DBInfoscreen/Helper/HAFAS.pm @@ -13,6 +13,7 @@ use Encode qw(decode encode);  use Travel::Status::DE::HAFAS;  use Mojo::JSON qw(decode_json);  use Mojo::Promise; +use Mojo::UserAgent;  sub new {  	my ( $class, %opt ) = @_; @@ -48,6 +49,13 @@ sub get_route_p {  	my $hafas_promise; +	my $agent = $self->{user_agent}; +	if ( $opt{service} and $opt{service} eq 'PKP' ) { + +		# PKP needs proxying +		$agent = Mojo::UserAgent->new; +	} +  	if ( $opt{trip_id} ) {  		$hafas_promise = Travel::Status::DE::HAFAS->new_p(  			service => $opt{service} // 'VRN', @@ -57,7 +65,7 @@ sub get_route_p {  			language   => $opt{language},  			cache      => $self->{realtime_cache},  			promise    => 'Mojo::Promise', -			user_agent => $self->{user_agent}->request_timeout(10) +			user_agent => $agent->request_timeout(10)  		);  	}  	elsif ( $opt{train} ) { @@ -75,7 +83,7 @@ sub get_route_p {  		language     => $opt{language},  		cache        => $self->{realtime_cache},  		promise      => 'Mojo::Promise', -		user_agent   => $self->{user_agent}->request_timeout(10) +		user_agent   => $agent->request_timeout(10)  	)->then(  		sub {  			my ($hafas) = @_; @@ -107,7 +115,7 @@ sub get_route_p {  				language   => $opt{language},  				cache      => $self->{realtime_cache},  				promise    => 'Mojo::Promise', -				user_agent => $self->{user_agent}->request_timeout(10) +				user_agent => $agent->request_timeout(10)  			);  		}  	); @@ -269,6 +277,13 @@ sub get_polyline_p {  	my $service = $opt{service} // 'VRN';  	my $promise = Mojo::Promise->new; +	my $agent = $self->{user_agent}; +	if ( $opt{service} and $opt{service} eq 'PKP' ) { + +		# PKP needs proxying +		$agent = Mojo::UserAgent->new; +	} +  	Travel::Status::DE::HAFAS->new_p(  		service => $service,  		journey => { @@ -278,7 +293,7 @@ sub get_polyline_p {  		with_polyline => 1,  		cache         => $self->{realtime_cache},  		promise       => 'Mojo::Promise', -		user_agent    => $self->{user_agent}->request_timeout(10) +		user_agent    => $agent->request_timeout(10)  	)->then(  		sub {  			my ($hafas) = @_; | 
