From 3e9807b393d8e1acc6b6f839aacc720c8908322b Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sat, 25 Jan 2020 15:46:42 +0100 Subject: map, journey view: handle renamed stations --- lib/Travelynx.pm | 17 +++++++++++++++-- lib/Travelynx/Controller/Traveling.pm | 16 +++++++++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm index 97c9384..96b45be 100755 --- a/lib/Travelynx.pm +++ b/lib/Travelynx.pm @@ -197,8 +197,7 @@ sub startup { $self->attr( coordinates_by_station => sub { - my $legacy_names = JSON->new->utf8->decode( - scalar read_file('share/old_station_names.json') ); + my $legacy_names = $self->app->renamed_station; my %location; for my $station ( Travel::Status::DE::IRIS::Stations::get_stations() ) @@ -225,6 +224,14 @@ sub startup { } ); + $self->attr( + renamed_station => sub { + my $legacy_to_new = JSON->new->utf8->decode( + scalar read_file('share/old_station_names.json') ); + return $legacy_to_new; + } + ); + $self->attr( station_by_eva => sub { my %map; @@ -2710,6 +2717,12 @@ sub startup { } if ( $opt{verbose} ) { + my $rename = $self->app->renamed_station; + for my $stop ( @{ $ref->{route} } ) { + if ( $rename->{ $stop->[0] } ) { + $stop->[0] = $rename->{ $stop->[0] }; + } + } $ref->{cancelled} = $entry->{cancelled}; my @parsed_messages; for my $message ( @{ $ref->{messages} // [] } ) { diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index 421032f..8d1a901 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -470,10 +470,24 @@ sub map_history { for my $journey (@journeys) { - my @route = map { $_->[0] } @{ $journey->{route} }; + my @route = map { $_->[0] } @{ $journey->{route} }; + my $from_index = first_index { $_ eq $journey->{from_name} } @route; my $to_index = first_index { $_ eq $journey->{to_name} } @route; + if ( $from_index == -1 ) { + my $rename = $self->app->renamed_station; + $from_index + = first_index { ( $rename->{$_} // $_ ) eq $journey->{from_name} } + @route; + } + if ( $to_index == -1 ) { + my $rename = $self->app->renamed_station; + $to_index + = first_index { ( $rename->{$_} // $_ ) eq $journey->{to_name} } + @route; + } + if ( $from_index == -1 or $to_index == -1 ) { -- cgit v1.2.3