summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2025-02-09 14:26:12 +0100
committerBirte Kristina Friesel <derf@finalrewind.org>2025-02-09 14:26:12 +0100
commite0843d60c0583992da6e66c7507792ff6faee719 (patch)
tree237e8ceba5ed9a35da91f7ef1fb23fba1c90a7af
parent0478d409f4d797fee9f2f1f49007c17b121f2a91 (diff)
Prepare for PKP support (needs a separate UserAgent instance)
-rw-r--r--lib/DBInfoscreen/Controller/Stationboard.pm6
-rw-r--r--lib/DBInfoscreen/Helper/HAFAS.pm23
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) = @_;