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;
}