", $encoded );
$log->( "description: ", $item->{description} );
}
if ( $installed_only ) {
# filter modules that are not installed locally
$rss->{items} =
[ grep{ my $item=$_; not grep{ $_ == $item } @ignore } @{$rss->{items}} ];
$log->( "Displaying:\n ".join( "\n ", map{$_->{title}} @{$rss->{items}}) );
};
print $rss->as_rss_1_0;
$log->( $rss->as_rss_1_0, "\n\nDONE!\n" );
__END__
=head1 NAME
cpan-changes.pl - Enrich CPAN recent module feed with change-log info
=head1 SYNOPSIS
cpan-changes.pl [options]
Options:
--uri feed uri [default: http://search.cpan.org/uploads.rdf]
--filter use as filter, i.e. retrieve RDF from standard input
--installed discard modules that aren't installed locally [EXPERIMENTAL]
--reload omits cache look-up and reload all changelogs
--debug processed info is logged to standard error
--help brief help message
--man full documentation
=head1 README
This program loads the CPAN recent modules feed, either from your
local CPAN mirror or as a filter in your favorite feed reader.
Afterwards it scans it and tries to fetch the changelog for new module
releases and parses them back into the RSS feed. All retrieved changelogs
are stored in a cache to minimize the load put onto your local CPAN mirror.
=head1 INSTALLED MODULES ONLY
This is a fragile hack using custom regexes to guess the module name
from the distribution (suggestions how to do this in a standard way
would be very welcome) and then just pull the respective item from the
internals of XML::RSS. Use with caution!
=head1 BUGS
Probably many. Up until now this program has only be tested under Linux
and in combination with the Liferea feed reader (both as conversion filter
and as programmatic source). I'd love to get feedback about your experiences
with this module in other environments.
=head1 PREREQUISITES
This script requires C, C, C,
C, C, C,
C and C. I know these are a lot of
prerequisites for a simple script (especially L), but as
the intended use case for this script in on the desktop of an active perl
developer, this should do.
=head1 COREQUISITES
C for the option to display only changes to
locally installed modules.
=head1 CPAN META INFO
=pod SCRIPT CATEGORIES
CPAN
Web
Web/RSS
=pod OSNAMES
any
=head1 AUTHOR
Sebastian Willert
=cut