diff options
Diffstat (limited to 'lib')
| -rwxr-xr-x | lib/Travelynx/Controller/Traveling.pm | 12 | ||||
| -rw-r--r-- | lib/Travelynx/Helper/DBRIS.pm | 25 | 
2 files changed, 29 insertions, 8 deletions
| diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index 4e4a4ef..38a2fdf 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -594,13 +594,9 @@ sub geolocation {  	if ($dbris_service) {  		$self->render_later; -		Travel::Status::DE::DBRIS->new_p( -			promise    => 'Mojo::Promise', -			user_agent => Mojo::UserAgent->new, -			geoSearch  => { -				latitude  => $lat, -				longitude => $lon -			} +		$self->dbris->geosearch_p( +			latitude  => $lat, +			longitude => $lon  		)->then(  			sub {  				my ($dbris) = @_; @@ -2486,7 +2482,7 @@ sub edit_journey {  					uid  => $uid,  					db   => $db,  					id   => $journey->{id}, -					$key => $self->param($key) +					$key => $self->param($key),  				);  				if ($error) {  					last; diff --git a/lib/Travelynx/Helper/DBRIS.pm b/lib/Travelynx/Helper/DBRIS.pm index e8ef45b..4f95245 100644 --- a/lib/Travelynx/Helper/DBRIS.pm +++ b/lib/Travelynx/Helper/DBRIS.pm @@ -29,6 +29,31 @@ sub new {  	return bless( \%opt, $class );  } +sub geosearch_p { +	my ( $self, %opt ) = @_; +	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); +	} + +	return Travel::Status::DE::DBRIS->new_p( +		promise    => 'Mojo::Promise', +		user_agent => $agent, +		geoSearch  => \%opt, +	); +} +  sub get_station_id_p {  	my ( $self, $station_name ) = @_; | 
