Bug fixes.

This commit is contained in:
NobyDa 2021-01-25 20:37:07 +08:00
parent 358dcdcad9
commit 734654c015
1 changed files with 14 additions and 16 deletions

View File

@ -14,7 +14,7 @@ Sub-Store订阅管理器: https://github.com/Peng-YM/Sub-Store
******************************/ ******************************/
async function operator(proxies) { function operator(proxies) {
try { try {
if ($request.headers["User-Agent"].match(/Quantumult|Surge|Loon|Decar/) && !$.raw_Name) { if ($request.headers["User-Agent"].match(/Quantumult|Surge|Loon|Decar/) && !$.raw_Name) {
const rawInfo = $.read('subs'); const rawInfo = $.read('subs');
@ -23,31 +23,27 @@ async function operator(proxies) {
if ($request.url.match(/\/collection\//)) { //collection subscription. if ($request.url.match(/\/collection\//)) { //collection subscription.
const isOpen = readName[subtag].process.map(o => o.type).indexOf("Script Operator") != -1; const isOpen = readName[subtag].process.map(o => o.type).indexOf("Script Operator") != -1;
for (var i = 0; i < readName[subtag].subscriptions.length; i++) { for (var i = 0; i < readName[subtag].subscriptions.length; i++) {
try { $.raw_Name = readName[subtag].subscriptions[i];
$.raw_Name = readName[subtag].subscriptions[i]; if (!isOpen) break; //prevent queries in certain cases.
if (!isOpen) break; //prevent queries in certain cases. AllSubs(rawInfo[$.raw_Name].url, $.raw_Name);
const query = await $.http.get(rawInfo[readName[subtag].subscriptions[i]].url);
AllSubs(query, $.raw_Name);
} catch (er) {
$.notify(`🔹 订阅昵称:「 ${$.raw_Name||'未知'}`, ``, `🔺 查询失败:「 ${er.message||er}`);
}
} }
} else { //single subscription. } else { //single subscription.
$.raw_Name = rawInfo[subtag].name; $.raw_Name = rawInfo[subtag].name;
const query = await $.http.get(rawInfo[subtag].url); AllSubs(rawInfo[subtag].url, $.raw_Name);
AllSubs(query, $.raw_Name);
} }
} }
} catch (err) { } catch (err) {
$.notify(`🔹 订阅昵称:「 ${$.raw_Name||'未知'}`, ``, `🔺 查询失败:「 ${err.message||err}`); $.error(`\n🔹 订阅昵称:「 ${$.raw_Name||'未知'}\n🔺 查询失败:「 ${err.message||err}`);
} finally { } finally {
return proxies; return proxies;
} }
} }
function AllSubs(resp, subsName) { //reference to https://github.com/KOP-XIAO/QuantumultX/blob/master/Scripts/resource-parser.js async function AllSubs(subsUrl, subsName) {
var sinfo = JSON.stringify(resp.headers || '').replace(/ /g, "").toLowerCase(); try { //reference to https://github.com/KOP-XIAO/QuantumultX/blob/master/Scripts/resource-parser.js
if (sinfo.indexOf("total=") != -1 && sinfo.indexOf("download=") != -1) { var resp = await $.http.get(subsUrl);
var sinfo = JSON.stringify(resp.headers || '').replace(/ /g, "").toLowerCase();
if (sinfo.indexOf("total=") == -1 || sinfo.indexOf("download=") == -1) throw new Error('该订阅不包含流量信息');
var total = (parseFloat(sinfo.split("total=")[1].split(",")[0]) / (1024 ** 3)).toFixed(0); var total = (parseFloat(sinfo.split("total=")[1].split(",")[0]) / (1024 ** 3)).toFixed(0);
var usd = ((parseFloat(sinfo.indexOf("upload") != -1 ? sinfo.split("upload=")[1].split(",")[0] : "0") + parseFloat(sinfo.split("download=")[1].split(",")[0])) / (1024 ** 3)).toFixed(2); var usd = ((parseFloat(sinfo.indexOf("upload") != -1 ? sinfo.split("upload=")[1].split(",")[0] : "0") + parseFloat(sinfo.split("download=")[1].split(",")[0])) / (1024 ** 3)).toFixed(2);
var left = ((parseFloat(sinfo.split("total=")[1].split(",")[0]) / (1024 ** 3)) - ((parseFloat(sinfo.indexOf("upload") != -1 ? sinfo.split("upload=")[1].split(",")[0] : "0") + parseFloat(sinfo.split("download=")[1].split(",")[0])) / (1024 ** 3))).toFixed(2); var left = ((parseFloat(sinfo.split("total=")[1].split(",")[0]) / (1024 ** 3)) - ((parseFloat(sinfo.indexOf("upload") != -1 ? sinfo.split("upload=")[1].split(",")[0] : "0") + parseFloat(sinfo.split("download=")[1].split(",")[0])) / (1024 ** 3))).toFixed(2);
@ -61,5 +57,7 @@ function AllSubs(resp, subsName) { //reference to https://github.com/KOP-XIAO/Qu
var epr = ""; var epr = "";
} }
$.notify(`🔹 订阅昵称:「 ${subsName}`, epr, `🔸 已用流量:「 ${usd} GB 」\n🔸 剩余流量:「 ${left} GB 」`); $.notify(`🔹 订阅昵称:「 ${subsName}`, epr, `🔸 已用流量:「 ${usd} GB 」\n🔸 剩余流量:「 ${left} GB 」`);
} else $.error(`\n🔹 订阅昵称:「 ${subsName}\n🔺 查询失败:「 该订阅不包含流量信息 」`); } catch (er) {
$.error(`\n🔹 订阅昵称:「 ${subsName}\n🔺 查询失败:「 ${er.message||er}`);
}
} }