はてなブックマーク件数取得API
2005-12-12
はてなブックマーク件数取得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