diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2025-10-23 07:14:38 +0200 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2025-10-23 07:14:38 +0200 |
commit | 2bf15fd34b9e47986c47ead1ed9cc1d64a3bce75 (patch) | |
tree | 946f1776f84fb2e95ca8fd390ae0f7c22e63a8fa | |
parent | b3b2d5a3abbeb7d4c82c8d45dcb7413188157c53 (diff) |
DBDB: Use proxy here as well
-rw-r--r-- | lib/Travelynx/Helper/DBDB.pm | 48 |
1 files changed, 38 insertions, 10 deletions
diff --git a/lib/Travelynx/Helper/DBDB.pm b/lib/Travelynx/Helper/DBDB.pm index a310aa3..13f1f50 100644 --- a/lib/Travelynx/Helper/DBDB.pm +++ b/lib/Travelynx/Helper/DBDB.pm @@ -61,9 +61,23 @@ sub has_wagonorder_p { } } - $self->{user_agent}->request_timeout(5) - ->get_p( $url => $self->{header} ) - ->then( + my $agent = $self->{user_agent}; + my $proxy; + if ( my @proxies = @{ $self->{service_config}{'bahn.de'}{proxies} // [] } ) + { + $proxy = $proxies[ int( rand( scalar @proxies ) ) ]; + } + elsif ( my $p = $self->{service_config}{'bahn.de'}{proxy} ) { + $proxy = $p; + } + + if ($proxy) { + $agent = Mojo::UserAgent->new; + $agent->proxy->http($proxy); + $agent->proxy->https($proxy); + } + + $agent->request_timeout(5)->get_p( $url => $self->{header} )->then( sub { my ($tx) = @_; if ( $tx->result->is_success ) { @@ -82,7 +96,7 @@ sub has_wagonorder_p { } return; } - )->catch( + )->catch( sub { my ($err) = @_; $self->{log}->debug("${debug_prefix}: n ($err)"); @@ -90,7 +104,7 @@ sub has_wagonorder_p { $promise->reject; return; } - )->wait; + )->wait; return $promise; } @@ -121,9 +135,23 @@ sub get_wagonorder_p { return $promise; } - $self->{user_agent}->request_timeout(5) - ->get_p( $url => $self->{header} ) - ->then( + my $agent = $self->{user_agent}; + my $proxy; + if ( my @proxies = @{ $self->{service_config}{'bahn.de'}{proxies} // [] } ) + { + $proxy = $proxies[ int( rand( scalar @proxies ) ) ]; + } + elsif ( my $p = $self->{service_config}{'bahn.de'}{proxy} ) { + $proxy = $p; + } + + if ($proxy) { + $agent = Mojo::UserAgent->new; + $agent->proxy->http($proxy); + $agent->proxy->https($proxy); + } + + $agent->request_timeout(5)->get_p( $url => $self->{header} )->then( sub { my ($tx) = @_; @@ -141,14 +169,14 @@ sub get_wagonorder_p { } return; } - )->catch( + )->catch( sub { my ($err) = @_; $self->{log}->debug("${debug_prefix}: error ${err}"); $promise->reject($err); return; } - )->wait; + )->wait; return $promise; } |