Hatena::ブログ(Diary)

岩本隆史の日記帳

2008-09-04

相対URLを絶対URLにするグリモンを書いた

需要はあまりないとは思いますが、個人的にイライラの種だったので、書いてみました。

これが

f:id:IwamotoTakashi:20080904221331p:image

こうなる

f:id:IwamotoTakashi:20080904221330p:image

それだけですが、ちょっと補足

RESTful Webサービス』の共著者の一人であるSam Ruby氏のブログAtomフィードは、各エントリのURLがなぜか相対パスになっていて、LDRで「v」や「p」「o」すると、LDRの404ページが表示されてしまいます。

「フィードを直して」と頼めばすむ話かもしれませんが、グリモンが久々に書きたくなったのでした。他にもそんなフィードがあるかもしれないですし。

ちなみに、相対URLエントリを含むフィードについては、全エントリにGETリクエストが飛びます。200件を一度に表示すると、200件のGETリクエストが飛ぶわけです。さすがにスリープさせないとまずいので、1秒ごとに飛ぶよう調整しています。リクエストを飛ばさないURLの解決方法もあるとは思いますが、わいの頭では考えられへん。

Page not found | opendomain」よりabsoluteUrl関数を拝借、HTTPリクエストが飛ばないよう改善しました。

追記(2008-09-06)

うわあ、表示されているリンクを絶対パスにしても、「v」や「p」「o」には無力だよな…orz

暇みて直します!直しました! ソースのコメントにも書きましたが、キーボードショートカット使いの方(ほとんどそうでしょうけど)は、ABSOLUTIZE_TITLEをfalseにしたほうが良いです。タイトル部分のリンク先が相対URLのままになりますが、ここから飛ぶことはないですよね。

追記(2008-09-08)

"なぜか相対パス" < Atom フィード的には valid。LDR での対応が望まれます。ちなみに Tim Bray のフィードも相対パス。わざとやってるっぽいです。

はてなブックマーク - yohei:bookmark - 2008年9月8日

おお、ありがとうございます。なんとなくinvalidだと思い込んでました…orz

本家での対応を「livedoor へのご要望」からリクエストしてみました。実装されるといいな。

追記(2008-09-19)

Atomフィードの書き方が変わったため、このグリモンでは太刀打ちできなくなってますね。xml:baseを解釈しないフィードリーダー(LDR)に問題があるといってよいでしょう。短い命でした。

トラックバック - http://d.hatena.ne.jp/IwamotoTakashi/20080904/p1