«前の日記(2005-12-08 (木)) 最新 次の日記(2005-12-13 (火))»  

まちゅダイアリー


2005-12-12 (月)

はてなブックマーク件数取得API

はてなブックマーク件数取得APIが公開されたので、日記内の人気の日記一覧を表示するプラグインを作ってみた。 hsbtさんも作っているみたいだし、とりあえず公開してみる。 RSSモジュールを使っているので、Ruby 1.8.2が必要。

使い方は、プラグインを有効にして、サイドバーに

<h3>人気の日記</h3>
<%=hatena_bookmark%>

と記述する。

プラグインの動きは以下の通り。

  1. 注目エントリーのRSSを取得する
  2. RSSに含まれるURLに対して、はてなブックマーク件数取得APIを使ってブックマーク件数を問い合わせ。

一応、キャッシュ機能を入れてみた。 HatenaBookmark クラス自身を PStore で保存しようとしたら、何故かうまくいかなかったので、暫定的に出力するテキストをキャッシュするようにしている。

追記

セキュリティエラーがでて動かなくなっていたので修正。

--- hatena_bookmark.rb  Tue Dec 13 01:43:46 2005
+++ hatena_bookmark.rb.txt    Mon Dec 12 22:45:22 2005
@@ -59,7 +59,7 @@
     unless File.exist?(options[:cache_file]) && File.atime(options[:cache_file]) + options[:cache_time] * 60 > Time.now
       # STDERR.puts 'get RSS'
       rss_url = 'http://b.hatena.ne.jp/entrylist?mode=rss&url='
-      rss_url << URI.escape(base_url, /[^a-zA-Z._~]/n)
+      rss_url << URI.escape(base_url.untaint, /[^a-zA-Z._~]/n)
       rss_url << "&sort=#{options[:sort]}&threshold=#{options[:threshold]}"
       open(options[:cache_file], 'w') {|fout|
         open(rss_url).each {|line| fout.puts line