January,39332 February,37037 March,48966 April,68752At this point, I am ready to write the script, given the raw data I update monthly. However, I'd like as much of a 'hands-off' process so I don't have to support alot of software for this process.
My plan at this point was to write a script which would:
As a result, whenever monthly statistics are generated, I run this script to update the image on my About page.
1 #!/usr/bin/perl -w 2 3 use strict; 4 use LWP::Simple; # for fetching remote content via the Internet 5 6 # config 7 8 my $barColourHexValue = "0000FF"; 9 my $outputImageWidth = 500; 10 my $outputImageHeight = 300; 11 my $outputImageBaseDir = "/www/websites/www.kralidis.ca/htdocs/about"; 12 my $XTitle = 2003; 13 my $YTitle = "Total Hits"; 14 15 # you should be okay from here 16 17 @ARGV == 1 or die "Usage: $0 <dataFile>\n"; 18 19 my @months; 20 my @hits; 21 my @barHexColours; 22 23 my $dataFile = $ARGV[0]; 24 25 # extract data from data 26 open(FILE,$dataFile) or die "$dataFile $!\n"; 27 while(<FILE>) { 28 chomp; 29 my $month = $1 and my $hit = $2 if $_ =~ /^(\w+),(\d+)$/; 30 push @months, $month; 31 push @hits, $hit; 32 push @barHexColours, $barColourHexValue; 33 } 34 close(FILE); 35 36 # assemble URL parameters 37 my $numpts = @months; 38 my $xlabels = join(';', @months); 39 my $vals = join('!', @hits); 40 my $extcolors = join('!', @barHexColours); 41 42 my $requestURL = "http://www2.dmsolutions.ca/cgi-bin/owtchart?type=3DBar&w=$outputImageWidth&h=$outputImageHeight&XTitle=$XTitle&YTitle=$YTitle&numpts=$numpts&vals=$vals&xlabels=$xlabels&extcolors=$extcolors"; 43 44 # fetch image and write to file 45 my $content = get($requestURL); 46 47 open(IMG, ">$outputImageBaseDir/graph$XTitle.gif") or die "2 $outputImageBaseDir/graph$XTitle.gif $!\n"; 48 print IMG $content; 49 close(IMG); |