Jump to content

Talk:List of United Kingdom locations/A/script

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
#!/usr/bin/perl -w
#just paste some of this list into a file called "UKList" in the same folder and run "script > wikified" or something. Also:
$checkWP=1; #if 0, doesn't try to correct links over the web. if you want to, install 
            #http://search.cpan.org/~esummers/WWW-Wikipedia-1.8/lib/WWW/Wikipedia.pm

%hashy;#number of occurrences of each place name
@all;
$wpcount=0;# of links corrected
$wpchecked=0;
$numlinked=0;# of places bracketed
$alreadylinked=0;

open(FD, "UKList");

#* Yeabridge - Somerset 50.93N 02.79W ST4415
while(<FD>){
	if (/\* \[\[/) { $alreadylinked++ }
	else{
		if (s/\* (.*) \- /\* \[\[$1\]\] \- /) { $numlinked++ }
	}
	push(@all, $_);
	#count occurances of place name, and try to correct 
	#multiple links using "wikipedia" script.
	chomp $_;
	$_ =~ s/\* \[\[(.*)\]\] \- .*/$1/;
	if(defined($hashy{$_}))
		{$hashy{$_}++;}
	else {$hashy{$_} = 1;}
	#print $hashy{$_} || "0"
}

foreach  (@all){
	unless($checkWP){
		print;
		next;
	}
	$place = $_;
	$container = $_;
	$newstring = $_;
	$place =~ s/\* \[\[(.*)\]\] \- .*/$1/;
	chomp $place;
	if ($hashy{$place} > 1){
		$container =~ s/\* \[\[.*\]\] \- (.*) [\d][\d]\..*\..*\n/$1/;
		$wpchecked++;
		if(onWikipedia($place, $container)){
			$newstring =~ s/.* (\d+\.\d+[NS] .*\n)/* [[$place, $container]] \- $container $1/;
			$wpcount++;
		}
	}
	print $newstring;
}

print "\n\nlinked $numlinked places\n";
print "There were already $alreadylinked place links.\n";
print "automatically fixed $wpcount links\n";
print "checked wikipedia for $wpchecked articles\n";


sub onWikipedia{
	my $wp = `wikipedia \'$_[0], $_[1]\'`;
	if ($wp =~ /not found in wikipedia/){
		return 0;
	}
	return 1;
}

Start a discussion