Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

WWW::HatenaDiary 0.01リリース

はてなダイアリー/はてなグループCRUDを行うモジュール、WWW::HatenaDiaryをCPANへリリースしました。

id:tokuhiromさんがCodeReposで始めたものに、僕があれこれごしゃごしゃくっつけてったってな感じのものです。今後、ちょっとあれこれしてみたいと思ったりしてます。

はてなダイアラーならご存知の通り、はてなダイアリーは元々、エントリ単位というよりもむしろ、日付け単位でエントリを書き綴っていくというスタイルです。WWW::HatenaDiaryでは、そのどちらの単位でもCRUDを行えるような感じにしてみました。

使い方は、以下のような感じで。詳細については、PODをご覧ください。また、バグや改善した方がいい点等ありましたら、是非ともCodeReposでお願いします。

オブジェクト生成 & ログイン

use WWW::HatenaDiary;

my $diary = WWW::HatenaDiary->new({
    username => $username,
    password => $password,
    group    => $group,
    mech_opt => {
        timeout    => $timeout,
        cookie_jar => HTTP::Cookies->new(...),
    },
});

if (!$diary->is_loggedin) {
    $diary->login({
        username => $username,
        password => $password,
    });
}

validなcookieがあれば、newメソッドのmech_optにわたすだけで、newメソッドのその他のオプション、および、loginは省略可能です。

Create

my $edit_uri = $diary->create({
    title => $title,
    body  => $body,
});

$diary->create_day({
    date  => $date,
    title => $title,
    body  => $body,
});

エントリ単位でのCRUDについては、createメソッドで返される$edit_uriによって、エントリの取得・編集・削除を行います。

Retrieve

my $post = $diary->retrieve({
    uri  => $edit_uri,
})

my $day  = $diary->retrieve_day({
    date => $date,
});

いずれのメソッドについても、ポストの内容がハッシュリファレンスで返されます。

Update

$edit_uri = $diary->update({
    uri   => $edit_uri,
    title => $new_title,
    body  => $new_body,
});

$diary->update_day({
    date  => $date,
    title => $new_title,
    body  => $new_body,
});

エントリ、または、指定された日付の日記を更新。

Delete

$diary->delete({
    uri => $edit_uri,
});

$diary->delete_day({,
    date => $date,
});

削除しちゃいます。さようならー。

どうぞご利用ください。