Changeset 36
- Timestamp:
- 02/06/06 15:11:24
- Files:
-
- trunk/plagger/lib/Plagger.pm (modified) (3 diffs)
- trunk/plagger/lib/Plagger/Plugin/Aggregator/Simple.pm (modified) (2 diffs)
- trunk/plagger/lib/Plagger/Plugin/CustomFeed/Mixi.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Plugin/Filter/URLBL.pm (modified) (3 diffs)
- trunk/plagger/lib/Plagger/Plugin/Publish/Debug.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Plugin/Publish/Gmail.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Plugin/Publish/JavaScript.pm (modified) (2 diffs)
- trunk/plagger/lib/Plagger/Plugin/Publish/PSP.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Plugin/Subscription/Bloglines.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Plugin/Widget/Delicious.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Plugin/Widget/HatenaBookmark.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Rule/Compound.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Rule/Expression.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Rule/Rating.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/UserAgent.pm (modified) (1 diff)
- trunk/plagger/templates/plugins/psp.tt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/plagger/lib/Plagger.pm
r31 r36 87 87 88 88 sub run_hook { 89 my($self, $hook, @args) = @_;89 my($self, $hook, $args) = @_; 90 90 for my $action (@{ $self->{hooks}->{$hook} }) { 91 91 my $plugin = $action->{plugin}; 92 if ( $plugin->rule->dispatch( @args) ) {93 $action->{callback}->($plugin, $self, @args);92 if ( $plugin->rule->dispatch($args) ) { 93 $action->{callback}->($plugin, $self, $args); 94 94 } 95 95 } … … 103 103 for my $type ($self->subscription->types) { 104 104 for my $feed ($self->subscription->feeds_by_type($type)) { 105 $self->run_hook("aggregator.aggregate.$type", $feed);105 $self->run_hook("aggregator.aggregate.$type", { feed => $feed }); 106 106 } 107 107 } … … 109 109 for my $feed ($self->update->feeds) { 110 110 for my $entry ($feed->entries) { 111 $self->run_hook('filter.content', $entry, $entry->text);111 $self->run_hook('filter.content', { entry => $entry, content => $entry->text }); 112 112 } 113 114 $self->run_hook('publish.notify', $feed); 113 $self->run_hook('publish.notify', { feed => $feed }); 115 114 } 116 115 trunk/plagger/lib/Plagger/Plugin/Aggregator/Simple.pm
r20 r36 18 18 19 19 sub aggregate { 20 my($self, $context, $ sub) = @_;20 my($self, $context, $args) = @_; 21 21 22 my $url = $ sub->url;22 my $url = $args->{feed}->url; 23 23 $context->log(info => "Fetch $url"); 24 24 my $remote = eval { XML::Feed->parse(URI->new($url)) }; … … 31 31 my $feed = Plagger::Feed->new; 32 32 $feed->title($remote->title); 33 $feed->url($ sub->url);33 $feed->url($url); 34 34 $feed->link($remote->link); 35 35 $feed->description($remote->tagline); trunk/plagger/lib/Plagger/Plugin/CustomFeed/Mixi.pm
r28 r36 27 27 28 28 sub aggregate { 29 my($self, $context, $ sub) = @_;29 my($self, $context, $args) = @_; 30 30 31 31 my $response = $self->{mixi}->login; trunk/plagger/lib/Plagger/Plugin/Filter/URLBL.pm
r7 r36 18 18 19 19 sub content { 20 my($self, $context, $ entry, $content) = @_;20 my($self, $context, $args) = @_; 21 21 22 22 my @urls; … … 30 30 }, 31 31 ); 32 $finder->find(\$ content);32 $finder->find(\$args->{content}); 33 33 34 34 my $res = Net::DNS::Resolver->new; … … 49 49 my $rate = $self->conf->{rate} || -1; 50 50 $context->log(warn => "$domain.$dns found. Add rate $rate"); 51 $ entry->add_rate($rate);51 $args->{entry}->add_rate($rate); 52 52 } 53 53 } trunk/plagger/lib/Plagger/Plugin/Publish/Debug.pm
r3 r36 14 14 15 15 sub notify { 16 my($self, $context, $ feed) = @_;17 $context->dumper($ feed);16 my($self, $context, $args) = @_; 17 $context->dumper($args->{feed}); 18 18 } 19 19 trunk/plagger/lib/Plagger/Plugin/Publish/Gmail.pm
r35 r36 20 20 21 21 sub notify { 22 my($self, $context, $ feed) = @_;22 my($self, $context, $args) = @_; 23 23 24 my $feed = $args->{feed}; 24 25 my $subject = $feed->title || '(no-title)'; 25 26 my $body = $self->templatize($context, $feed); trunk/plagger/lib/Plagger/Plugin/Publish/JavaScript.pm
r32 r36 15 15 16 16 sub notify { 17 my($self, $context, $ feed) = @_;17 my($self, $context, $args) = @_; 18 18 19 19 my $dir = $self->conf->{dir}; … … 22 22 } 23 23 24 my $file = $self->gen_filename($ feed);24 my $file = $self->gen_filename($args->{feed}); 25 25 my $path = File::Spec->catfile($dir, $file); 26 26 $context->log(info => "writing output to $path"); 27 27 28 my $body = $self->templatize($context, $ feed);28 my $body = $self->templatize($context, $args->{feed}); 29 29 30 30 open my $out, ">:utf8", $path or $context->error("$path: $!"); trunk/plagger/lib/Plagger/Plugin/Publish/PSP.pm
r31 r36 15 15 16 16 sub notify { 17 my($self, $context, $feed) = @_; 18 19 $feed->{title} = $feed->{title} || '(no-title)'; 20 $context->log(warn => "Store $feed->{title}"); 17 my($self, $context, $args) = @_; 21 18 push @{ $self->{__feeds} }, $feed; 22 19 } trunk/plagger/lib/Plagger/Plugin/Subscription/Bloglines.pm
r20 r36 71 71 72 72 sub sync { 73 my($self, $context, $ sub) = @_;73 my($self, $context, $args) = @_; 74 74 75 75 my @updates = $self->{bloglines}->getitems(0, $self->conf->{mark_read}); trunk/plagger/lib/Plagger/Plugin/Widget/Delicious.pm
r11 r36 16 16 17 17 sub add { 18 my($self, $context, $ entry, $content) = @_;19 $ entry->add_widget($self);18 my($self, $context, $args) = @_; 19 $args->{entry}->add_widget($self); 20 20 } 21 21 trunk/plagger/lib/Plagger/Plugin/Widget/HatenaBookmark.pm
r10 r36 16 16 17 17 sub add { 18 my($self, $context, $ entry, $content) = @_;19 $ entry->add_widget($self);18 my($self, $context, $args) = @_; 19 $args->{entry}->add_widget($self); 20 20 } 21 21 trunk/plagger/lib/Plagger/Rule/Compound.pm
r7 r36 10 10 11 11 sub dispatch { 12 my($self, @args) = @_;12 my($self, $args) = @_; 13 13 14 14 my $bool = 1; 15 15 for my $rule (@{ $self->{rules} }) { 16 $bool = 0 unless $rule->dispatch( @args); # AND mode16 $bool = 0 unless $rule->dispatch($args); # AND mode 17 17 } 18 18 trunk/plagger/lib/Plagger/Rule/Expression.pm
r30 r36 4 4 5 5 sub dispatch { 6 my($self, $ feed) = @_;6 my($self, $args) = @_; 7 7 my $status = eval $self->{expression}; 8 8 if ($@) { trunk/plagger/lib/Plagger/Rule/Rating.pm
r7 r36 24 24 25 25 sub dispatch { 26 my($self, $feed) = @_; 26 my($self, $args) = @_; 27 28 my $feed = $args->{feed} 29 or Plagger->context->error("No feed object in this plugin phase"); 27 30 28 31 my $rate = 0; trunk/plagger/lib/Plagger/UserAgent.pm
r8 r36 6 6 my $class = shift; 7 7 my $self = $class->SUPER::new(); 8 $self->agent("Plagger/$Plagger::VERSION ");8 $self->agent("Plagger/$Plagger::VERSION (http://plagger.bulknews.net/)"); 9 9 $self; 10 10 } trunk/plagger/templates/plugins/psp.tt
r23 r36 18 18 [% IF item.body.match('(?i)^<p[ >]') %][% item.body %][% ELSE %]<div class="item_body">[% item.body %]</div>[% END %] 19 19 [% ELSE %]<br />[% END %] 20 <div class="post">[% IF item.date %]Posted on [% item.date.format('Mail') %][% END %] | <a href="[% link | html %]">permalink</a> | <a href="[% feed.link | html %]">[% feed.title| html %]</a>[% FOREACH widget = item.widgets %] | [% widget.html(item) %][% END %]<br clear="all" /></div>20 <div class="post">[% IF item.date %]Posted on [% item.date.format('Mail') %][% END %] | <a href="[% link | html %]">permalink</a> | <a href="[% feed.link | html %]">[% (feed.title || '(no-title)') | html %]</a>[% FOREACH widget = item.widgets %] | [% widget.html(item) %][% END %]<br clear="all" /></div> 21 21 </div> 22 22 [% END %]
