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 = [""]; _.each(list, function (s, i) { var cls = s.status < 0 ? "danger" : !s.status ? "active" : "success"; var key = s.ip.replace(/\./g, "_"); html.push(""); html.push(s.ip); html.push(""); if (!s.status) { html.push("等待测速..."); } else { html.push(s.status == -1 ? "连接失败" : s.status == -2 ? "速度过慢" : "速度 " + (s.speed / 1000) + " 秒"); } html.push(""); if (i % 4 === 3) { html.push(""); } }); if (!list.length) { html.push("当前没有服务器在等待速度测试。"); } html.push(""); $("#serverList tr:gt(0)").remove(); $("#serverList").append(html.join("")); }; $doc.bind("refreshCurrentServer", function () { chrome.runtime.sendMessage({ action: "getCurrentServer" }, function (m) { var otn = m["kyfw.12306.cn"]; //var dynamic = m["dynamic.12306.cn"]; if (otn) { $("#currentServerOtn").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(); } }); })();