はてブ お気に入り マイナス 人気エントリ

ずっと前に作ったまま放置していたので、正式に公開。はてなアイデアで要望が出ていた「[自分の「お気に入り」から、「注目エントリー」や「人気エントリー」に入ったエントリを除外した、マイナーなエントリーだけを表示する機能]」を Y! Pipes で実現してみました。

はてな id を入力するだけで OK。あとは RSS でも JSON ででも取得できます。

仕組みはこう。

  1. 人気エントリの RSS の後ろに お気に入りの RSS を結合。順番が大事(後述)
  2. link つまりエントリの URL が同じものを Unique で束ねる
  3. Filter で dc:creator があるもののみ表示する。

3つ目がかなりハックっぽいのですが、Unique には複数のアイテムを束ねるときに、2つ目以降のデータを捨てる、という仕様を利用しました。人気エントリのアイテムには dc:creator は含まれておらず、お気に入りには必ず含まれています。そのため、人気エントリに存在せず、かつ、お気に入りに存在するアイテムのみに、dc:creator がある、ということになります。1つ目の手順で順番が大事と書いたのは、逆ならこの性質は利用できないからです。かなり複雑です。自分で書いてても分からなくなりそうです…。

さて、これでだいぶ幸せにはなるのですが、Pipes には RSS 出力すると、タグのデータが削られたり、content:encoded の HTML がエスケープされてしまう、といった問題があります。このへんが解決したら、だいぶ便利になりそうなんですが。