diff options
| author | Birte Kristina Friesel <derf@finalrewind.org> | 2025-10-24 21:08:25 +0200 |
|---|---|---|
| committer | Birte Kristina Friesel <derf@finalrewind.org> | 2025-10-24 21:08:25 +0200 |
| commit | c450f7d9bb541855102fb67b6719d2656002d8d0 (patch) | |
| tree | 2f08385ea43d1577d570376669f9b7e5b37ea45e /lib/Travelynx | |
| parent | a083884d256e42404c4a5538de8e0b502b907e1c (diff) | |
move geosearch into dbris helper; enable proxies
Diffstat (limited to 'lib/Travelynx')
| -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 ) = @_; |
