読者です 読者をやめる 読者になる 読者になる

Windows用 oAutoPagerize, xLDRizeのSITEINFOの更新バッチ

karakara - oAutoPagerizeの0AutoPagerize.SITEINFO.jsをアップデートするExcelマクロを作った。をヒントに、インストールなど一切不要(たぶん)なバッチファイルを書いてみました。(WindowsXP SP3で動作確認)

下記の2つのファイルを同じフォルダに保存し、UpdateSiteinfo.jsの1行目にOperaのUserjsフォルダのパスを指定してください(パスに日本語などが含まれる場合は文字コードShift_jisで保存するようにしてください。BOMありのUTF-8だとエラーになるので、Shift_jisが無難です。Thx! id:kara35)。
http://ss-o.net/bat/UpdateSiteinfo.bat
http://ss-o.net/bat/UpdateSiteinfo.js

コメントで、「1つのファイルでバッチファイルとJSファイルの両方で機能させる方法」を教えてもらったので、1ファイル版も用意しました。こちらは5行目にパスを指定してください。
http://ss-o.net/bat/UpdateSiteinfo.standalone.bat

UpdateSiteinfo.batのほうを実行すればSITEINFOが更新されます。ショートカットをスタートアップに登録しておくと良いでしょう。

LDRize用: http://ss-o.net/bat/UpdateLDRizeSiteinfo.standalone.bat


UpdateSiteinfo.batはcscriptでUpdateSiteinfo.jsを実行するだけの1行、UpdateSiteinfo.jsは9行と、全部で10行のプログラムです。
# あ、エラー処理していないので、wedataXREAが落ちてるとSITEINFOが消えるかも。たぶんあとで直す。少し手を入れた。考えてみると0AutoPagerize.SITEINFO.jsはXREAにあるんだった。wedataより安定してるかも?

適当に検索して見つけた、ダウンロード後の保存ディレクトリ選択の制御 | その他(プログラミング)のQ&A【OKWave】のサンプルソースをほとんどそのまま拝借しました。

var path = "C:\\OperaのUserjsフォルダのパスを指定してください\\0AutoPagerize.SITEINFO.js";
var url = "http://ss-o.net/userjs/0AutoPagerize.SITEINFO.js";

WScript.Echo("updating oAutoPagerize SITEINFO");
var status = "_____ok";
var xmlHttp = new ActiveXObject("MSXML2.XMLHttp");
xmlHttp.open("GET", url ,false);
xmlHttp.onreadystatechange = function(){
	WScript.Echo(status.substring(0,xmlHttp.readyState));
	if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
		try {
			var fso = new ActiveXObject('Scripting.FileSystemObject');
			var stream = fso.createTextFile(path, true);
			stream.write(xmlHttp.responseText);
			stream.close();
			WScript.Echo(status);
		} catch (e) {
			WScript.Echo(e.message);
		}
	} else if (xmlHttp.readyState == 4 && xmlHttp.status > 200){
		WScript.Echo(xmlHttp.status + " " + xmlHttp.statusText);
	}
}
xmlHttp.send();