#!/usr/bin/perl
# Crude and ugly but working script to convert the OLM list to
# feeder-stats.conf format. Output is to standard output, redirect
# to the file of your choice
#
# The OLM (Online Monitoring List) can be found at:
#
# ftp://ftp.switch.ch/info_service/netnews/wg/config/olm-lookup
#
# format: searchstr[TAB]official_name[TAB]isp_code[TAB]moni_url
$Debug = 0 ;
$OlmFile = "olm-lookup" ;
&ReadOlmFile ;
&PrintFeederStats ;
sub ReadOlmFile
{
if (open (FILE, $OlmFile)) {
while (<FILE>) {
next if (/^#/) ;
if (/^(\S*)\t(\S*)\t(\S*)\t(\S*)\n/) {
$Host = $1;
$PathHost = $2;
$ISP = $3;
$Link = $4;
$OLM{$ISP . $Host}->{isp} = $ISP ;
$OLM{$ISP . $Host}->{host} = $Host ;
$OLM{$ISP . $Host}->{link} = $Link ;
$OLM{$ISP . $Host}->{path} = $PathHost ;
print "[$Host] [$PathHost] [$ISP] [$Link]\n" if $Debug ;
}
}
close FILE;
} # end if open
} # end sub ReadOlmFile
sub PrintFeederStats
{
my($ISPHost,$PrevISP);
print <<EOM
#
# Links and aliases in this file are based on The OLM
# (Online Monitoring List):
#
# ftp://ftp.switch.ch/info_service/netnews/wg/config/olm-lookup
#
EOM
;
foreach $ISPHost (sort keys %OLM) {
print "# $OLM{$ISPHost}->{isp}\n" unless ($OLM{$ISPHost}->{isp} eq $PrevISP) ;
$PrevISP = $OLM{$ISPHost}->{isp} ;
print "link: $OLM{$ISPHost}->{host} $OLM{$ISPHost}->{link}\n";
print "top1000: $OLM{$ISPHost}->{host} $OLM{$ISPHost}->{path}\n"
unless (lc $OLM{$ISPHost}->{host} eq lc $OLM{$ISPHost}->{path});
}
} # end sub PrintFeederStats
syntax highlighted by Code2HTML, v. 0.9.1