はてなブックマーク件数取得API
はてなブックマーク件数取得APIが公開されたので、日記内の人気の日記一覧を表示するプラグインを作ってみた。 hsbtさんも作っているみたいだし、とりあえず公開してみる。 RSSモジュールを使っているので、Ruby 1.8.2が必要。
使い方は、プラグインを有効にして、サイドバーに
<h3>人気の日記</h3> <%=hatena_bookmark%>
と記述する。
プラグインの動きは以下の通り。
- 注目エントリーのRSSを取得する
- 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