Livedoorクリップのタグを書き換える。xml、json、XMLHttpRequest
windows xp、Firefox3.6、拡張機能のMozRepl、meadowのjs2-modeとmozrepl用のマイナーモードmoz.elという環境下で、色々勉強のためにLivedoorクリップのタグを書き換えるスクリプトを書いてみた。
その途上で分かったこと色々をメモ。
XMLHttpRequestでローカルのファイルが読める。
jsonはなんとなく連想配列で、keyもクォートする。
JSON.parseでパースしたら、あとは普通の連想配列として使う。
var req = new XMLHttpRequest(); req.open('GET', 'file:///D:/home/user/tag.json', false); req.send(null); var data = JSON.parse( req.responseText ); var mod_tag = data.mod_tag; var target_tags = data.target_tags;
xmlのdomでgetElementsByTagNameとかで読み込んで返ってくるNodeListは、Array.prototype.slice.callにかけて、通常の配列化して使うと、便利。
XMLHttpRequestでのbasic認証。
btoaでのbase64エンコード出来る。
var ldid = 'アカウント'; var apikey = 'クリップのAPIKEY'; var header = "Basic " + btoa(ldid + ':' + apikey); var open_url = "APIのURLと必要なデータをセットしてエスケープされたクエリー文字列"; var req = new XMLHttpRequest(); req.open('GET', open_url, false); req.setRequestHeader('Authorization', header); req.send(null);
結果はreq.responseTextに入る。
firefoxのjavascriptではスリープにPackages.java.lang.Thread.sleepが使える。
複数リクエストする時、XMLHttpRequestは使いまわすより、新しく作ったほうがいい?
なぜか、dumpが効かない。
任意のthisをselfに格納して、持ち込む。