#!/usr/local/bin/perl
require "weblib.lib";
require "timelocal.pl";
use POSIX "strftime";
$homedir="/home/todd";
require "$homedir/toddweb.env";
$today=time;
$date=strftime("%a, %d %b %Y %H:%M:%S %z",localtime($today));
&getparams;
$param{days}=14 unless $param{days};
$days=$param{days};
$|=1;
$style="http://TRConnection.com/trc/trc.css";
if($param{rss}){&xmlopen;}
else{
	&htmlopen("The Todd Rundgren Connection News Flash+","style=$style");
	print <<EOF;
<hr><a href="http://TRConnection.com/news/rss"><img src="/icons/xml.gif" width="36" height="14"></a>
<i>Also available as an RSS feed at http://TRConnection.com/news/rss</i>
<b><a href=http://blogspace.com/rss/readers>RSS reader</a> required for best use</b><hr>
(Updates from the last $param{days} days -
<a href=$weblib::URL/days=14>last 14 days</a> - 
<a href=$weblib::URL/days=30>last 30 days</a> - 
<a href=$weblib::URL/days=90>last 90 days</a> - 
<a href=$weblib::URL/days=365>last 365 days</a> - 
<a href=$weblib::URL/days=25000>since tracking began</a>)<p>
EOF
}
$param{days}*=86400;
open(TRCONN,"$homedir/trconn.dat");
while(<TRCONN>){
	chop;
	last if /^EOD$/;
	($section,$articles)=split(/\t/);
	@articles=split(/,/,$articles);
	push(@list,map{$_,$section}@articles);
}
close(TRCONN);
%list=@list;
$artdir="/home/todd/articles";
chdir($artdir);
open(INDEX,"index");
while(<INDEX>){
	chop;
	($article,$title)=split(/:/,$_,2);
	open(ART,$article);
	$_=join("",<ART>);
	while(s#<new\s+([^>]+)>(.*?)</new>##s){
		$art=$2;
		@new=split(/\s+/,$1);
		$artdate=shift(@new);
		%new=map {split(/=/)} @new;
		$art=qq{<table><tr><td valign="top">$art</table>} if exists $new{table};
		$article{$artdate,$article}=$art;
		$expires{$artdate,$article}=$new{expires} if $new{expires};
		$title{$artdate,$article}=$title;
	}
	close(ART);
}
close(INDEX);
foreach $key(reverse sort keys %article){
	($time,$article)=split(/$;/,$key);
	if(length($time) == 12){
		($year,$month,$day,$hour,$minute)=unpack("a4 a2 a2 a2 a2",$time);
		$time=timelocal(0,$minute,$hour,$day,$month-1,$year-1900);
		last if $time < $today-$param{days};
		$time=POSIX::strftime("%A, %B %e, %Y %l:%M %p %Z",localtime($time));
	}
	else{
		($year,$month,$day)=unpack("a4 a2 a2",$time);
		$time=timelocal(0,0,12,$day,$month-1,$year-1900);
		last if $time < $today-$param{days};
		$time=POSIX::strftime("%A, %B %e, %Y",localtime($time));
	}
	if($param{rss}){
		print "<item>\n<title>Article updated: $title{$key}</title>\n";
		print "<link>http://TRConnection.com/todd/trconn/$list{$article}#$article</link>\n";
		print "<description>";
		print qq{&lt;img src="http://TRConnection.com/trc/pictures/trc.png"&gt;};
		print "&lt;br&gt;Updated: $time&lt;hr&gt;";
		$art=$article{$key};
		$art=~s/&nbsp;/ /g;
		#if($table=$art=~/<tr/){print "&lt;table&gt;";}
		$art=~s/&/&amp;/g;
		$art=~s/</&lt;/g;
		$art=~s#href=/#href=http://TRConnection.com/#g;
		$art=~s#href="/#href="http://TRConnection.com/#g;
		$art=~s#src=/#src=http://TRConnection.com/#g;
		$art=~s#src="/#src="http://TRConnection.com/#g;
		$art=~s/>/&gt;/g;
		print $art;
		#print "&lt;/table&gt;" if $table;
		print "</description>\n";
		print "</item>\n";
	}
	else{
		print "Read the article: <a href=/todd/trconn/$list{$article}#$article>",
			$title{$key},"</a><br>";
		print "Updated: $time<p>";
		print $article{$key};
		print "</table>" if $table;
		print "<br clear=all><hr>\n";
	}
}
if($param{rss}){
	&latestReviews;
	foreach $days(14,30,90,365){
		print <<EOF;
<item>
<link>http://TRConnection.com/news/days=$days</link>
<title>All items updated in last $days days</title>
</item>
EOF
	}
	print "</channel>\n</rss>\n";
}
else{
	print $PAGETAIL;
	&htmlclose;
}
sub xmlopen{
	print <<EOF;
Content-type: text/xml

<?xml version="1.0" ?>
<rss version="0.92">
<channel>
<title>The Todd Rundgren Connection News Flash (last $days days)</title>
<link>http://TRConnection.com</link>
<description>All the latest news on Todd Rundgren</description>
<managingEditor>webmaster\@TRConnection.com</managingEditor>
<webMaster>webmaster\@TRConnection.com</webMaster>
<lastBuildDate>$date</lastBuildDate>
<language>en-us</language>
<image>
<title>The Todd Rundgren Connection</title>
<url>http://TRConnection.com/trc/pictures/trc.png</url>
<link>http://TRConnection.com/</link>
<width>97</width>
<height>77</height>
</image>
EOF
}
sub latestReviews{
	local($REVIEWDIR,$dir,@files,@reviews,$file);
	$REVIEWDIR="/home/todd/www/reviews";
	opendir(DIR,$REVIEWDIR);
	local(@DIR)=grep !/^\./,readdir DIR;
	foreach $dir(@DIR){
		next unless -d "$REVIEWDIR/$dir";
		chdir "$REVIEWDIR/$dir";
		opendir(REV,".");
		@files=grep /\.rev$/,readdir REV;
		@reviews=();
		foreach $file(@files){
			push(@reviews,$file) if -M $file <= $days;
		}
		foreach $file(reverse sort @reviews){
			print "<item>\n";
			open(FILE,$file);
			print "<description>";
			while(<FILE>){
				last if /^$/;
				s/&/&amp;/g;
				s/</&lt;/g;
				s/>/&gt;/g;
				($title)=/^Title: (.*)/ if /^Title: /;
				($author)=/^Author: (.*)/ if /^Author: /;
				print "$_&lt;br&gt;";
			}
			print "</description>\n";
			print qq{<title>Review: $title by $author</title>\n};
			print qq{<link>http://TRConnection.com/todd/review/$dir/$file</link>\n};
			print "</item>\n";
		}
	}
}
