#!/usr/bin/perl -wT
# index.cgi
use strict;
use CGI qw(:standard end_ul end_table);
use CGI::Carp qw(fatalsToBrowser);
use File::Basename;
use DBI;
use XML::RSS;
my $RDF_DIR = './rdf';
my $dbh = DBI->connect("dbi:mysql:book", "user", "password")
or print $DBI::errstr;
my $sth = $dbh->prepare(qq{select URL from rdf where Selected = 1});
$sth->execute;
print header,
start_html("My Home Page"),
h2("My Favorite Sites");
print start_table({cellpadding=>0, cellspacing=>0, border=>0, width=>'100%'}),
td;
my $count = 1;
my @html = ('
', ' | ');
while (my $url = basename($sth->fetchrow)) {
my $rss = new XML::RSS;
eval {$rss->parsefile("$RDF_DIR/$url")};
warn "$url will not parse $@" and next if $@;
my $last_mod = scalar localtime((stat("$RDF_DIR/$url"))[9]);
print start_table({cellpadding=>0, cellspacing=>2, border=>5, width=>'75%'}),
td({valign=>'CENTER', bgcolor => '#C0C0C0'});
$rss->{image}{url} ? print img({src=>$rss->{image}{url}})
: print strong($rss->{channel}{title});
print ul;
for (@{$rss->{items}}) {
print li(a({href=>$_->{link}}, $_->{title}));
}
print end_ul;
if ($rss->{textinput}{link}) {
print $rss->{textinput}{description},
start_form(-method => 'GET',
-action => $rss->{textinput}{link}),
textfield(-name => $rss->{textinput}{name}),
end_form;
}
print qq(Last Updated $last_mod );
end_table;
print $html[$count^=1];
}
print end_table,
end_html;
|