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 /lib/Travelynx | |
| parent | b3b2d5a3abbeb7d4c82c8d45dcb7413188157c53 (diff) | |
DBDB: Use proxy here as well
Diffstat (limited to 'lib/Travelynx')
| -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;  } | 
