「最新版を確認」の版間の差分

MSY-07 (トーク | 投稿記録)
URLの正規表現を修正、ソースコードの整形
MSY-07 (トーク | 投稿記録)
URLのマッチング条件を修正、変数の宣言を分割
 
(同じ利用者による、間の7版が非表示)
4行目: 4行目:


== ソースコード ==
== ソースコード ==
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript" copy>
#title = "最新版を確認"
#title = "最新版を確認"
#tooltip = "Meryの最新版があるか確認します。"
#tooltip = "Meryの最新版があるか確認します。"
16行目: 16行目:
// https://learn.microsoft.com/ja-jp/windows/win32/winhttp/retrieving-data-using-script
// https://learn.microsoft.com/ja-jp/windows/win32/winhttp/retrieving-data-using-script
function getText(strURL) {
function getText(strURL) {
var strResult;
var strResult = "";
try {
try {
// Create the WinHTTPRequest ActiveX Object.
// Create the WinHTTPRequest ActiveX Object.
22行目: 22行目:


// Create an HTTP request.
// Create an HTTP request.
var temp = WinHttpReq.Open("GET", strURL, false);
WinHttpReq.Open("GET", strURL, false);


// Send the HTTP request.
// Send the HTTP request.
30行目: 30行目:
strResult = WinHttpReq.ResponseText;
strResult = WinHttpReq.ResponseText;
} catch (objError) {
} catch (objError) {
strResult = objError + "\n";
strResult = objError.message + "\n";
strResult += "WinHTTP returned error: " + (objError.number & 0xFFFF).toString() + "\n\n";
strResult += "WinHTTP returned error: " + (objError.number & 0xFFFF).toString(16) + "\n\n";
strResult += objError.description;
strResult += objError.description;
}
}
45行目: 45行目:
b = b.split('.');
b = b.split('.');


var ia, ib;
var ia = 0;
var ib = 0;
var limit = Math.max(a.length, b.length);
var limit = Math.max(a.length, b.length);
while (limit--) {
while (limit--) {
ia = parseInt(a.shift() || 0);
ia = parseInt(a.shift() || 0, 10);
ib = parseInt(b.shift() || 0);
ib = parseInt(b.shift() || 0, 10);


if (ia != ib) {
if (ia != ib) {
56行目: 57行目:
}
}


return eval([ia, op, ib].join(' '));
return eval([ia || 0, op, ib || 0].join(' '));
}
}


65行目: 66行目:


// マッチングの修正
// マッチングの修正
var m = res.replace(/[\n\r]/g, "").match(/<a href="(https:\/\/www.haijin-boys.com\/software\/mery\/mery-\d-\d-\d)" title="テキストエディター「Mery」ベータ版 Ver (\d.\d.\d) を公開" rel="bookmark">/);
var m = res.replace(/[\n\r]/g, "").match(/<a href="(https:\/\/www\.haijin-boys\.com\/software\/mery\/mery-\d-\d-\d{1,2})" title="テキストエディター「Mery」ベータ版 v(\d\.\d\.\d{1,2}) を公開" rel="bookmark">/);
if (!m) {
window.alert("バージョンの確認ができませんでした。");
return;
}


var new_uri = m[1];
var new_uri = m[1];
72行目: 77行目:
// 最新のバージョンか確認
// 最新のバージョンか確認
if (version(editor.Version, "<", new_version)) {
if (version(editor.Version, "<", new_version)) {
var mes = "新しいバージョン(" + new_version + ")が見つかりました。\nWebサイトを開きますか?";
var mes = "最新のバージョンが見つかりました。\nWebサイトを開きますか?\n\n現在のVer " + editor.Version + "\n最新のVer " + new_version;
if (confirm(mes)) {
if (confirm(mes)) {
var Shell = new ActiveXObject("WScript.Shell");
var Shell = new ActiveXObject("WScript.Shell");
78行目: 83行目:
}
}
} else {
} else {
window.alert("最新のバージョンがインストールされています。");
window.alert("最新のバージョンがインストールされています。\n\n現在のVer " + editor.Version + "\n最新のVer " + new_version);
}
}
}
}
86行目: 91行目:
checkUpdate();
checkUpdate();
} catch (e) {
} catch (e) {
window.alert("バージョンの確認ができませんでした。");
window.alert(e.message);
}
}
</syntaxhighlight>
</syntaxhighlight>
スポンサーリンク