summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlib/Travelynx/Controller/Traveling.pm12
-rw-r--r--lib/Travelynx/Helper/DBRIS.pm25
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 ) = @_;