#!/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;