App-Rssfilter
view release on metacpan or search on metacpan
lib/App/Rssfilter.pm view on Meta::CPAN
=item *
only wish to see it once
=item *
are comfortable with running C<rssfilter> periodically
=item *
are comfortable serving filtered RSS feeds over HTTP
=back
If all of the above hold, then you can simply create a cron job to run C<rssfilter> every 15 minutes to download all your RSS feeds, and serve its output folder, and configure your RSS reader to instead use your filtered feeds instead of the occasion...
You should not use App::Rssfilter if you:
=over 4
=item *
never want to see duplicate articles
=back
The duplicate matcher is quite pessimistic, and strictly avoids false positives.
=head1 EXTENDING
=head2 Writing your own filters and matchers
To use your own code to match or filter RSS items, create a package like:
package My::Custom::Matcher;
sub match {
my( $class, $item ) = @_;
return should_match( $item );
}
Likewise for filters.
Include it in your C<PERL5LIB>, and use your package name as the key (for matchers) or value (or filters) of a rule in your configuration:
name: things I read
feeds:
- a feed: http://a.feed.url/
rules:
- My::Custom::Matcher: My::Custom::Filter
L<App::Rssfilter::Rule> has more examples of writing your own matching & filtering code. Note that any changes made to the item by the matcher are preserved (for the time being).
=head2 Using App::Rssfilter to fetch RSS feeds
To use App::Rssfilter in your own project, create an L<App::Rssfilter::Group>, add feeds and rules and subgroups, then call its C<update> method. To load and save feeds to something other than the file system, extend L<App::Rssfilter::Feed::Storage> ...
=head1 BUGS
Only the current and last-fetched RSS documents are examined when filtering, so an item may not be classified as a duplicate and thus appear in two feeds. To illustrate, consider two RSS news feeds: National, which is frequently updated and contains ...
This can be mitigated by filtering Regional before National, or by fetching the National feed less frequently.
=head1 SEE ALSO
=over 4
=item *
L<Yahoo Pipes|http://pipes.yahoo.com/pipes/>
=back
=head1 AUTHOR
Daniel Holz <dgholz@gmail.com>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Daniel Holz.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
( run in 0.733 second using v1.01-cache-2.11-cpan-39bf76dae61 )