Loading lib/DBInfoscreen/Controller/Stationboard.pm +86 −57 Original line number Diff line number Diff line Loading @@ -1491,8 +1491,14 @@ sub handle_result { } if ( $template eq 'json' ) { my @json_route = $self->json_route_diff( [ $result->route ], [ $result->sched_route ] ); my @json_route; if ( $result->can('sched_route') ) { @json_route = $self->json_route_diff( [ $result->route ], [ $result->sched_route ] ); } else { @json_route = map { $_->TO_JSON } $result->route; } if ( $apiver eq '1' or $apiver eq '2' ) { Loading @@ -1508,63 +1514,86 @@ sub handle_result { return; } else { # apiver == 3 my ( $delay_arr, $delay_dep, $sched_arr, $sched_dep ); if ( $result->arrival ) { $delay_arr = $result->arrival->subtract_datetime( $result->sched_arrival )->in_units('minutes'); } if ( $result->departure ) { $delay_dep = $result->departure->subtract_datetime( $result->sched_departure )->in_units('minutes'); } if ( $result->sched_arrival ) { $sched_arr = $result->sched_arrival->strftime('%H:%M'); if ( $result->isa('Travel::Status::DE::IRIS::Result') ) { my ( $delay_arr, $delay_dep, $sched_arr, $sched_dep ); if ( $result->arrival ) { $delay_arr = $result->arrival->subtract_datetime( $result->sched_arrival )->in_units('minutes'); } if ( $result->departure ) { $delay_dep = $result->departure->subtract_datetime( $result->sched_departure )->in_units('minutes'); } if ( $result->sched_arrival ) { $sched_arr = $result->sched_arrival->strftime('%H:%M'); } if ( $result->sched_departure ) { $sched_dep = $result->sched_departure->strftime('%H:%M'); } push( @departures, { delayArrival => $delay_arr, delayDeparture => $delay_dep, destination => $result->destination, isCancelled => $result->is_cancelled, messages => { delay => [ map { { timestamp => $_->[0], text => $_->[1] } } $result->delay_messages ], qos => [ map { { timestamp => $_->[0], text => $_->[1] } } $result->qos_messages ], }, missingRealtime => ( ( not $result->has_realtime and $result->start < $now ) ? \1 : \0 ), platform => $result->platform, route => \@json_route, scheduledPlatform => $result->sched_platform, scheduledArrival => $sched_arr, scheduledDeparture => $sched_dep, train => $result->train, trainClasses => [ $result->classes ], trainNumber => $result->train_no, via => [ $result->route_interesting(3) ], } ); } if ( $result->sched_departure ) { $sched_dep = $result->sched_departure->strftime('%H:%M'); else { push( @departures, { delay => $result->delay, direction => $result->direction, destination => $result->destination, isCancelled => $result->is_cancelled, messages => [ $result->messages ], platform => $result->platform, route => \@json_route, scheduledPlatform => $result->sched_platform, scheduledTime => $result->sched_datetime->epoch, time => $result->datetime->epoch, train => $result->line, trainNumber => $result->number, via => [ $result->route_interesting(3) ], } ); } push( @departures, { delayArrival => $delay_arr, delayDeparture => $delay_dep, destination => $result->destination, isCancelled => $result->is_cancelled, messages => { delay => [ map { { timestamp => $_->[0], text => $_->[1] } } $result->delay_messages ], qos => [ map { { timestamp => $_->[0], text => $_->[1] } } $result->qos_messages ], }, missingRealtime => ( ( not $result->has_realtime and $result->start < $now ) ? \1 : \0 ), platform => $result->platform, route => \@json_route, scheduledPlatform => $result->sched_platform, scheduledArrival => $sched_arr, scheduledDeparture => $sched_dep, train => $result->train, trainClasses => [ $result->classes ], trainNumber => $result->train_no, via => [ $result->route_interesting(3) ], } ); } } elsif ( $template eq 'text' ) { Loading Loading
lib/DBInfoscreen/Controller/Stationboard.pm +86 −57 Original line number Diff line number Diff line Loading @@ -1491,8 +1491,14 @@ sub handle_result { } if ( $template eq 'json' ) { my @json_route = $self->json_route_diff( [ $result->route ], [ $result->sched_route ] ); my @json_route; if ( $result->can('sched_route') ) { @json_route = $self->json_route_diff( [ $result->route ], [ $result->sched_route ] ); } else { @json_route = map { $_->TO_JSON } $result->route; } if ( $apiver eq '1' or $apiver eq '2' ) { Loading @@ -1508,63 +1514,86 @@ sub handle_result { return; } else { # apiver == 3 my ( $delay_arr, $delay_dep, $sched_arr, $sched_dep ); if ( $result->arrival ) { $delay_arr = $result->arrival->subtract_datetime( $result->sched_arrival )->in_units('minutes'); } if ( $result->departure ) { $delay_dep = $result->departure->subtract_datetime( $result->sched_departure )->in_units('minutes'); } if ( $result->sched_arrival ) { $sched_arr = $result->sched_arrival->strftime('%H:%M'); if ( $result->isa('Travel::Status::DE::IRIS::Result') ) { my ( $delay_arr, $delay_dep, $sched_arr, $sched_dep ); if ( $result->arrival ) { $delay_arr = $result->arrival->subtract_datetime( $result->sched_arrival )->in_units('minutes'); } if ( $result->departure ) { $delay_dep = $result->departure->subtract_datetime( $result->sched_departure )->in_units('minutes'); } if ( $result->sched_arrival ) { $sched_arr = $result->sched_arrival->strftime('%H:%M'); } if ( $result->sched_departure ) { $sched_dep = $result->sched_departure->strftime('%H:%M'); } push( @departures, { delayArrival => $delay_arr, delayDeparture => $delay_dep, destination => $result->destination, isCancelled => $result->is_cancelled, messages => { delay => [ map { { timestamp => $_->[0], text => $_->[1] } } $result->delay_messages ], qos => [ map { { timestamp => $_->[0], text => $_->[1] } } $result->qos_messages ], }, missingRealtime => ( ( not $result->has_realtime and $result->start < $now ) ? \1 : \0 ), platform => $result->platform, route => \@json_route, scheduledPlatform => $result->sched_platform, scheduledArrival => $sched_arr, scheduledDeparture => $sched_dep, train => $result->train, trainClasses => [ $result->classes ], trainNumber => $result->train_no, via => [ $result->route_interesting(3) ], } ); } if ( $result->sched_departure ) { $sched_dep = $result->sched_departure->strftime('%H:%M'); else { push( @departures, { delay => $result->delay, direction => $result->direction, destination => $result->destination, isCancelled => $result->is_cancelled, messages => [ $result->messages ], platform => $result->platform, route => \@json_route, scheduledPlatform => $result->sched_platform, scheduledTime => $result->sched_datetime->epoch, time => $result->datetime->epoch, train => $result->line, trainNumber => $result->number, via => [ $result->route_interesting(3) ], } ); } push( @departures, { delayArrival => $delay_arr, delayDeparture => $delay_dep, destination => $result->destination, isCancelled => $result->is_cancelled, messages => { delay => [ map { { timestamp => $_->[0], text => $_->[1] } } $result->delay_messages ], qos => [ map { { timestamp => $_->[0], text => $_->[1] } } $result->qos_messages ], }, missingRealtime => ( ( not $result->has_realtime and $result->start < $now ) ? \1 : \0 ), platform => $result->platform, route => \@json_route, scheduledPlatform => $result->sched_platform, scheduledArrival => $sched_arr, scheduledDeparture => $sched_dep, train => $result->train, trainClasses => [ $result->classes ], trainNumber => $result->train_no, via => [ $result->route_interesting(3) ], } ); } } elsif ( $template eq 'text' ) { Loading