diff options
Diffstat (limited to 'lib/Travelynx/Helper/DBDB.pm')
-rw-r--r-- | lib/Travelynx/Helper/DBDB.pm | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/lib/Travelynx/Helper/DBDB.pm b/lib/Travelynx/Helper/DBDB.pm index 4baf3ed..b98a372 100644 --- a/lib/Travelynx/Helper/DBDB.pm +++ b/lib/Travelynx/Helper/DBDB.pm @@ -1,6 +1,6 @@ package Travelynx::Helper::DBDB; -# Copyright (C) 2020 Daniel Friesel +# Copyright (C) 2020-2023 Birte Kristina Friesel # # SPDX-License-Identifier: AGPL-3.0-or-later @@ -30,11 +30,11 @@ sub has_wagonorder_p { my ( $self, $ts, $train_no ) = @_; my $api_ts = $ts->strftime('%Y%m%d%H%M'); my $url - = "https://lib.finalrewind.org/dbdb/has_wagonorder/${train_no}/${api_ts}"; + = "https://ist-wr.noncd.db.de/wagenreihung/1.0/${train_no}/${api_ts}"; my $cache = $self->{cache}; my $promise = Mojo::Promise->new; - if ( my $content = $cache->get($url) ) { + if ( my $content = $cache->get("HEAD $url") ) { if ( $content eq 'n' ) { return $promise->reject; } @@ -43,24 +43,23 @@ sub has_wagonorder_p { } } - $self->{user_agent}->request_timeout(5)->get_p( $url => $self->{header} ) + $self->{user_agent}->request_timeout(5)->head_p( $url => $self->{header} ) ->then( sub { my ($tx) = @_; if ( $tx->result->is_success ) { - my $body = $tx->result->body; - $cache->set( $url, $body ); - $promise->resolve($body); + $cache->set( "HEAD $url", 'a' ); + $promise->resolve('a'); } else { - $cache->set( $url, 'n' ); + $cache->set( "HEAD $url", 'n' ); $promise->reject; } return; } )->catch( sub { - $cache->set( $url, 'n' ); + $cache->set( "HEAD $url", 'n' ); $promise->reject; return; } @@ -74,11 +73,6 @@ sub get_wagonorder_p { my $url = "https://ist-wr.noncd.db.de/wagenreihung/1.0/${train_no}/${api_ts}"; - if ( $api !~ m{i} and $api =~ m{a} ) { - $url - = "https://www.apps-bahn.de/wr/wagenreihung/1.0/${train_no}/${api_ts}"; - } - my $cache = $self->{cache}; my $promise = Mojo::Promise->new; @@ -91,11 +85,17 @@ sub get_wagonorder_p { ->then( sub { my ($tx) = @_; - my $body = decode( 'utf-8', $tx->res->body ); - my $json = JSON->new->decode($body); - $cache->freeze( $url, $json ); - $promise->resolve($json); + if ( $tx->result->is_success ) { + my $body = decode( 'utf-8', $tx->res->body ); + my $json = JSON->new->decode($body); + $cache->freeze( $url, $json ); + $promise->resolve($json); + } + else { + my $code = $tx->code; + $promise->reject("HTTP ${code}"); + } return; } )->catch( |