[僕] はてなブックマークでメモメモ。

僕ト云フ事

たろマークはてなブックマーク

2005年05月18日

[perl][script][はてな] はてなブックマークでメモメモ。

まともなエントリを書くのがお久しぶりになってしまっていました。皆様お元気でしょうか?(;'-')

最近は読むばっかりでまったくアウトプットに至ってなかったわけですが、実はこの blog の右下の方にはてなブックマークでブックマークしたものをリストしてたりします。もうごちゃごちゃしてて、アナウンスされないと誰にも気がついてもらえないなということでエントリしました(笑

てなわけで、はてなブックマークを使ってチョコチョコとコメントつけたりはしてます。簡易アウトプット(;'-')

このはてなブックマーク、「あー、このページ面白ぇww」とか思って、ブックマーク追加してみると、すでにブックマークした他のユーザのコメントで反応が見れたりして面白いです。自分が最初にブックマークしたものが、続々ブックマークされてたりするとちょっと嬉しかったり。あと、この記事後でゆっくり読み直してみようとか思うけど、ブラウザでブックマークするほどじゃないかなぁと思ったときの使い捨てとか。

さて、サイドバーにはてなブックマーク持ってくるソース。

#!/usr/bin/perl

use strict;
use warnings;

use XML::Simple;
use LWP::UserAgent;
use Template;

my $file     = '/path/to/file';
my $username = 'username';

my $req = HTTP::Request->new(GET => "http://b.hatena.ne.jp/$username/atomfeed");

my $res = LWP::UserAgent->new->request($req);

if($res->is_success){
    my $data = XMLin(LWP::UserAgent->new->request($req)->content, ForceArray => 1);
    
    my $b_title = $data->{link}->[1]->{title};
    my $tt = Template->new({ABSOLUTE => 1}) or die Template->error(), "\n";
    my $output;
    $tt->process(
        \*DATA,
        { data => $data },
        \$output,
    ) or die $tt->error();
    
    utf8::encode($output);
    open (TXT, "> $file") or die "Can't open file $file:$!";
    print TXT $output;
    close(TXT);
    
}

__DATA__
[% FOREACH d = data.entry %]
	[% LAST IF loop.count > 5 %]
	<h3><a href="[% d.link.0.href | uri | html %]">[% d.title.0 | html %]</a></h3>
	[% IF d.summary.0.content %]
	<p>[% d.summary.0.content | html %]</p>
	[% ELSE %]
	<p>There is no comment.</p>
	[% END %]
[% END %]

ホントは、XML::Feed 使いたかったんだけど、XML::LibXMLが入らなくてあきらめた(;'-')
RSS じゃ無くて、Atom 持って来てるのは、コメントつけてなかったときに RSS だと description にブックマークしたページの概要が入っちゃってるから。ちなみに例によって、cron で動かして吐き出されたファイルを SSI で include しています。Javascript にしたければ、テンプレいじるとできると思います。

ソース眺めるとほとんどモジュール任せ。CPAN ヽ(´ー`)ノバンザイ!

追記:タグ取得 ver 作った。

トラックバック

このエントリーのトラックバックURL:
http://vkgtaro.jp/cgi-bin/mt/mt-tb.cgi/431

コメントを投稿