rssモジュールの仕様

よくわからないな。QUERY_STRINGがあるRSSのURLをうまく認識できていないのかな? rssモジュールのタイトル部に張られているリンクと、表示されている内容も食い違っているみたいだ。アイテムの表示順序がこちらで期待しているものと違っているのは、取得しているURL自体が違っているのか、それともはてな側で独自のソート処理を行っているのか、どちらだろう?

あと、rssモジュールは3つ以上書くと3つ目が無視されるみたいだけど、これは同一モジュールの設置個数制限とかに引っかかっているのかな? と思って試してみたら、モジュールの種類に関係なく、5個目以上のモジュールは無視されるのか。特にそういう記述はないけど、内部仕様としてそうなっているのかな?

というわけで、QUERY_STRING付きのRSS URLを渡したときのrssモジュールの挙動が、微妙におかしいような気がするのですが?>id:hatenadiary


表示URLが違うのは

渡しているRSSのchannel/linkがそうなっているからだった。あそこは渡されたURLを表示しているのではなく、channel/linkを表示しているのね。でも、設定したURLと表示しているアイテムが、微妙に対応していないような気がする(何となくQUERY_STRINGの途中までしか解釈していない?)のは変わらず。


ああ、わかったかも

RSSのURLとして、

http://mm.ishinao.net/index.rdf/1?kind=to_buy&sort=date&order=asc&associate=hatenadiary-22

というURLを指定しているんだけど、そのURLをGETしに行くときに、そのURLにURLエンコードをかけて、

http://mm.ishinao.net/index.html/1?kind=to_buy&sort=date&order=asc&associate=hatenadiary-22

としてリクエストしているんだね。で、うちはQUERY_STRINGのパラメータ区切り文字列に;が使えない設定になっているんで、パラメータの解釈が正常に働かなくなって、orderとかの指定が効いていない(最初のkind=to_buy以外は無視される)ってことっぽい。

というわけで、RSSを取得しに行くときに、URL文字列をURLエンコードしないでGETして欲しい。


ちょっと違うか

URL文字列自体をURLエンコードしたんだったら、&以外の部分もエンコードされるはずだよな。&だけがエンコードされているあたりから察するに、サニタイズがらみの処理が誤爆しているんではなかろうか。