diff options
author | Daniel Friesel <derf@finalrewind.org> | 2020-10-11 12:04:33 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2020-10-11 12:04:33 +0200 |
commit | b6330217f086360d865163e29285ea2bf6c79320 (patch) | |
tree | b61c7e8d27f57fa1c4d0cec3cb849e28db975d75 /lib/Travelynx | |
parent | fffe8dcdfa0f5110b0b279e6d9989fbcea853cad (diff) |
calculate tripid from trainsearch.exe.
Removes the need for an additional transport.rest request.
Diffstat (limited to 'lib/Travelynx')
-rw-r--r-- | lib/Travelynx/Helper/HAFAS.pm | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/lib/Travelynx/Helper/HAFAS.pm b/lib/Travelynx/Helper/HAFAS.pm index fbca740..5253a4e 100644 --- a/lib/Travelynx/Helper/HAFAS.pm +++ b/lib/Travelynx/Helper/HAFAS.pm @@ -111,95 +111,6 @@ sub get_polyline_p { return $promise; } -sub get_tripid_p { - my ( $self, $train ) = @_; - - my $promise = Mojo::Promise->new; - my $cache = $self->{main_cache}; - my $eva = $train->station_uic; - - my $dep_ts = DateTime->now( time_zone => 'Europe/Berlin' ); - my $url - = "https://2.db.transport.rest/stations/${eva}/departures?duration=5&when=$dep_ts"; - - if ( $train->sched_departure ) { - $dep_ts = $train->sched_departure->epoch; - $url - = "https://2.db.transport.rest/stations/${eva}/departures?duration=5&when=$dep_ts"; - } - elsif ( $train->sched_arrival ) { - $dep_ts = $train->sched_arrival->epoch; - $url - = "https://2.db.transport.rest/stations/${eva}/arrivals?duration=5&when=$dep_ts"; - } - - $self->get_rest_p($url)->then( - sub { - my ($json) = @_; - - for my $result ( @{$json} ) { - if ( $result->{line} - and $result->{line}{fahrtNr} == $train->train_no ) - { - my $trip_id = $result->{tripId}; - $promise->resolve($trip_id); - return; - } - } - $promise->reject( 'hafas->get_tripid_p: train ' - . $train->train_no - . ' not found' ); - return; - } - )->catch( - sub { - my ($err) = @_; - $promise->reject($err); - return; - } - )->wait; - - return $promise; -} - -sub get_rest_p { - my ( $self, $url ) = @_; - - my $cache = $self->{main_cache}; - my $promise = Mojo::Promise->new; - - if ( my $content = $cache->thaw($url) ) { - return $promise->resolve($content); - } - - $self->{user_agent}->request_timeout(5)->get_p( $url => $self->{header} ) - ->then( - sub { - my ($tx) = @_; - - if ( my $err = $tx->error ) { - $promise->reject( -"hafas->get_rest_p($url) returned HTTP $err->{code} $err->{message}" - ); - return; - } - - my $json = JSON->new->decode( $tx->res->body ); - $cache->freeze( $url, $json ); - $promise->resolve($json); - return; - } - )->catch( - sub { - my ($err) = @_; - $self->{log}->info("hafas->get_rest_p($url): $err"); - $promise->reject("hafas->get_rest_p($url): $err"); - return; - } - )->wait; - return $promise; -} - sub get_json_p { my ( $self, $url ) = @_; |