}
$sth->finish ();
$dbh->disconnect ();
#####parts of sub HandleSite from Web Sec######
sub HandleSite()
{
# Get parameter values for this page
$url = $siteinfo{URL};
$auth = $siteinfo{Auth};
$name = $siteinfo{Name};
$prefix = $siteinfo{Prefix};
$diff = $siteinfo{Diff};
$hicolor = $siteinfo{Hicolor};
$ignore = $siteinfo{Ignore};
$ignoreurl = $siteinfo{IgnoreURL};
$email = $siteinfo{Email};
$emailLink = $siteinfo{EmailLink};
$proxy = $siteinfo{Proxy};
$proxyAuth = $siteinfo{ProxyAuth};
$tmin = $siteinfo{Tmin};
$tmax = $siteinfo{Tmax};
$digest = $siteinfo{Digest};
# If block without URL, assume parameter setting block and update default values
if ($url eq "")
{
%defaults = %siteinfo;
return 0;
}
# If essential parameters are not present, abort with error
if ($name eq "" || $prefix eq "" || ($email eq "" && $emailLink eq ""))
{
print "Name, prefix or email info missing from URL: $url.\n";
return -1;
}
# If URL is successfully downloaded
if ($resp->is_success)
{
open (HTML_FILE, ">$page_current");
print HTML_FILE "\n";
print HTML_FILE "base. "\">\n";
print HTML_FILE $resp->content;
close HTML_FILE;
if ($diff eq "webdiff")
{
if ($page_previousExists == 1)
{
print "Highlighting differences from previous version of webpage ...\n";
$rc = system($webdiff);
if ($rc != 0)
{
print "Sending highlighted page to $email ...\n";
if ($email ne "")
{
MailDocument($outgoing, $subj, $email);
}
if ($emailLink ne "")
{
if (($digest ne "no") && ($digest ne "false"))
{
push @digest,$url;
($digestEmail) or ($digestEmail=$emailLink);
}
else
{
$linkmsg = "The contents of the following URL has changed:\n\n$url\n";
MailMessage($linkmsg, $subj, $emailLink);
}
}
}
else
{
print "No changes were detected.\n";
}
rename $page_previous, $page_archive;
rename $page_current, $page_previous;
}
else
{
print "No previous version for this page. Storing in archive ...\n";
rename $page_current, $page_previous;
}
}
else
{
if ($email ne "") { MailDocument($page_current, $subj, $email); }
if ($page_previousExists) { rename $page_previous, $page_archive; }
rename $page_current, $page_previous;
}
}
# Mail message
# Params: message, subject, recipient
# Returns: none
sub MailMessage()
{
my $message = shift(@_);
my $subject = shift(@_);
my @recipients = split/,/, shift(@_);
foreach $email (@recipients)
{
$req = HTTP::Request->new(POST => "mailto:" . $email);
$req->header("Subject", $subject);
$req->header("Content-type", "text/plain; charset=us-ascii");
$req->header("Content-Transfer-Encoding", "7bit");
$req->header("MIME-Version", "1.0");
$req->content($message);
$ua = new LWP::UserAgent;
$ua->request($req);
}
}
# Mail HTML document.
# Params: filename, subject, recipient
# Returns: none
sub MailDocument()
{
my $filename = shift(@_);
my $subject = shift(@_);
my @recipients = split/,/, shift(@_);
my $tmpstr = $/;
undef $/;
open(FILE, "$filename") or die "Cannot open $filename: $!\n";
my $content = ;
close(FILE);
foreach $email (@recipients)
{
$req = HTTP::Request->new(POST => "mailto:" . $email);
$req->header("Subject", $subject);
$req->header("Content-type", "text/html");
$req->header("Content-Transfer-Encoding", "7bit");
$req->header("MIME-Version", "1.0");
$req->content($content);
$ua = new LWP::UserAgent;
$ua->request($req);
}
$/ = $tmpstr;
}