diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2025-02-09 14:26:12 +0100 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2025-02-09 14:26:12 +0100 |
commit | e0843d60c0583992da6e66c7507792ff6faee719 (patch) | |
tree | 237e8ceba5ed9a35da91f7ef1fb23fba1c90a7af | |
parent | 0478d409f4d797fee9f2f1f49007c17b121f2a91 (diff) |
Prepare for PKP support (needs a separate UserAgent instance)
-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) = @_; |