Publish::Twitterで日本語を投稿する

きっとすぐパッチが当たる気がしますが*1

さっき気づいたけど、どうも日本語がうまく投稿できてない。

http://nyarla.net/blog/plagger10

utf8にエンコードしてやるです。

ついでに、直接Plaggerのソースをいじっちゃう人がいるようなのであえて書いておきますと、後にアップデートされたことも考えて、こちらの方のように直接改造するのではなく継承したほうがいいです。

たとえば、これは私が今までやってた、del.icio.us -> はてブへの自動投稿にTwitterへの投稿も足してやろうとさっき書いたものですが

package Plagger::Plugin::Publish::TwitterBookmark;
use strict;
use base qw( Plagger::Plugin::Publish::Twitter );
use Encode;

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

    my $body = 'bkmked:'.( $args->{entry}->summary || $args->{entry}->title ) . " " . $args->{entry}->permalink;
    $context->log(info => "Updating Twitter status to '$body'");
    $self->{twitter}->update(encode_utf8($body)) or $context->error("Can't update twitter status");

}
1;

これを /home/myname/lib/Plagger/Plugin/Publish かなにかに置いて、

perl -I/home/myname/lib /usr/local/bin/plagger -c /home/myname/conf/foo.yml

とかで呼び出してやればいい気がします*2

*1:早くもあたるっぽい。Publish::Twitterのdiff - otsune's SnakeOil - subtech

*2:コメントにて、globalのplugin_pathで設定する方法が!なんだそっか。