summaryrefslogtreecommitdiff
path: root/lib/Travelynx/Helper/DBDB.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Travelynx/Helper/DBDB.pm')
-rw-r--r--lib/Travelynx/Helper/DBDB.pm36
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(