From 44d03973254bf9db5da52031789b834b289fc302 Mon Sep 17 00:00:00 2001 From: Shawn <45581750+KOP-XIAO@users.noreply.github.com> Date: Fri, 13 May 2022 20:54:23 +0800 Subject: [PATCH] update --- Scripts/switch-check-disneyplus.js | 105 ++++++++++++++++++++++----- Scripts/switch-check-google.js | 109 +++++++++++++++++++++++------ Scripts/switch-check-nf.js | 100 +++++++++++++++++++++----- Scripts/switch-check-ytb.js | 91 ++++++++++++++++++++---- 4 files changed, 333 insertions(+), 72 deletions(-) diff --git a/Scripts/switch-check-disneyplus.js b/Scripts/switch-check-disneyplus.js index 2d26869..976f315 100644 --- a/Scripts/switch-check-disneyplus.js +++ b/Scripts/switch-check-disneyplus.js @@ -41,11 +41,13 @@ const message = { }; var output=[] -var OKList=["完整解锁节点 ➟ "] +var OKList=[] var ResList=["即将登陆节点 ➟ "] var NoList=["不支持节点 ➟ "] var timeoutList=["检测超时节点 ➟ "] var pflag=1 //是否是策略,或者简单节点 +var sign=0 //是否停止 + $configuration.sendMessage(message).then(resolve => { if (resolve.error) { @@ -53,11 +55,18 @@ $configuration.sendMessage(message).then(resolve => { $done() } if (resolve.ret) { - //$notify(JSON.stringify(resolve.ret)) output=JSON.stringify(resolve.ret[message.content])? JSON.parse(JSON.stringify(resolve.ret[message.content]["candidates"])) : [$environment.params] pflag = JSON.stringify(resolve.ret[message.content])? pflag:0 console.log("Disneyᐩ 检测&切换") console.log("节点or策略组:"+pflag) + console.log(JSON.stringify(resolve.ret)) + if (pflag==1) { + console.log("节点数量:"+resolve.ret[$environment.params]["candidates"].length) + if(resolve.ret[$environment.params]["candidates"].length==0) { + $done({"title":"Disneyᐩ 检测&切换","htmlMessage":`
😭 无有效节点`});
+ }
+ }
+
//$notify(typeof(output),output)
Check()
//$done({"title":"策略内容","message":output})
@@ -68,6 +77,10 @@ $configuration.sendMessage(message).then(resolve => {
$done();
});
+function Len(cnt) {
+ return cnt.length-1
+}
+
function Check() {
var relay = 2000;
for ( var i=0;i < output.length;i++) {
@@ -90,9 +103,60 @@ function Check() {
}
console.log(output.length+":"+relay)
setTimeout(() => {
- const dict = { [policy] : OKList[1].split(": 支持 ")[0]};
- if(OKList[1]) {
- console.log("选定支持节点:"+OKList[1])
+ console.log("⛳️ 共计 "+OKList.length+" 个:支持节点 ➟ "+ OKList)
+ console.log("🏠 共计 "+Len(NoList)+" 个:"+NoList)
+ console.log("🕹 共计 "+Len(timeoutList)+" 个:"+timeoutList)
+ sign = 1
+ if (OKList[0] && pflag==1) { //有支持节点、且为策略组才操作
+ console.log("开始排序")
+ ReOrder(OKList)
+ } else if (!OKList[0]){ //不支持
+ content = pflag==0 ? `
😭 该节点不支持Disneyᐩ
👇
-------------------------
⟦ `+$environment.params+` ⟧
-------------------------`: `
` + "
❌ ⟦ "+$environment.params+ " ⟧ ⚠️ 切换失败
该策略组内未找到支持 Disneyᐩ 的节点" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
🎉 该节点支持 Disneyᐩ ➟` + OKList[0].split(": 支持 ")[1]+`
👇
-------------------------
⟦ `+$environment.params+` ⟧
-------------------------`
+ $done({"title":"Disneyᐩ 检测&切换", "htmlMessage": content})
+ }
+ }, relay)
+
+}
+
+
+
+//选择最优延迟节点
+function ReOrder(cnt) {
+ const array = cnt//;
+ const messageURL = {
+ action: "url_latency_benchmark",
+ content: array.map(item=>item.split(": 支持 ")[0])
+};
+ $configuration.sendMessage(messageURL).then(resolve => {
+ if (resolve.error) {
+ console.log(resolve.error);
+ }
+ if (resolve.ret) {
+ let output=JSON.stringify(resolve.ret);
+ //console.log("节点延迟:"+output);
+ //排序
+ //console.log("排序前: "+ array)
+ if(array){
+ try {
+ array.sort(function (a,b) {
+ //console.log(a+" VS "+b)
+ a=a.split(": 支持 ")[0]
+ b=b.split(": 支持 ")[0]
+ return (resolve.ret[a][1]!=-1 && resolve.ret[b][1] !=-1)? resolve.ret[a][1]-resolve.ret[b][1] : resolve.ret[b][1]
+ })
+ } catch (err) {
+ console.log(err)
+ }
+ }
+ console.log("排序后: "+array)
+ let Ping =resolve.ret[array[0].split(": 支持 ")[0]]
+ const dict = { [policy] : array[0].split(": 支持 ")[0]};
+ if(array[0]) {
+ console.log("选定支持 Disneyᐩ 节点:"+array[0].split(": 支持 ")[0]+"延迟数据为 👉"+Ping)
+ Ping = " ⚡️ 节点延迟 ➟ 「 "+Ping + " 」 "
}
const mes1 = {
action: "set_policy_state",
@@ -101,31 +165,31 @@ function Check() {
$configuration.sendMessage(mes1).then(resolve => {
if (resolve.error) {
console.log(resolve.error);
- content =pflag==0 && OKList[1]? `
` + "
⟦ "+$environment.params+ " ⟧
🎉 该节点支持 Disneyᐩ ➟" + OKList[1].split(": 支持 ")[1]+ `
` + "
⟦ "+$environment.params+ " ⟧
⚠️ 该节点不支持 Disneyᐩ " + `
` + "
⟦ "+$environment.params+ " ⟧
🎉 该节点支持 Disneyᐩ ➟" + array[0].split(": 支持 ")[1]+ `
` + "
⟦ "+$environment.params+ " ⟧
⚠️ 该节点不支持 Disneyᐩ " + `
` + "
⟦ "+$environment.params+ " ⟧
🚦 即将登陆节点所在地区 ➟" + ResList[1].split("登陆 ")[1]+`
` + "
❌ ⟦ "+$environment.params+ " ⟧ ⚠️ 切换失败
该策略组内未找到支持 Disneyᐩ 的节点" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
` + "
❌ ⟦ "+$environment.params+ " ⟧ ⚠️ 切换失败
该策略组内未找到支持 Disneyᐩ 的节点" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
` + "
⟦ "+$environment.params+ " ⟧ 已切换至支持"+OKList[1].split(": 支持 ")[1]+"的路线
👇
⟦ "+OKList[1].split(": 支持 ")[0]+ " ⟧" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
` + "
⟦ "+$environment.params+ " ⟧ 已切换至支持 Disneyᐩ "+array[0].split(": 支持 ")[1]+"中延迟最优的路线
👇
⟦ "+array[0].split(": 支持 ")[0]+ " ⟧" + "
"+Ping+"
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
😭 无有效节点`});
+ }
+ }
+
//$notify(typeof(output),output)
Check()
//$done({"title":"策略内容","message":output})
}
- //$done();|
}, reject => {
// Normally will never happen.
$done();
});
+function Len(cnt) {
+ return cnt.length-1
+}
+
function Check() {
var relay = 2000;
for ( var i=0;i < output.length;i++) {
testGoogle(output[i])
- }
+ }
if (output.length<=5) {
relay = 2000
} else if (output.length<10) {
@@ -64,12 +77,55 @@ function Check() {
}
console.log(output.length+":"+relay)
setTimeout(() => {
- console.log(OKList)
- console.log(NoList)
- console.log(ErrorList)
- const dict = { [policy] : OKList[1]};
- if(OKList[1]) {
- console.log("选定未被送中节点:"+OKList[1])
+ console.log("⛳️ 共计 "+OKList.length+" 个:未送中节点 ➟ "+ OKList)
+ console.log("🏠 共计 "+Len(NoList)+" 个:"+NoList)
+ console.log("🕹 共计 "+Len(ErrorList)+" 个:"+ErrorList)
+ sign=1
+ if (OKList[0] && pflag==1) { //有支持节点、且为策略组才操作
+ ReOrder(OKList)
+ } else if (!OKList[0]){ //不支持
+ content =pflag==0 ? `
😭 该节点已被 Google 送中
👇
-------------------------
⟦ `+$environment.params+` ⟧
-------------------------`: `
` + "
❌ ⟦ "+$environment.params+ " ⟧ ⚠️ 切换失败
该策略组内未找到未被 Google 送中 的节点" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
🎉 该节点未被 Google 送中
👇
-------------------------
⟦ `+$environment.params+` ⟧
-------------------------`
+ $done({"title":"Google 送中检测&切换", "htmlMessage": content})
+ }
+ }, relay)
+
+}
+
+//选择最优延迟节点
+function ReOrder(cnt) {
+ const array = cnt;
+ const messageURL = {
+ action: "url_latency_benchmark",
+ content: array
+};
+ $configuration.sendMessage(messageURL).then(resolve => {
+ if (resolve.error) {
+ console.log(resolve.error);
+ }
+ if (resolve.ret) {
+ let output=JSON.stringify(resolve.ret);
+ console.log("节点延迟:"+output);
+ //排序
+ console.log("排序前: "+ array)
+ if(array){
+ try {
+ array.sort(function (a,b) {
+ //console.log(a+" VS "+b)
+ return (resolve.ret[a][1]!=-1 && resolve.ret[b][1] !=-1)? resolve.ret[a][1]-resolve.ret[b][1] : resolve.ret[b][1]
+ })
+ } catch (err) {
+ console.log(err)
+ }
+ }
+ console.log("排序后: "+array)
+ let Ping =resolve.ret[array[0]]
+ const dict = { [policy] : array[0]};
+ if(array[0]) {
+ console.log("选定未被送中节点:"+array[0]+"延迟数据为 👉"+Ping)
+ Ping = " ⚡️ 节点延迟 ➟ 「 "+Ping + " 」 "
}
const mes1 = {
action: "set_policy_state",
@@ -78,27 +134,28 @@ function Check() {
$configuration.sendMessage(mes1).then(resolve => {
if (resolve.error) {
console.log(resolve.error);
- content =pflag==0 && OKList[1]? `
🎉 该节点未被 Google 送中
👇
-------------------------
⟦ `+$environment.params+` ⟧
-------------------------` : `
😭 该节点已被 Google 送中
👇
-------------------------
⟦ `+$environment.params+` ⟧
-------------------------`
- content = pflag!=0 && !OKList[1]? `
` + "
❌ ⟦ "+$environment.params+ " ⟧ ⚠️ 切换失败
该策略组内未找到未被 Google 送中 的节点" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
🎉 该节点未被 Google 送中
👇
-------------------------
⟦ `+$environment.params+` ⟧
-------------------------` : `
😭 该节点已被 Google 送中
👇
-------------------------
⟦ `+$environment.params+` ⟧
-------------------------`
+ content = pflag!=0 && !array[0]? `
` + "
❌ ⟦ "+$environment.params+ " ⟧ ⚠️ 切换失败
该策略组内未找到未被 Google 送中 的节点" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
` + "
⟦ "+$environment.params+ " ⟧ 已切换至未被Google 送中的路线
👇
⟦ "+OKList[1]+ " ⟧" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
` + "
⟦ "+$environment.params+ " ⟧ 已切换至未被Google 送中延迟最优路线
👇
⟦ "+array[0]+ " ⟧" + "
"+Ping+"
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
😭 无有效节点`});
+ }
+ }
//$notify(typeof(output),output)
Check()
//$done({"title":"策略内容","message":output})
@@ -55,6 +62,10 @@ $configuration.sendMessage(message).then(resolve => {
$done();
});
+function Len(cnt) {
+ return cnt.length-1
+}
+
function Check() {
var relay = 2000;
for ( var i=0;i < output.length;i++) {
@@ -77,9 +88,57 @@ function Check() {
}
console.log(output.length+":"+relay)
setTimeout(() => {
- const dict = { [policy] : OKList[1]};
- if(OKList[1]) {
- console.log("选定支持节点:"+OKList[1])
+ console.log("⛳️ 共计 "+OKList.length+" 个:完整支持节点 ➟"+ OKList)
+ console.log("🏠 共计 "+Len(NoList)+" 个:"+NoList)
+ console.log("🕹 共计 "+Len(timeoutList)+" 个:"+timeoutList)
+ sign=1
+ if (OKList[0] && pflag==1) {
+ console.log("开始排序")
+ ReOrder(OKList)
+ } else if (!OKList[0]){ //不支持
+ content =pflag==0 ? `
😭 该节点未完整支持 Netflix
👇
-------------------------
⟦ `+$environment.params+` ⟧
-------------------------`: `
` + "
❌ ⟦ "+$environment.params+ " ⟧ ⚠️ 切换失败
该策略组内未找到完整支持 Netflix 的节点" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
🎉 该节点完整支持 Netflix
👇
-------------------------
⟦ `+$environment.params+` ⟧
-------------------------`
+ //content = `
🎉 该节点支持 Disneyᐩ ➟` + OKList[0].split(": 支持 ")[1]+`
👇
-------------------------
⟦ `+$environment.params+` ⟧
-------------------------`
+ $done({"title":"Netflix 检测&切换", "htmlMessage": content})
+ }
+ }, relay)
+
+}
+
+//选择最优延迟节点
+function ReOrder(cnt) {
+ const array = cnt;
+ const messageURL = {
+ action: "url_latency_benchmark",
+ content: array
+ };
+ $configuration.sendMessage(messageURL).then(resolve => {
+ if (resolve.error) {
+ console.log(resolve.error);
+ }
+ if (resolve.ret) {
+ let output=JSON.stringify(resolve.ret);
+ console.log("节点延迟:"+output);
+ //排序
+ console.log("排序前: "+ array)
+ if(array){
+ try {
+ array.sort(function (a,b) {
+ //console.log(a+" VS "+b)
+ return (resolve.ret[a][1]!=-1 && resolve.ret[b][1] !=-1)? resolve.ret[a][1]-resolve.ret[b][1] : resolve.ret[b][1]
+ })
+ } catch (err) {
+ console.log(err)
+ }
+ }
+ console.log("排序后: "+array)
+ let Ping =resolve.ret[array[0]]
+ const dict = { [policy] : array[0]};
+ if(array[0]) {
+ console.log("选定完整支持节点:"+array[0]+"延迟数据为 👉"+Ping)
+ Ping = " ⚡️ 节点延迟 ➟ 「 "+Ping + " 」 "
}
const mes1 = {
action: "set_policy_state",
@@ -88,28 +147,30 @@ function Check() {
$configuration.sendMessage(mes1).then(resolve => {
if (resolve.error) {
console.log(resolve.error);
- content =pflag==0 && OKList[1]? `
` + "
⟦ "+$environment.params+ " ⟧
🎉 该节点完整支持 Netflix" + `
` + "
⟦ "+$environment.params+ " ⟧
⚠️ 该节点不支持 Netflix" + `
` + "
⟦ "+$environment.params+ " ⟧
🎉 该节点完整支持 Netflix" + `
` + "
⟦ "+$environment.params+ " ⟧
⚠️ 该节点不支持 Netflix" + `
` + "
⟦ "+$environment.params+ " ⟧
🚦 该节点仅支持 Netflix 自制剧集" + `
` + "
❌ ⟦ "+$environment.params+ " ⟧ 切换失败
该策略组内未找到完整支持 Netflix 的节点" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
` + "
❌ ⟦ "+$environment.params+ " ⟧ ⚠️ 切换失败
该策略组内未找到完整支持 Netflix 的节点" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
` + "
⟦ "+$environment.params+ " ⟧ 已切换至完整支持的路线
👇
⟦ "+OKList[1]+ " ⟧" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
` + "
⟦ "+$environment.params+ " ⟧ 已切换至完整支持的路线中延迟最优节点
👇
⟦ "+array[0]+ " ⟧" + "
"+Ping+"
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
😭 无有效节点`});
+ }
+ }
+
//$notify(typeof(output),output)
Check()
//$done({"title":"策略内容","message":output})
@@ -55,6 +63,10 @@ $configuration.sendMessage(message).then(resolve => {
$done();
});
+function Len(cnt) {
+ return cnt.length-1
+}
+
function Check() {
var relay = 2000;
for ( var i=0;i < output.length;i++) {
@@ -73,9 +85,56 @@ function Check() {
}
console.log(output.length+":"+relay)
setTimeout(() => {
- const dict = { [policy] : OKList[1]};
- if(OKList[1]) {
- console.log("选定支持节点:"+OKList[1])
+ console.log("⛳️ 共计 "+OKList.length+" 个:支持节点 ➟ "+ OKList)
+ console.log("🏠 共计 "+Len(NoList)+" 个:"+NoList)
+ console.log("🕹 共计 "+Len(ErrorList)+" 个:"+ErrorList)
+ sign = 1
+ if (OKList[0] && pflag==1) { //有支持节点、且为策略组才操作
+ console.log("开始排序")
+ ReOrder(OKList)
+ } else if (!OKList[0]){ //不支持
+ content =pflag==0 ? `
😭 该节点不支持 YouTube Premium
👇
-------------------------
⟦ `+$environment.params+` ⟧
-------------------------`: `
` + "
❌ ⟦ "+$environment.params+ " ⟧ ⚠️ 切换失败
该策略组内未找到支持 YouTube Premium 的节点" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
🎉 该节点支持 YouTube Premium
👇
-------------------------
⟦ `+$environment.params+` ⟧
-------------------------`
+ $done({"title":"YouTube Premium 检测&切换", "htmlMessage": content})
+ }
+ }, relay)
+
+}
+
+//选择最优延迟节点
+function ReOrder(cnt) {
+ const array = cnt;
+ const messageURL = {
+ action: "url_latency_benchmark",
+ content: array
+};
+ $configuration.sendMessage(messageURL).then(resolve => {
+ if (resolve.error) {
+ console.log(resolve.error);
+ }
+ if (resolve.ret) {
+ let output=JSON.stringify(resolve.ret);
+ console.log("节点延迟:"+output);
+ //排序
+ console.log("排序前: "+ array)
+ if(array){
+ try {
+ array.sort(function (a,b) {
+ //console.log(a+" VS "+b)
+ return (resolve.ret[a][1]!=-1 && resolve.ret[b][1] !=-1)? resolve.ret[a][1]-resolve.ret[b][1] : resolve.ret[b][1]
+ })
+ } catch (err) {
+ console.log(err)
+ }
+ }
+ console.log("排序后: "+array)
+ let Ping =resolve.ret[array[0]]
+ const dict = { [policy] : array[0]};
+ if(array[0]) {
+ console.log("选定支持YouTube Premium:"+array[0]+"延迟数据为 👉"+Ping)
+ Ping = " ⚡️ 节点延迟 ➟ 「 "+Ping + " 」 "
}
const mes1 = {
action: "set_policy_state",
@@ -84,27 +143,28 @@ function Check() {
$configuration.sendMessage(mes1).then(resolve => {
if (resolve.error) {
console.log(resolve.error);
- content =pflag==0 && OKList[1]? `
` + "
⟦ "+$environment.params+ " ⟧
🎉 该节点支持 YouTube Premium" + `
` + "
⟦ "+$environment.params+ " ⟧
⚠️ 该节点不支持 YouTube Premium" + `
` + "
❌ ⟦ "+$environment.params+ " ⟧ 切换失败
该策略组内未找到支持 YouTube Premium 的节点" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
` + "
⟦ "+$environment.params+ " ⟧
🎉 该节点支持 YouTube Premium" + `
` + "
⟦ "+$environment.params+ " ⟧
⚠️ 该节点不支持 YouTube Premium" + `
` + "
❌ ⟦ "+$environment.params+ " ⟧ ⚠️ 切换失败
该策略组内未找到支持 YouTube Premium 的节点" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
` + "
⟦ "+$environment.params+ " ⟧ 已切换至支持Premium 的路线
👇
⟦ "+OKList[1]+ " ⟧" + "
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`
` + "
⟦ "+$environment.params+ " ⟧ 已切换至支持Premium 的路线中延迟最优节点
👇
⟦ "+array[0]+ " ⟧" + "
"+Ping+"
-----------------------------
检测详情请查看JS脚本记录
-----------------------------"+`