小料理 さなぎ

本家エロチック街道
最近更新まったくしてませんが。

2007-04-14

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

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

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

Flavors.me : Page not found

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で設定する方法が!なんだそっか。

nyarla-netnyarla-net 2007/04/15 13:29 プラグインのパスの設定はPerlの@INCに追加するんじゃなくて、config.yamlのglobalでplugin_pathを設定してやる方がいいと思います。
あと既存のプラグインを改造するときは継承した方がいい、というのは参考になりました。

headhead 2007/04/15 14:01 plugin_pathがあったのかー。了解です。

headhead 2007/04/15 14:04 あ、なんか前に設定しようとした形跡があってコメントアウトしてあるなあ…。なんかあったんだろうか。ともかく了解です。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/head/20070414/publish_twitter