#!/usr/bin/perl # Copyright Mark Nielsen January 20001 # Copyrighted under the GPL license. # I am proud of this script. # I wrote it from scratch with only 2 minor errors when I first tested it. system ("lynx --source http://www.linuxgazette.com/ftpfiles.txt > /tmp/List.txt"); ### Open up the webpage we just downloaded and put it into an array. open(FILE,'/tmp/List.txt'); my @Lines = ; close FILE; ### Filter out lines that don't contain magic letters. my @Lines = grep(($_ =~ /lg\-issue/) || ($_ =~ /\.tar\.gz/), @Lines ); my @Numbers = (); foreach my $Line (@Lines) { ## Throw away the stuff to the left my ($Junk,$Good) = split(/lg\-issue/,$Line,2); ## Throw away the stuff to the right ($Good,$Junk) = split(/\.tar\.gz/,$Good,2); ## If it is a valid number, it is greater than 1, save it if ($Good > 0) {push (@Numbers,$Good);} } ### Sort the numbers and pop off the highest @Numbers = sort {$a<=>$b} @Numbers; my $Highest = pop @Numbers; ## Create the url we are going to download my $Url = "http://www.linuxgazette.com/issue$Highest/index.html"; ## Download it system ("lynx --source $Url > /tmp/LG_index.html"); ### Open up the index. open(FILE,"/tmp/LG_index.html"); my @Lines = ; close FILE; ### Extract out the parts that are between beginning and end of TOC. my @TOC = (); my $Count = 0; my $Start = ''; my $End = ''; foreach my $Line (@Lines) { if ($Line =~ /\Q$End\E/) {$Count = 2;} if ($Count == 1) {push(@TOC, $Line);} if ($Line =~ /\Q$Start\E/) {$Count = 1;} } ### Relink all the links to point to the Linux Gazette magazine my $Relink = "http://www.linuxgazette.com/issue$Highest/"; grep($_ =~ s/HREF\=\"/HREF\=\"$Relink/g, @TOC); ### Save the output open(FILE,">/tmp/TOC.html"); print FILE @TOC; close FILE; ### Done!