Loading lib/DBInfoscreen/Controller/Stationboard.pm +45 −23 Original line number Diff line number Diff line Loading @@ -29,6 +29,20 @@ my %default = ( admode => 'deparr', ); sub class_to_product { my ( $self, $hafas ) = @_; my $bits = $hafas->get_active_service->{productbits}; my $ret; for my $i ( 0 .. $#{$bits} ) { $ret->{ 2**$i } = ref( $bits->[$i] ) eq 'ARRAY' ? $bits->[$i][0] : $bits->[$i]; } return $ret; } sub handle_no_results { my ( $self, $station, $data, $hafas ) = @_; Loading Loading @@ -490,6 +504,7 @@ sub handle_request { my ($status) = @_; my $data = { results => [ $status->results ], hafas => $hafas ? $status : undef, station_ds100 => ( $status->station ? $status->station->{ds100} : undef ), station_eva => ( Loading Loading @@ -1144,7 +1159,7 @@ sub train_details { $self->hafas->get_route_p(%opt)->then( sub { my ( $route, $journey ) = @_; my ( $route, $journey, $hafas_obj ) = @_; $res->{trip_id} = $journey->id; $res->{date} = $route->[0]{sched_dep} // $route->[0]{dep}; Loading @@ -1159,24 +1174,26 @@ sub train_details { if ( not defined $journey->class ) { $linetype = 'ext'; } elsif ( $journey->class <= 2 ) { else { my $prod = $self->class_to_product($hafas_obj)->{ $journey->class } // q{}; if ( $prod eq 'ice' or $prod eq 'ic_ec' ) { $linetype = 'fern'; } elsif ( $journey->class <= 8 ) { $linetype = 'bahn'; } elsif ( $journey->class <= 16 ) { elsif ( $prod eq 's' ) { $linetype = 'sbahn'; } elsif ( $journey->class == 32 ) { elsif ( $prod eq 'bus' ) { $linetype = 'bus'; } elsif ( $journey->class == 128 ) { elsif ( $prod eq 'u' ) { $linetype = 'ubahn'; } elsif ( $journey->class == 256 ) { elsif ( $prod eq 'tram' ) { $linetype = 'tram'; } } $res->{origin} = $journey->route_start; $res->{destination} = $journey->route_end; Loading Loading @@ -1313,6 +1330,7 @@ sub handle_result { my $callback = $self->param('callback'); my $via = $self->param('via'); my $hafas = $self->param('hafas'); my $hafas_obj = $data->{hafas}; my $now = DateTime->now( time_zone => 'Europe/Berlin' ); Loading Loading @@ -1360,6 +1378,9 @@ sub handle_result { } } my $class_to_product = $hafas_obj ? $self->class_to_product($hafas_obj) : {}; @results = $self->filter_results(@results); for my $result (@results) { Loading Loading @@ -1399,19 +1420,20 @@ sub handle_result { } } elsif ( $result->can('class') ) { if ( $result->class <= 2 ) { my $prod = $class_to_product->{ $result->class } // q{}; if ( $prod eq 'ice' or $prod eq 'ic_ec' ) { $linetype = 'fern'; } elsif ( $result->class == 16 ) { elsif ( $prod eq 's' ) { $linetype = 'sbahn'; } elsif ( $result->class == 32 ) { elsif ( $prod eq 'bus' ) { $linetype = 'bus'; } elsif ( $result->class == 128 ) { elsif ( $prod eq 'u' ) { $linetype = 'ubahn'; } elsif ( $result->class == 256 ) { elsif ( $prod eq 'tram' ) { $linetype = 'tram'; } } Loading lib/DBInfoscreen/Helper/HAFAS.pm +1 −1 Original line number Diff line number Diff line Loading @@ -144,7 +144,7 @@ sub get_route_p { $ret[-1]{isPast} = $station_is_past; } $promise->resolve( \@ret, $journey ); $promise->resolve( \@ret, $journey, $hafas ); return; } )->catch( Loading Loading
lib/DBInfoscreen/Controller/Stationboard.pm +45 −23 Original line number Diff line number Diff line Loading @@ -29,6 +29,20 @@ my %default = ( admode => 'deparr', ); sub class_to_product { my ( $self, $hafas ) = @_; my $bits = $hafas->get_active_service->{productbits}; my $ret; for my $i ( 0 .. $#{$bits} ) { $ret->{ 2**$i } = ref( $bits->[$i] ) eq 'ARRAY' ? $bits->[$i][0] : $bits->[$i]; } return $ret; } sub handle_no_results { my ( $self, $station, $data, $hafas ) = @_; Loading Loading @@ -490,6 +504,7 @@ sub handle_request { my ($status) = @_; my $data = { results => [ $status->results ], hafas => $hafas ? $status : undef, station_ds100 => ( $status->station ? $status->station->{ds100} : undef ), station_eva => ( Loading Loading @@ -1144,7 +1159,7 @@ sub train_details { $self->hafas->get_route_p(%opt)->then( sub { my ( $route, $journey ) = @_; my ( $route, $journey, $hafas_obj ) = @_; $res->{trip_id} = $journey->id; $res->{date} = $route->[0]{sched_dep} // $route->[0]{dep}; Loading @@ -1159,24 +1174,26 @@ sub train_details { if ( not defined $journey->class ) { $linetype = 'ext'; } elsif ( $journey->class <= 2 ) { else { my $prod = $self->class_to_product($hafas_obj)->{ $journey->class } // q{}; if ( $prod eq 'ice' or $prod eq 'ic_ec' ) { $linetype = 'fern'; } elsif ( $journey->class <= 8 ) { $linetype = 'bahn'; } elsif ( $journey->class <= 16 ) { elsif ( $prod eq 's' ) { $linetype = 'sbahn'; } elsif ( $journey->class == 32 ) { elsif ( $prod eq 'bus' ) { $linetype = 'bus'; } elsif ( $journey->class == 128 ) { elsif ( $prod eq 'u' ) { $linetype = 'ubahn'; } elsif ( $journey->class == 256 ) { elsif ( $prod eq 'tram' ) { $linetype = 'tram'; } } $res->{origin} = $journey->route_start; $res->{destination} = $journey->route_end; Loading Loading @@ -1313,6 +1330,7 @@ sub handle_result { my $callback = $self->param('callback'); my $via = $self->param('via'); my $hafas = $self->param('hafas'); my $hafas_obj = $data->{hafas}; my $now = DateTime->now( time_zone => 'Europe/Berlin' ); Loading Loading @@ -1360,6 +1378,9 @@ sub handle_result { } } my $class_to_product = $hafas_obj ? $self->class_to_product($hafas_obj) : {}; @results = $self->filter_results(@results); for my $result (@results) { Loading Loading @@ -1399,19 +1420,20 @@ sub handle_result { } } elsif ( $result->can('class') ) { if ( $result->class <= 2 ) { my $prod = $class_to_product->{ $result->class } // q{}; if ( $prod eq 'ice' or $prod eq 'ic_ec' ) { $linetype = 'fern'; } elsif ( $result->class == 16 ) { elsif ( $prod eq 's' ) { $linetype = 'sbahn'; } elsif ( $result->class == 32 ) { elsif ( $prod eq 'bus' ) { $linetype = 'bus'; } elsif ( $result->class == 128 ) { elsif ( $prod eq 'u' ) { $linetype = 'ubahn'; } elsif ( $result->class == 256 ) { elsif ( $prod eq 'tram' ) { $linetype = 'tram'; } } Loading
lib/DBInfoscreen/Helper/HAFAS.pm +1 −1 Original line number Diff line number Diff line Loading @@ -144,7 +144,7 @@ sub get_route_p { $ret[-1]{isPast} = $station_is_past; } $promise->resolve( \@ret, $journey ); $promise->resolve( \@ret, $journey, $hafas ); return; } )->catch( Loading