Plagger::Plugin::Publish::iPodNotes
実は結構前から Plagger で取得した RSS を iPod の Notes で読むプラグインを自分で作って使ってるのですが、昨日の YAPC::Asia 初日の Plagger の session で、まだ iPod の Notes に書き出す Plugin がないということを知ったので、ちょっと恥ずかしいのですが拙作をここに晒しておきます。
iPodNotes.pm
package Plagger::Plugin::Publish::iPodNotes; use strict; use base qw( Plagger::Plugin ); use File::Spec; use iPod::Notes; our $VERSION = '0.01'; sub register { my( $self, $context ) = @_; $context->register_hook( $self, 'publish.feed' => \&feed, ); } sub feed { my( $self, $context, $args ) = @_; my $cfg = $self->conf; my $feed = $args->{feed}; my $url = $feed->{url}; $url =~ s![:/\.\&\?]!_!g; my $article_name = File::Spec->catfile( 'Blogs', $url ); my $i; my $index; for my $entry ( @{ $feed->{entries} } ) { my $article_num = sprintf "%03d", $i++; my $note = iPod::Notes->new( Title => $article_num, Docpath => $article_name, Content => $entry->body, NotesPath => $cfg->{notes_path}, Debug => $cfg->{debug}, ); $note->write; $index .= sprintf "<a href=\"%s/%s\">* </a>%s\n", $article_name, $article_num, $entry->title; } my $note = iPod::Notes->new( Title => $feed->title, Content => $index, ); $note->write; return 1; } 1;
この中で使っている
iPod::Notes というのも自作で、CPAN には登録していないのでここに晒しておきます。 RSS 以外のテキストファイルを iPod に転送するために使ってるんですけど、
iPod::Notes は WindowsXP + cygwin + perl5.8.7 + iPod photo で正常に動作していることを確認しています。昔 ActivePerl でも動いてたんですけど、いまは知りません。
CPAN って登録したことないんだけど、iPod の Notes って iPod の version によって細かく違うみたいだし、今は全て utf8 に強制変換してるし、こんなものを登録してもいいのかなあ?(あと、名前が良くないとか)
ああ、あと config.yaml が必要ですね。
- module: Publish::iPodNotes config: debug: 1 notes_path: - cygdrive - f - Notes
こんなのを config.yaml に追加してください。debug はなくても全然構わないけど。notes_path は mount している iPod の Notes ディレクトリまでの path です。
もう出発しないと YAPC::Asia 2日目に間に合わないな。それでは会場で。