diff options
Diffstat (limited to 'lib/DBInfoscreen')
-rw-r--r-- | lib/DBInfoscreen/Controller/Stationboard.pm | 21 | ||||
-rw-r--r-- | lib/DBInfoscreen/Helper/Wagonorder.pm | 2 |
2 files changed, 18 insertions, 5 deletions
diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm index 85a94e5..c73fe1a 100644 --- a/lib/DBInfoscreen/Controller/Stationboard.pm +++ b/lib/DBInfoscreen/Controller/Stationboard.pm @@ -10,7 +10,7 @@ use DateTime; use DateTime::Format::Strptime; use Encode qw(decode encode); use File::Slurp qw(read_file write_file); -use List::Util qw(max); +use List::Util qw(max uniq); use List::MoreUtils qw(); use Mojo::JSON qw(decode_json); use Mojo::Promise; @@ -789,6 +789,20 @@ sub render_train { return; } )->wait; + $departure->{composition} + = $self->app->train_details_db->{ $departure->{train_no} }; + my @cycle_from; + my @cycle_to; + for my $cycle ( values %{ $departure->{composition}->{cycle} // {} } ) { + push( @cycle_from, @{ $cycle->{from} // [] } ); + push( @cycle_to, @{ $cycle->{to} // [] } ); + } + @cycle_from = sort { $a <=> $b } uniq @cycle_from; + @cycle_to = sort { $a <=> $b } uniq @cycle_to; + $departure->{cycle_from} + = [ map { [ $_, $self->app->train_details_db->{$_} ] } @cycle_from ]; + $departure->{cycle_to} + = [ map { [ $_, $self->app->train_details_db->{$_} ] } @cycle_to ]; } # Defer rendering until all requests have completed @@ -799,9 +813,8 @@ sub render_train { departure => $departure, linetype => $linetype, icetype => $self->app->ice_type_map->{ $departure->{train_no} }, - details => - $self->app->train_details_db->{ $departure->{train_no} }, - dt_now => DateTime->now( time_zone => 'Europe/Berlin' ), + details => $departure->{composition} // {}, + dt_now => DateTime->now( time_zone => 'Europe/Berlin' ), station_name => $station_name, nav_link => $self->url_for( 'station', station => $station_name ) diff --git a/lib/DBInfoscreen/Helper/Wagonorder.pm b/lib/DBInfoscreen/Helper/Wagonorder.pm index d303d18..1bbcf5f 100644 --- a/lib/DBInfoscreen/Helper/Wagonorder.pm +++ b/lib/DBInfoscreen/Helper/Wagonorder.pm @@ -101,7 +101,7 @@ sub has_cycle_p { my ( $self, $train_no ) = @_; return $self->head_dbdb_p( - "https://lib.finalrewind.org/dbdb/db_umlauf/${train_no}.png"); + "https://lib.finalrewind.org/dbdb/db_umlauf/${train_no}.svg"); } sub check_wagonorder_p { |