From 255d0610f1b5b62b7dd409eeba6c63da3fac4092 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 21 Jun 2021 17:54:09 +0200 Subject: Journeys->add: Support complete routes, not just intermediate stops --- lib/Travelynx/Model/Journeys.pm | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/lib/Travelynx/Model/Journeys.pm b/lib/Travelynx/Model/Journeys.pm index cb10a63..a0981c6 100755 --- a/lib/Travelynx/Model/Journeys.pm +++ b/lib/Travelynx/Model/Journeys.pm @@ -130,7 +130,23 @@ sub add { ); } - my @route = ( [ $dep_station->[1], {}, undef ] ); + my $route_has_start = 0; + my $route_has_stop = 0; + + for my $station ( @{ $opt{route} || [] } ) { + if ( $station eq $dep_station->[1] or $station eq $dep_station->[0] ) { + $route_has_start = 1; + } + if ( $station eq $arr_station->[1] or $station eq $arr_station->[0] ) { + $route_has_stop = 1; + } + } + + my @route; + + if ( not $route_has_start ) { + push( @route, [ $dep_station->[1], {}, undef ] ); + } if ( $opt{route} ) { my @unknown_stations; @@ -158,14 +174,8 @@ sub add { } } - push( @route, [ $arr_station->[1], {}, undef ] ); - - if ( $route[0][0] eq $route[1][0] ) { - shift(@route); - } - - if ( $route[-2][0] eq $route[-1][0] ) { - pop(@route); + if ( not $route_has_stop ) { + push( @route, [ $arr_station->[1], {}, undef ] ); } my $entry = { -- cgit v1.2.3