GreasemonkeyのGM_xmlhttpRequestならo2onにアクセスできる! と思ったですが、どうにも有効な利用法が思いつかず。
なんというか、bbs2chreaderのスキンをうだうだしたほうが、結果的に便利なものができるかもしれない。
とりあえず試してみたことをメモ。
SQLを実行する/実行結果を取得する
"(o2on管理画面のURL)xml/sql"に対してPOSTメソッドでSQLを渡してやれば(変数名は"sql")、そのSQLを実行できる。その後"(o2on管理画面のURL)xml/sql"をGETすれば、そのSQLの実行結果が得られる。POSTに対するレスポンスが帰ってきてからでないと結果は期待できない。
例
ママチャリスレの情報を取得
var o2onAdminUrl = 'http://127.0.0.1:9999/';
var oThreadInfo = {
domain: '2ch.net',
bbsname: 'news4vip',
datname: '1164641644.dat'
};
var sql = (function(oWhere) {
var result = 'SELECT * FROM dat', aWhere = [];
for (var column in oWhere) {
aWhere.push(column + ' = "' + oWhere[column] + '"');
}
result += ' WHERE ' + aWhere.join(' AND ');
return result;
})(oThreadInfo);
GM_xmlhttpRequest({
method: 'POST',
url: o2onAdminUrl + 'xml/sql',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: 'sql=' + encodeURIComponent(sql),
onload: (function() {
GM_xmlhttpRequest({
method: 'GET',
url: o2onAdminUrl + 'xml/sql',
onload: (function(res) {
GM_log(res.responseText);
})
});
})
});
検索にスレッドを登録/登録解除/有効化/無効化
"(o2on管理画面のURL)xml/query"にPOST。使用する変数は以下のとおり。
| 名前 | 説明 |
|---|---|
| act | 操作の種類。add(登録) / delete(削除) / activate(有効化) / deactivate (無効化) のいずれか |
| url | スレッドのURL (登録時のみ必要) |
| note | メモ (登録時のみ有効) |
| hash | スレッドのハッシュ (登録時には不要) |
その他
他にも多数の情報を"(o2on管理画面のURL)xml/(なんとかかんとか)"で取得できる。