Amazon の検索結果を RSS でお届けするサービス.
作者買いをするタイプでかつコンプリートマニアなあたしとしては,目をつけたクリエイタの発信物は全てゲットしたいのだけど,なかなかそういうレーダってのも作りにくいものでして.
amazon が「新アイテム通知サービス」みたいの提供してくれれば早いんだけど,そういうのやってないし.代わりに Web Service を提供してるってんで,ID 取って作ってみた.
もうずいぶんと前からこういうの作ろうと思ってて,でも世の中の誰かが絶対に同じようなのを作ってるはずなんだけど,まぁお勉強も兼ねてってことで.サービスのハンドリング自体は PEAR::Services_Amazon 使ってるからお勉強も何もないんだけどさw
しっかし,amazon のサイトから検索すると見つかる物でも,Web Service からだと検索結果なしになったりするのが謎だ.ひらがな・カタカナばかりの検索語に特に弱いみたい.完全一致オプションとかあればいいんだけどなぁ……
で,まぁ,ひとまず出来上がったので,ひたすら RSS を生成しまくって RSS リーダに登録っと.あ,生成つっても,毎回 amazon にリクエスト投げて(結果キャッシュは 1日保管してるが),結果を RSS の形式で返すだけですから.連打すると amazon に BAN される,のだろーか.規定では 1 request per sec. らしいんで,中でロックかけて sleep(1) したりしてるんだけど……
なんか日記書くのめっさ久しぶりですが.グダグダ仕事で精神をやられていて,書く時間はあっても書く余裕がなかったのですよ.でもその仕事はもうリタイアしたので今はゆったり療養中.
で,とりあえず今日仕事でハマって解決したところをメモっておこう.じゃないとぜったい忘れるから.
そのいち.AJAX で XMLHttpRequest するわけだが,サーバ側コードでいくら XML を返していても,Content-Type を application/xml にしてないと Firefox が ResponseXML プロパティを設定してくれない.undefined でなく null になる.
responseText プロパティはしっかり返ってくるから余計に混乱.というかこの罠,なんかずいぶん前にも経験したような気がしなくもないんだけど,まぁ覚えてないから罠にハマるんだなぁ.
ちなみに AJAX 的処理には Ajax用ライブラリを使わせてもらいましたん.prototype.js は余計な機能が多すぎて重そうな気がしたんだけど,実際のところどうなんだろう.今回はホントにサーバから数文字もらってくるだけの処理だったので豪華機能はいらなかったからよかったけど.
で,そのにー.HTML を添付にしたメールを Becky! で受け取ってファイル保存する時に,「実行可能タグを無効化」にしてると,スクリプト関連がまるっと潰されてしまう.
出来上がった HTML を,インストールの仕方とか含めてメールで送って確認してもらったら,どうもスクリプト関連が完全に無効化されてしまっていて正常に動かない.<body onload=""> は <body xxxxxx=""> になってるし,<script>~~</script> は <!-- >~~</scri--> になってる,といった具合.
最初これサーバ側の何かのコード(XOOPS とか PHP とか apache とか)に何か仕込んであるのかと思ってさんざん探し回ったんだけど,結局は Becky! の仕業っぽかった.
いや Becky! が悪いという話ではないのだけどね.保存の時に,いったんブラウザで開いて確認してからブラウザでファイル保存とかするとか,そういうルートを通るとこうなるのだと思われる.気ぃ使うわぁ.