Plagger::Plugin::Filter::JiftyBot
名前の通りですが、いま#jiftyと#jifty-jaで走らせているのにはこんなのをかませています。
もうちょい一般化してFilter::SVNWebにしようかとも思っていたんですが、すっかり忘れていました。
package Plagger::Plugin::Filter::JiftyBot; use strict; use base qw( Plagger::Plugin ); sub register { my ($self, $context) = @_; $context->register_hook( $self, 'update.entry.fixup' => \&filter, 'update.feed.fixup' => \&change_feed_title, ); } sub change_feed_title { my ($self, $context, $args) = @_; $args->{feed}->title('Jifty'); my @entries = reverse @{ $args->{feed}->{entries} }; $args->{feed}->{entries} = \@entries; } sub filter { my ($self, $context, $args) = @_; my $entry = $args->{entry}; my $title = $entry->title_text; my $body = $entry->body_text; my @lines = split(/[\n\r]/, $body); if (@lines > 1) { my $first = shift @lines; $first = '' if $first =~ /^[^@]+\@[^:]+:[^\|]+\|\s+[\d:\-\+\s]+$/; unshift @lines, $first if $first; } $body = join "\n", @lines; $title =~ s/^(\d+ \-).+$/revision $1 $body/s; $entry->title( $title ); } 1;
[%- SET title = feed.title || '(no-title)' -%] [% FOREACH entry = feed.entries -%][% feed.title_text %]: [% entry.title_text %] [% entry.body_text %] - [% entry.link %] [% END -%]