#!/usr/bin/perl # $version = "fixcounter 0.0.1"; # variables $debug=0; # absolute path to the counter file on the website. $logpath = "/Library/WebServer/Documents/count.shtml"; $logpath1 = "/Library/WebServer/Documents/count1.shtml"; $line = ""; # maximum number of dots printed to the screen in one line $maxdots = 64; # global storage for where the dot is $dotposition = 0; # indent each row of dots $indentation = " "; # what will the dot look like, will it be an at sign, peroid, comma, dash ... $step = "."; $marker = "*"; $dot = "."; @counterdata = (); $pads = join ("", "%0", $pad, "d"); # refresh how often? $refreshhours = 24; $refreshminutes = 0; $refreshseconds = 0; $refreshtime = ((($refreshhours*60)+$refreshminutes)*60)+$refreshseconds; # open up the counter file open ($countfile, "$logpath"); @counterdata = <$countfile>; close($countfile); @sortarray = (); blippr("getting the data to sort", $indentation); $dot = $step; foreach $linevalue(@counterdata) { blip; $checkline1 = join("", $linevalue); if ($checkline1 =~ m/^/images/spinningapple.gif:18516 blippr("sorting the file according to the most accessed", $indentation); for ($i=0; $i<$#sortarray; $i++) { $dot = $marker; &blip; $dot = $step; $indentation = join("",$i,"/",$#sortarray," "); $checkline1 = $sortarray[$i]; $url1 = join( "", $checkline1); $url1 =~ s/^.*$//; $url1 =~ s/<.*>//; $count1 =~ s/^.*//; $count1 =~ s/<.*$//; $count1 =~ s/\r//; $count1 =~ s/\n//; $url1 =~ s/\r//; $url1 =~ s/\n//; $url1 =~ s/lower/upper/; for ($j=$i; $j<=$#sortarray; $j++) { &blip; $checkline2 = $sortarray[$j]; $url2 = join( "", $checkline2); $url2 =~ s/^.*$//; $url2 =~ s/<.*//; $count2 =~ s/^.*//; $count2 =~ s/<.*$//; $count2 =~ s/\r//; $count2 =~ s/\n//; $url2 =~ s/\r//; $url2 =~ s/\n//; $url2 =~ s/lower/upper/; if ($count2 > $count1) { $sortarray[$j] = $checkline1; $sortarray[$i] = $checkline2; $url1 = $url2; $count1 = $count2; $checkline1 = $checkline2; } elsif ($count2 == $count1) { # print "$count2/$count1,$url2 / $url1\n"; # print "$i/$#sortarray count2=count1 $url2 $url1\n"; if (lc($url2) lt lc($url1)) { # print "url2$logpath1"); foreach $myarray_line(@counterdata) { &blip; print $countfile "$myarray_line"; }; close($countfile); }; # this is an old message routine from the old adventure game sub blip { print $dot; $dotposition++; # for some reason perl doesn't handle global variables correctly in an if statement # so we localize them for that purpose. my $position = $dotposition; my $max = $maxdots; if ($position >= $max) { print "\n",$indentation; $dotposition = 0; }; }; sub blippr { ($msg, $msg2) = @_; print "\n\n<",$msg,">\n",$msg2; $dotposition = 0; };