diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2022-12-04 20:57:27 +0100 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2022-12-04 20:57:27 +0100 | 
| commit | 37cb85e60df74ff54546a4b012b0f587a93abac0 (patch) | |
| tree | 12a52689c1ebebeaf7daf6aca0796d6d8089764c /lib/Travelynx | |
| parent | 8f1bf57a657fbbf3940e52e71f3d5f548ce80ef9 (diff) | |
integritycheck: also check station names in routes
Diffstat (limited to 'lib/Travelynx')
| -rw-r--r-- | lib/Travelynx/Command/integritycheck.pm | 57 | 
1 files changed, 52 insertions, 5 deletions
| diff --git a/lib/Travelynx/Command/integritycheck.pm b/lib/Travelynx/Command/integritycheck.pm index fc7345a..774ef6f 100644 --- a/lib/Travelynx/Command/integritycheck.pm +++ b/lib/Travelynx/Command/integritycheck.pm @@ -11,11 +11,8 @@ use Travel::Status::DE::IRIS::Stations;  sub run {  	my ($self) = @_; -	my %station; - -	for my $s ( Travel::Status::DE::IRIS::Stations::get_stations() ) { -		$station{ $s->[2] } = 1; -	} +	my %station +	  = map { $_->[2] => 1 } Travel::Status::DE::IRIS::Stations::get_stations();  	my @journey_stations; @@ -33,12 +30,62 @@ sub run {  	}  	@journey_stations = List::Util::uniq @journey_stations; +	my $found = 0;  	for my $eva (@journey_stations) {  		if ( not $station{$eva} ) { +			if ( not $found ) { +				say +'Journeys in the travelynx database contain the following unknown EVA IDs.'; +				say '------------8<----------'; +				say 'Travel::Status::DE::IRIS v' +				  . $Travel::Status::DE::IRIS::Stations::VERSION; +				$found = 1; +			}  			say $eva;  		}  	} +	if ($found) { +		say '------------8<----------'; +		say ''; +		$found = 0; +	} + +	%station +	  = map { $_->[1] => 1 } Travel::Status::DE::IRIS::Stations::get_stations(); +	my %notified; +	my $rename = $self->app->renamed_station; + +	$res = $self->app->pg->db->select( 'journeys', [ 'route', 'edited' ] ); +	for my $j ( $res->expand->hashes->each ) { +		if ( $j->{edited} & 0x0010 ) { +			next; +		} +		for my $stop ( @{ $j->{route} // [] } ) { +			my $stop_name = $stop->[0]; +			if ( $rename->{$stop_name} ) { +				$stop_name = $rename->{$stop_name}; +			} +			if ( not $station{$stop_name} and not $notified{$stop_name} ) { +				if ( not $found ) { +					say +'Journeys in the travelynx database contain the following unknown route entries.'; +					say 'Note that this check ignores manual route entries.'; +					say 'All reports refer to routes obtained via HAFAS/IRIS.'; +					say '------------8<----------'; +					say 'Travel::Status::DE::IRIS v' +					  . $Travel::Status::DE::IRIS::Stations::VERSION; +					$found = 1; +				} +				say $stop_name; +				$notified{$stop_name} = 1; +			} +		} +	} +	if ($found) { +		say '------------8<----------'; +		say ''; +	}  }  1; | 
