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 )