--- CVSROOT/cvs2rss.pl 2005/10/24 21:53:20 1.9 +++ CVSROOT/cvs2rss.pl 2008/11/26 18:43:30 1.13 @@ -21,31 +21,30 @@ # Edit by Guy Albertelli, -- corrected the packaging of Entities # - commits now
ed
 #                          - removed html rants
-#
+# Edit by Stuart Raeburn, -- eliminated earlier HTML::Entities customization.
 
 use strict;
-use HTML::Entities();
 use XML::RSS;
 use POSIX;
 
 # Stuff you need to setup 
-my $rssFeed ="/home/loninst/public_html/loncapa.rss";
+my $cvslink = 'http://source.loncapa.org/cgi-bin/cvsweb.cgi/';
+my $rssFeed ="/home/rss/cvs.rss";
 my $emailDomain = "loncapa.org";
 my $channelTitle = "Lon-CAPA RSS Feed";
-my $channelLink = "http://install.loncapa.org/loncapa.rss";
-my $numEntries = 200;
+my $channelLink = "http://source.loncapa.org/rss/cvs.rss";
+my $numEntries = 30;
 
 # Set this to 1 to enable cvs rdiff
 my $cvsDiff = 1;
 
 # Leave everything else alone
-my $author = getpwuid(getuid()) . "\@" . $emailDomain;
-$author = 'guy' . "\@" . 'albertelli.com';
+my $author = getpwuid(getuid());
 my $pubDate = strftime('%a, %d %b %Y %H:%M:%S %Z',localtime(time));
-my $description;
-
 
 my @args = split(" ", $ARGV[0]);
+my $dir = shift(@args);
+
 # bail when this is a new directory
 &bail if $args[0] eq '-' && "$args[1] $args[2]" eq 'New directory';
 # bail if this is an import
@@ -71,25 +70,29 @@ $rss->channel(
 # Limit entries in the feed to $numEntries
 pop(@{$rss->{'items'}}) while (@{$rss->{'items'}} >= $numEntries);
 
+my $commit_msg;
+while () {
+    chomp($_);
+    if ($_=~/^[A-Z].*:\s*$/) {
+	$_ = "
" .$_."
"; + } else { + $_ .= "
"; + } + $commit_msg .= $_; +} + +$commit_msg .= '
Author:
'.$author.'
'; + foreach my $file (@args) { my @title=split(",",$file); - + my $description = $commit_msg; # Format title of the rss item # Remove space, append / and set title to /file/that/changed - oldversion/newversion $title[0] =~s/ /\//; - + $title[0] = $dir.'/'.$title[0]; + # Format the cvslog msg itself - while () { - chomp($_); - if ($_=~/^[A-Z].*:\s*$/) { - $_ = "
" . &HTML::Entities::encode($_,'<>&"') . "
"; - } else { - $_ = &HTML::Entities::encode($_,'<>&"'); - $_ .= "
"; - } - $description .= $_; - } if ($cvsDiff == 1) { @@ -98,7 +101,9 @@ foreach my $file (@args) { # This will rdiff it against the previous version, and # include that diff in the rss feed - if (($title[1] != "NONE") && ($title[0]=~/(.*).(pm|pl|conf|tab)$/)){ + if (($title[1] != "NONE") + && ($title[0]=~/(.*)\.(pm|pl|conf|tab)$/) + && ($title[0]!~{/localize/localize/..\.pm}) ) { my $tmpFile = "/tmp/diff.$$"; my $cmdLine = "cvs -n rdiff -u -kk -r " . $title[1] . " -r " . $title[2] . " " . $title[0] . ">" . $tmpFile; system($cmdLine); @@ -106,14 +111,14 @@ foreach my $file (@args) { $description .= "
Differences:
";
 	    open CVSDIFF, "<" . $tmpFile;
 	    foreach my $line () {
-		$description .= &HTML::Entities::encode($line,'<>&"');
+		$description .= $line;
 	    }
 	    $description .= "
"; unlink($tmpFile); } } - my $link = 'http://install.loncapa.org/cgi-bin/cvsweb.cgi/'.$title[0]; + my $link = $cvslink.$title[0]; if ($title[1] != "NONE") { $link .= '.diff?r1='.$title[1].';r2='.$title[2].';f=h'; } @@ -126,10 +131,6 @@ foreach my $file (@args) { pubDate => $pubDate, link => $link ); - - foreach my $element (@{$rss->{'items'}}) { - $element->{'description'} = &HTML::Entities::encode($element->{'description'},'<>&"'); - } } $rss->save($rssFeed);