summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2021-01-11 22:33:54 +0100
committerDaniel Friesel <derf@finalrewind.org>2021-01-11 22:33:54 +0100
commitfa21ea4bce78edbf3649d656b98d96f88b0b0aaf (patch)
tree1855ddf34c1ee70e5fcc7d521f3ecfccd119926e
parentdcdea4247b6457202ce746814ff44d249c32d8b5 (diff)
Wagonorder: refactor dbdb requests
-rw-r--r--lib/DBInfoscreen/Controller/Stationboard.pm2
-rw-r--r--lib/DBInfoscreen/Helper/Wagonorder.pm52
-rw-r--r--templates/_train_details.html.ep2
3 files changed, 14 insertions, 42 deletions
diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm
index 2eb7b12..85a94e5 100644
--- a/lib/DBInfoscreen/Controller/Stationboard.pm
+++ b/lib/DBInfoscreen/Controller/Stationboard.pm
@@ -775,7 +775,7 @@ sub render_train {
if ( $self->param('detailed') ) {
my $cycle_req = Mojo::Promise->new;
push( @requests, $cycle_req );
- $self->wagonorder->has_umlauf_p( $result->train_no )->then(
+ $self->wagonorder->has_cycle_p( $result->train_no )->then(
sub {
$departure->{has_cycle} = 1;
}
diff --git a/lib/DBInfoscreen/Helper/Wagonorder.pm b/lib/DBInfoscreen/Helper/Wagonorder.pm
index 5904d86..d303d18 100644
--- a/lib/DBInfoscreen/Helper/Wagonorder.pm
+++ b/lib/DBInfoscreen/Helper/Wagonorder.pm
@@ -57,12 +57,11 @@ sub is_available_p {
return $promise;
}
-sub has_umlauf_p {
- my ( $self, $train_no ) = @_;
+sub head_dbdb_p {
+ my ( $self, $url ) = @_;
my $promise = Mojo::Promise->new;
- my $url = "https://lib.finalrewind.org/dbdb/db_umlauf/${train_no}.png";
my $cache = $self->{main_cache};
if ( my $content = $cache->get($url) ) {
@@ -98,46 +97,19 @@ sub has_umlauf_p {
return $promise;
}
-sub check_wagonorder_p {
- my ( $self, $train_no, $wr_link ) = @_;
-
- my $promise = Mojo::Promise->new;
+sub has_cycle_p {
+ my ( $self, $train_no ) = @_;
- my $url
- = "https://lib.finalrewind.org/dbdb/has_wagonorder/${train_no}/${wr_link}";
- my $cache = $self->{main_cache};
+ return $self->head_dbdb_p(
+ "https://lib.finalrewind.org/dbdb/db_umlauf/${train_no}.png");
+}
- if ( my $content = $cache->get($url) ) {
- if ( $content eq 'y' ) {
- return $promise->resolve;
- }
- else {
- return $promise->reject;
- }
- }
+sub check_wagonorder_p {
+ my ( $self, $train_no, $wr_link ) = @_;
- $self->{user_agent}->request_timeout(5)->head_p( $url => $self->{header} )
- ->then(
- sub {
- my ($tx) = @_;
- if ( $tx->result->is_success ) {
- $cache->set( $url, 'y' );
- $promise->resolve;
- }
- else {
- $cache->set( $url, 'n' );
- $promise->reject;
- }
- return;
- }
- )->catch(
- sub {
- $cache->set( $url, 'n' );
- $promise->reject;
- return;
- }
- )->wait;
- return $promise;
+ return $self->head_dbdb_p(
+ "https://lib.finalrewind.org/dbdb/has_wagonorder/${train_no}/${wr_link}"
+ );
}
sub get_p {
diff --git a/templates/_train_details.html.ep b/templates/_train_details.html.ep
index 3a68c80..d55d3cb 100644
--- a/templates/_train_details.html.ep
+++ b/templates/_train_details.html.ep
@@ -229,7 +229,7 @@
</ul> <!-- mroute -->
% }
% if (param('detailed') and $departure->{has_cycle}) {
- <div><a href="https://lib.finalrewind.org/dbdb/db_umlauf/<%= $departure->{train_no} %>.png">Umlaufplan</a></div>
+ <div class="db-attr"><a href="https://lib.finalrewind.org/dbdb/db_umlauf/<%= $departure->{train_no} %>.png">Umlaufplan</a></div>
% }
% if (param('detailed') and $details->{commonAttr}) {
% if ($details->{attrVariants} and (not $details->{commonAttr}{vmax} or not $details->{commonAttr}{brakingPercentage})) {