proglog

主にプログラミングに関する断片的メモ

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に入る。

firefoxjavascriptではスリープにPackages.java.lang.Thread.sleepが使える。

複数リクエストする時、XMLHttpRequestは使いまわすより、新しく作ったほうがいい?

なぜか、dumpが効かない。

任意のthisをselfに格納して、持ち込む。