#!/usr/bin/perl -w
use DBI;
use LWP::Simple;
use HTTP::Size;
use Time::HiRes qw(gettimeofday tv_interval);
use Getopt::Std;
####commandline config
my (%options);
getopts("w:u:p:h", \%options);
if ($options{h}) {
print <<'eof';
-w webpage: Webpage to fetch
-u username: Username for mysql
-p password: Password for mysql
-h: This help file
eof
exit;
}
####config
my ($db_insert_time) = qq{INSERT web_load (date, url, load_secs, size, users) VALUES(now(),?,?,?,?)}; #sql insert
my ($url) = $options{w} || 'http://www.perlmonks.org/index.pl?node_id=131'; #default webpage (perlmonks frontpage)
my ($db_user_name) = $options{u} || ''; #default mysql username
my ($db_password) = $options{p} || ''; #defualt mysql password
my ($db_database) = 'DBI:mysql:website'; #default mysql database
####connect to db
my ($DBH) = DBI->connect ($db_database, $db_user_name, $db_password, { RaiseError => 1 });
####record start time, get frontpage, and calculate elapsed time
my ($start_secs);
$start_secs = [gettimeofday];
my ($content) = get($url);
die ("Couldn't GET $url\n") unless defined $content;
my ($load_secs) = tv_interval ($start_secs);
####extract users from $content and do some error checking (only for perlmonks)
my ($users) = $content =~ /\((\d+?)\)
prepare($db_insert_time);
$STH->execute($url, load_secs, $size, $users);
####database finish
$STH->finish();
$DBH->disconnect();