package Plagger::Plugin::Aggregator::RssSearch; use strict; use base qw( Plagger::Plugin::Aggregator::Simple ); use URI::Escape; sub register { my($self, $context) = @_; $context->register_hook( $self, 'subscription.load' => \&load, 'aggregator.aggregate.rsssearch' => \&search, ); } sub load { my($self, $context, $args) = @_; my $urls = $self->conf->{url}; my $keywords = $self->conf->{keyword}; $urls = [ $urls ] unless ref($urls) eq 'ARRAY'; $keywords = [ $keywords ] unless ref($keywords) eq 'ARRAY'; @{$keywords} = map{uri_escape($_)} @{$keywords}; for my $tmplurl (@{$urls}) { for my $keyword (@{$keywords}) { my $url = $tmplurl; $url =~ s/%s/$keyword/g; my $feed = Plagger::Feed->new; $feed->type('rsssearch'); $feed->url($url); $context->subscription->add($feed); } } } sub search { shift->aggregate(@_) } 1; __END__ =head1 NAME Plagger::Plugin::Aggregator::RssSearch - aggregate from rss search =head1 SYNOPSIS - module: Aggregator::RssSearch config: url: - http://bulkfeeds.net/app/search2.rdf?q=%s - http://blogdb.jp/search/rss/%s/index.rdf keyword: - perl - plagger - cpan =head1 DESCRIPTION This plugin creates Subscription by fetching rss search service. =head1 AUTHOR Kazuhiro Osawa =head1 SEE ALSO L, L, L =cut