はてなブックマークのRSSフィードをブックマークカウントでフィルタできる HB!F を作った
なんで作った?
HB!F はてなブックマーク RSS フィルタ https://hb-f.herokuapp.com/
ちょっと前までは公式が threshold というクエリパラメータを用意していて、それでフィルタリングができたのですが、利用者が少ないという理由で廃止されてしました。
基本的に情報収集はRSSフィードから行っており、はてなブックマークのホッテントリである程度ブックマークの集まっているものからチョイスしていたため、この機能の廃止に伴ってはてなブックマークのホッテントリからはまともに情報収集ができなくなってしまいました。
(すべて確認するには情報量が多くなりすぎるし、どーでもいい話題が多くなりすぎる。。)
前までは@syon(https://twitter.com/syonxv)さんの作成した RSSフィードフィルタ(http://syon-feed-filter.herokuapp.com/)を愛用させてもらっていたのですが、そもそも公式のフィルタリングがなくなったらどうしようもない、ということで自分で使うために作成しました。
また、似たようなものを作ってる人が他にもいたのですが、自分はRSSフィードの中にその記事に対するブックマークへのリンクも欲しかったので、それが取れるようにしています。
ちなみに、普段は inoreader (https://jp.inoreader.com/) で購読しています。
RSS リーダーは Google Reader → Feedly → inoreader と移ってきており、Feedly のときの不満は inoreader でなくなりました。(もう何が不満だったのかあんまり覚えていないですが。。)
技術要素
公式の RSS フィードを読み込んで、フィルタして、RSS フィードを配信するだけのシンプルなアプリなので Rails を利用するほどの大きさじゃないよな、と思ったので、未経験の Sinatra を使ってみるチャンスと捉え、フレームワークは Sinatra にしました。
あとは、なくてもいいんですが、一応 Web サイトとしてフィルタリングの内容を確認できるページがあったほうがいいかな、ということでこれも未経験の Slim で View を書いています。
haml よりもさらに記述が簡潔になるので、これはこれでありかも。
python 書いてる感じでした。
で、heroku にデプロイして、自分が利用するために作ったものだけど、他の人も使えるようにしています。
ポイント
作る上で難しいことはあまりしていないのですが、はてなブックマークの RSS フィードは
<hatena:xxx> といったタグに一部の情報が入っており、Ruby 標準の RSS パーサでは解析からこの情報が落ちてしまいました。
で、ブックマークカウント数は <hatena:bookmarkcount> の中に入っていたため、標準の RSS パーサで取得するのは諦めて、nokogiri で XML をパースしてデータの取得を行いました。
HB!F
ということで、よければ使ってご意見ください。
HB!F はてなブックマーク RSS フィルタ https://hb-f.herokuapp.com/