#news on irc.perl.org

ishigaki on 2006-12-23T18:31:30

I started running yet another plagger bot at #news on irc.perl.org, since jbisbee's bot has been down for a month or so. Here's bot's config.yaml (a bit modified; and the num of spaces are not correct because of the "nbsp"s).

global: plugin_path: myplugins timezone: Asia/Tokyo log: level: debug

plugins: - module: Subscription::Config config: feed: - http://search.cpan.org/uploads.rdf - http://www.perlcast.com/rss/current.xml - http://www.perlfoundation.org/perl-foundation.rdf - http://jobs.perl.org/rss/standard.rss - http://use.perl.org/journal.pl?op=top&content_type=rss - http://use.perl.org/useperl.rdf - http://www.perl.com/pace/perlnews.rdf - http://annocpan.org/recent.rss - http://log.perl.org/index.rdf - http://perlmonks.org/?node_id=30175

- module: CustomFeed::PerlMonks

- module: Filter::PerlNews

- module: Filter::Rule rule: - module: Deduped path: .plagger-perlnews/irc.db

- module: Notify::IRC config: daemon_port: 9992 nickname: rssbot2 server_host: irc.perl.org server_port: 6667 server_channels: - #news charset: utf8 announce: action


and Filter::PerlNews (this is an ad hoc plugin, not (and will not be) uploaded in the official svn tree):

package Plagger::Plugin::Filter::PerlNews;

use strict; use base qw( Plagger::Plugin );

sub register { my ($self, $context) = @_; $context->register_hook( $self, 'update.feed.fixup' => \&change_feed_title, ); }

sub change_feed_title { my ($self, $context, $args) = @_;

my $title = $args->{feed}->title;

$title =~ s/^AnnoCPAN Recent Notes/AnnoCPAN/; $title =~ s/^Perl.com Perl.com/Perl.com/; $title =~ s/^use Perl Journals/Journals/; $title =~ s/^jobs\.perl\.org/Jobs/; $title =~ s/^The Perl Foundation/PerlFoundation/; $title =~ s/^search\.cpan\.org/CPAN/; $title =~ s/^Perl Monks Newest Nodes/PerlMonks/;

$args->{feed}->title( $title );

my @entries = reverse @{ $args->{feed}->{entries} };

$args->{feed}->{entries} = \@entries; }

1;


Actually you can do this without writing a plugin. If you prefer, replace the last part with this:

- module: Notify::IRC config: daemon_port: 9992 nickname: rssbot2 server_host: irc.perl.org server_port: 6667 server_channels: - #news charset: utf8 announce: action rule: expression: $args->{feed}->{title} =~ s/^AnnoCPAN Recent Notes/AnnoCPAN/;

or, more clearly:

- module: Filter::Rule rule: expression: $args->{feed}->{title} =~ s/^AnnoCPAN Recent Notes/AnnoCPAN/;

- module: Notify::IRC config: daemon_port: 9992 nickname: rssbot2 server_host: irc.perl.org server_port: 6667 server_channels: - #news charset: utf8 announce: action


Since this rule/expression stuff is not well-documented and a bit too magical, I prefer the first, though I totally agree we shouldn't include this kind of ad hoc plugins in the svn tree.

Suggestions and corrections are welcome ;)