var $doc = $(document); (function () { var lastStatus = 0; var initialized = false; var updateState = function (state) { var html = ""; switch (state) { case 0: html = "正常运行中..."; break; case 1: html = "正在从服务器更新节点列表..."; break; case 2: html = "正在对节点测速中..."; break; case 3: html = "正在筛选节点..."; break; } if (html) $("#currentStatus").html(html); }; var loadServerList = function (list) { var html = ["
" + (otn.ip ? otn.ip : "系统默认服务器") + "
延迟 " + (otn.speed > 0 ? otn.speed + "毫秒" : "未知") + "
" + (otn.count > 0 ? " 已过慢或失败 " + otn.count + "
次" : ""));
} else {
$("#currentServerOtn").html("--状态未知--");
}
//if (dynamic) {
// $("#currentServerDynamic").html("正在使用 " + (dynamic.ip ? dynamic.ip : "系统默认服务器") + "
延迟 " + (dynamic.speed > 0 ? dynamic.speed + "毫秒" : "未知") + "
" + (dynamic.count > 0 ? " 已过慢或失败 " + dynamic.count + "
次" : ""));
//} else {
// $("#currentServerDynamic").html("--状态未知--");
//}
$("#currentServer").html(m.ip ? m.ip : "系统默认服务器");
$("#currentServerSpeed").html(m.speed > 0 ? (m.speed / 1000) + "毫秒" : "未知");
});
});
$doc.bind("refreshServerStatus", function () {
chrome.runtime.sendMessage({ action: "getServerStatus" }, function (m) {
$("#currentServerStorage").html([
"总节点数 ",
m.count,
' ',
"可用节点数 ",
m.valid,
' ',
"超时节点数 ",
m.timeout,
' ',
"无效节点数 ",
m.failed,
' '
].join(""));
if (m.status === 0) {
var iplist = _.map(_.flatten(m.validList), function (e) { return "" + e.ip + "
"; });
$("#currentServerValidList").html(iplist.length ? iplist.join("") : "暂无节点");
} else {
$("#currentServerValidList").html("节点列表正在更新中....");
}
if (!initialized) {
initialized = true;
if (m.status === 2 || m.status === 3) {
$doc.trigger("reloadServer");
}
}
updateState(m.status);
});
});
$doc.bind("reloadServer", function () {
chrome.runtime.sendMessage({ action: "getServerList" }, function (list) {
loadServerList(list);
});
$doc.trigger("refreshServerStatus");
});
message.addAction("serverStateChange", function () {
updateState(this.state);
if (this.state === 2 || this.state === 3) {
$doc.trigger("reloadServer");
}
$doc.trigger("refreshServerStatus");
$doc.trigger("refreshCurrentServer");
});
message.addAction("serverTestResult", function () {
var key = this.ip.replace(/\./g, "_");
var cls = this.status < 0 ? "danger" : !this.status ? "active" : "success";
var content = (this.status == -1 ? "连接失败" : this.status == -2 ? "速度过慢" : "速度 " + (this.speed / 1000) + " 秒");
$("#s_" + key).removeClass().addClass(cls).next().removeClass().addClass(cls).html(content);
$doc.trigger("refreshServerStatus");
});
$doc.trigger("refreshServerStatus");
$doc.trigger("refreshCurrentServer");
})();
(function () {
message.sendAction("servervalid", null, function (resp) {
if (resp.valid === 0) {
$("div.container").hide();
$("#notValid").show();
}
if (resp.valid === -1) {
$("div.container").hide();
$("#inProxy").show();
}
if (resp.valid === -2) {
$("div.container").hide();
$("#greenMode").show();
}
});
})();