Bloglines経由で取得したEngadgetを含むFeedの対処

ここここここで騒いでいたEngadgetの文字化け(実体参照そのまま)への対処が、このコメントで解決。


package Plagger::Plugin::Filter::EngadgetDecode;
use strict;
use base qw( Plagger::Plugin );
use HTML::Entities;

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

sub update {
my($self, $context, $args) = @_;
print dump($args);
if ($args->{feed}->link =~ m!^http://japanese\.engadget\.com!) {
my $body = $self->decode($args->{entry}->body);
$args->{entry}->body($body);
my $title = $self->decode($args->{entry}->title);
$args->{entry}->title($title);
Plagger->context->log(info => "Decoded Engadget entry");
}
}

sub decode {
my($self, $string) = @_;

my $string = decode_entities($string);

$string;
}

1;

使い方

- module: Filter::EngadgetDecode