From 4abc43b72e597f7c441fc2c287ed38255a1f439b Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sun, 15 Jan 2023 16:37:32 +0100 Subject: change route/stop layout to [name, eva, {data}] --- lib/Travelynx/Helper/HAFAS.pm | 30 +++++++++++++++--------------- lib/Travelynx/Helper/IRIS.pm | 18 +++++++++++++----- 2 files changed, 28 insertions(+), 20 deletions(-) (limited to 'lib/Travelynx/Helper') diff --git a/lib/Travelynx/Helper/HAFAS.pm b/lib/Travelynx/Helper/HAFAS.pm index 92cf1c2..803c10e 100644 --- a/lib/Travelynx/Helper/HAFAS.pm +++ b/lib/Travelynx/Helper/HAFAS.pm @@ -125,22 +125,22 @@ sub get_route_timestamps_p { for my $stop ( $journey->route ) { my $name = $stop->{name}; $ret->{$name} = $ret->{ $stop->{eva} } = { - name => $stop->{name}, - eva => $stop->{eva}, - sched_arr => _epoch( $stop->{sched_arr} ), - sched_dep => _epoch( $stop->{sched_dep} ), - rt_arr => _epoch( $stop->{rt_arr} ), - rt_dep => _epoch( $stop->{rt_dep} ), - arr_delay => $stop->{arr_delay}, - dep_delay => $stop->{dep_delay}, - eva => $stop->{eva}, - load => $stop->{load}, - isCancelled => ( - ( $stop->{arr_cancelled} or not $stop->{sched_arr} ) - and - ( $stop->{dep_cancelled} or not $stop->{sched_dep} ) - ), + name => $stop->{name}, + eva => $stop->{eva}, + sched_arr => _epoch( $stop->{sched_arr} ), + sched_dep => _epoch( $stop->{sched_dep} ), + rt_arr => _epoch( $stop->{rt_arr} ), + rt_dep => _epoch( $stop->{rt_dep} ), + arr_delay => $stop->{arr_delay}, + dep_delay => $stop->{dep_delay}, + eva => $stop->{eva}, + load => $stop->{load} }; + if ( ( $stop->{arr_cancelled} or not $stop->{sched_arr} ) + and ( $stop->{dep_cancelled} or not $stop->{sched_dep} ) ) + { + $ret->{$name}{isCancelled} = 1; + } if ( $station_is_past and not $ret->{$name}{isCancelled} diff --git a/lib/Travelynx/Helper/IRIS.pm b/lib/Travelynx/Helper/IRIS.pm index 3222dad..eee7b58 100644 --- a/lib/Travelynx/Helper/IRIS.pm +++ b/lib/Travelynx/Helper/IRIS.pm @@ -179,27 +179,35 @@ sub route_diff { while ( $route_idx <= $#route and $sched_idx <= $#sched_route ) { if ( $route[$route_idx] eq $sched_route[$sched_idx] ) { - push( @json_route, [ $route[$route_idx], {}, undef ] ); + push( @json_route, [ $route[$route_idx], undef, {} ] ); $route_idx++; $sched_idx++; } # this branch is inefficient, but won't be taken frequently elsif ( not( grep { $_ eq $route[$route_idx] } @sched_route ) ) { - push( @json_route, [ $route[$route_idx], {}, 'additional' ], ); + push( @json_route, + [ $route[$route_idx], undef, { isAdditional => 1 } ], + ); $route_idx++; } else { - push( @json_route, [ $sched_route[$sched_idx], {}, 'cancelled' ], ); + push( @json_route, + [ $sched_route[$sched_idx], undef, { isCancelled => 1 } ], + ); $sched_idx++; } } while ( $route_idx <= $#route ) { - push( @json_route, [ $route[$route_idx], {}, 'additional' ], ); + push( @json_route, + [ $route[$route_idx], undef, { isAdditional => 1 } ], + ); $route_idx++; } while ( $sched_idx <= $#sched_route ) { - push( @json_route, [ $sched_route[$sched_idx], {}, 'cancelled' ], ); + push( @json_route, + [ $sched_route[$sched_idx], undef, { isCancelled => 1 } ], + ); $sched_idx++; } return @json_route; -- cgit v1.2.3