2006年05月30日

はてなダイアリー日記 - http 記法の拡張について

URLなどのリンクを簡単に記述する http 記法を使って、そのページのスクリーンショットを簡単に作成、日記で紹介できるようになりました。
というワケで、この記法で生成されたスクリーンショットのURLを取得するモジュールを作りました。
Hatena::Screenshot

使い方

  use Hatena::Screenshot;
my $jitensya = Hatena::Screenshot->new(
cookies => '/home/user/.w3m/cookie',
login => { id => 'hatenaid' }
);

use Hatena::Screenshot;
use HTTP::Cookies::Guess;
my $jitensya = Hatena::Screenshot->new(
cookie_jar => HTTP::Cookies::Guess->create('/home/user/.w3m/cookie'),
login => { id => 'hatenaid' }
);

$jitensya->convert(qw(http://b.hatena.ne.jp/ http://i.yappo.jp/));
my $normal = $jitensya->normal;
print $normal->{http://b.hatena.ne.jp/};
my $small = $jitensya->small;
print $small->{http://b.hatena.ne.jp/};
my $large = $jitensya->large;
print $large->{http://b.hatena.ne.jp/};

print $jitensya->convert_lite('http://www.cpan.org/')->{normal};
print $jitensya->convert_once('http://www.google.com/');

こんな感じで、変換したいURLの一覧をリストで渡して、欲しいサイズのリストを取得する感じです。
変換したいURLが一つの時には簡単に変換する仕組みもあります。

オプションとかは後で変えるかも、HTTP::Cookies::Guessの内蔵をやめるかも。
今のところHTTP::Cookiesで普段使用しているブラウザのCookieを利用してはてなにアクセスしてますが、id/passを指定するだけで使えるようにもします。

内部的には、はてな日記に渡されたURLを[htt:image]に変換して書き込み、はてなにスクリーンショットのURLに変換させたものを本番ページをスクレイピングして変換後のURLをぶっこ抜きます。
特定の日付をストレージ代わりに使う感じです。ストレージというよりかはコンバータかな。
で、デフォルトは0000年00月00日を使っているので、この日付を使っている人は全部消えちゃいます。
回避策は

  my $jitensya = Hatena::Screenshot->new(
cookies => '/home/user/.w3m/cookie',
login => { id => 'hatenaid' },
date => '10000101',
);
こんな感じです。1000年01月01日にデータを書き込みます。

Text::Hatenaへの拡張もすると便利そうだからCPANにうpしよっと♪

Posted by Yappo at 2006年05月30日 11:25 | TrackBack | Perl
Comments
Post a comment









Remember personal info?






コメントを投稿する前に↓の場所にnospamと入力してください。