はてなブックマークの新着ブックマークとlivedoor Reader

このサイト全体のはてなブックマークでの被ブックマークをトラッキングしようとsitemap.txtを元にしたPipeを作ったのだけど、あんちぽさんに「URLで絞り込んで新着ブックマークのトラッキングできるよ」と教えてもらった。はてなにはなんでもあるな。この機能にはフィードも用意されているので、これをlivedoor Readerで購読すればOK……と思いきや、明らかに被ブックマーク情報が飛び飛びでしか閲覧できなかった。原因はフィード側ではなく、LDR側の仕様によるものみたいだ。

LDRではフィードの記事はlink要素の値で管理されているようで、link要素の値が同じitem要素が複数存在するフィードの場合、常に新しいitemの方で上書きされてしまう。そのため場合によって、LDRのクローラーが巡回する合間に複数のユーザーにより同じURLがブックマークされた時など、は記事が欠落することになる。

はてブの新着ブックマークのフィードの各item要素のlink要素の値はブックマークされたURLになっているので、LDRでは常に一番新しいブックマークで上書きされ続けてしまう。これでは被ブックマークをトラッキングできない。フィードでは各itemのユニークなIDになり得る各ブックマークのpermalinkがitem要素のrdf:about属性として設定されているので、これをlink要素の値として設定しなおしてやれば良さそう。

ということで、LDRのためにはてブの新着ブックマークのフィードのlink要素の値をユニークにするPipeを書いた。多くの人は自分のコンテンツへの被ブックマークをトラッキングするために使うと思うので、必要がないと思われる(コンテンツの中身知ってるから)blockquote要素を削除したりしてある。


エントリのペース上がってきたな。