理系学生日記

おまえはいつまで学生気分なのか

Livedoor Reader でピンを立てたエントリを Read It Later へ送るスクリプト書いた

このエントリで作りたかったものをようやく作りました。

Read It Later については、この辺りが参考になる。


流れとしては、こんな感じです。

  1. LDR 用のモジュールと Read It Later 用のモジュールをでっちあげる
  2. LDR でピンを立てたエントリの情報を取得する
  3. そのまま API を介して、Read It Later の Reading List に突っ込む

という流れです。

#!/opt/local/bin/perl
use strict;
use warnings;
use WebService::LivedoorReader;
use WebService::ReadItLater;
use Config::Pit;

my $conf_ldr = Config::Pit::get( "ldr" );
my $conf_ril = Config::Pit::get( "ReadItLater" );

my $ldr = WebService::LivedoorReader->new({
    user => $conf_ldr->{user}, 
    pass => $conf_ldr->{pass}
});

my $info;
for my $url (@{ $ldr->pins }) {
    $info->{ $url->link } = $url->title;
}

my $ril = WebService::ReadItLater->new({
    apikey => $conf_ril->{apikey},
    user   => $conf_ril->{user},
    pass   => $conf_ril->{pass}
});
$ril->auth;
$ril->register( $info );

モジュールは LDR、Read It Later ともに、ソース以外はModule::Setup での雛形からほとんどいじってないというヒドい状態です。make install もできないし、テストとかも、現状ほとんど書いてない。
LDR の方は、ディレクトリ操作等を除けばそれなりに各種 API に対応していってますが、Read It Later 用のモジュールは今のところエントリ登録しかできません。

まぁこのスクリプトを cron にしかけることで、ピンを立てりゃ自動的に Read It Later に登録されて、3G の電波が届かないところ(地下鉄等)であってもエントリが読めるようになりました。

あとはちょっとずつ、API への対応とともに、各種ファイルをまともに作らないといけないなーとは思ってる。