2ちゃんねるまとめのまとめ は腕利きの2chまとめ職人さんたちが選りすぐったエントリーが並んでいるので、どのエントリーを見てもおもしろいのですが、「人気」順にならべる機能を追加しました。
人気順って?
ぶっちゃけてしまうと、はてなブックマークの被ブックマーク数順です。
被ブックマーク数のチェックははてなブックマーク件数取得APIのGETリクエストでのシンプルなAPIってやつを利用しています。
本当にシンプルに数字だけを返してくるので
import urllib, urllib2
url = "http://foo.com"
response = urllib2.urlopen('http://api.b.st-hatena.com/entry.count?' + urllib.urlencode({'url': url}))
count = response.read() # => 50これだけで被ブックマークが確認できるので楽ちんです。
(エラーとか考えなければ)
今回は、エントリー別の詳細ページに上のコードを仕込んで、キャッシュの期限を適度に設定してみました。
アクセスがあってキャッシュが効いてなければ、はてなにリクエストを投げる仕組みになっています。
返ってきた数字をストレージに保存しておけば被ブックマーク順に並べられるというわけです。
ただ、これだとアクセスがなければずーっと更新されないままになってしまうですよね。
Google App Engineを利用しているのでTask Queueなんかを使えばいいのかもしれませんが、まんべんなくリクエストを投げるのは難しい感じがする。
エントリーの投稿日とか被ブックマーク数の増加率とかを勘案してスケジュールを組めばいけるのかな。
めんどいけど。


0 コメント:
コメントを投稿