Add script demo

This commit is contained in:
Peng-YM 2020-09-21 13:23:05 +08:00
parent d8129de848
commit 535a20bd90
3 changed files with 31 additions and 14 deletions

View File

@ -236,7 +236,6 @@ async function parseSub(sub, platform) {
} else {
proxies = processFilter(filter(item.args), proxies);
}
} catch (err) {
$.error(`Failed to apply filter "${item.type}"!\n REASON: ${err}`);
}
@ -940,7 +939,7 @@ function URI_VMess() {
}
// handle scert
if (proxy.tls && params['"tls-verification"'] === 'false') {
if (proxy.tls && params['"tls-verification"'] === "false") {
proxy.scert = true;
}
@ -1719,14 +1718,22 @@ function Surge_Producer() {
}`;
}
if (proxy.tls) {
config += `${typeof proxy.scert !== 'undefined' ? ",skip-cert-verify=" + proxy.scert : ""}`
config += `${
typeof proxy.scert !== "undefined"
? ",skip-cert-verify=" + proxy.scert
: ""
}`;
config += proxy.sni ? `,sni=${proxy.sni}` : "";
}
return config;
case "trojan":
return `${proxy.name}=trojan,${proxy.server},${proxy.port},password=${
proxy.password
}${typeof proxy.scert !== "undefined" ? ",skip-cert-verify=" + proxy.scert : ""}${proxy.sni ? ",sni=" + proxy.sni : ""},tfo=${proxy.tfo || "false"}`;
}${
typeof proxy.scert !== "undefined"
? ",skip-cert-verify=" + proxy.scert
: ""
}${proxy.sni ? ",sni=" + proxy.sni : ""},tfo=${proxy.tfo || "false"}`;
case "http":
tls_opts = ",tls=false";
if (proxy.tls) {
@ -2010,7 +2017,7 @@ function ScriptOperator(script) {
} else if (item.name.indexOf("Operator") !== -1) {
return processFilter(item, proxies);
}
}
};
eval(script);
output = operator(proxies);
})();

View File

@ -1,10 +1,17 @@
function operator(proxies) {
const counter = {};
return proxies.map(p => {
if (!counter[p.name]) counter[p.name] = 0;
++counter[p.name];
const num = "00000" + counter[p.name];
p.name = p.name + " " + num.substr(num.length-2);
return p;
});
}
const counter = {};
const increment = {};
proxies.forEach((p) => {
if (typeof counter[p.name] === 'undefined') counter[p.name] = 1;
else counter[p.name]++;
});
console.log(counter);
return proxies.map((p) => {
if (counter[p.name] > 1) {
if (typeof increment[p.name] === "undefined") increment[p.name] = 1;
const num = "00000" + increment[p.name]++;
p.name = p.name + " " + num.substr(num.length - 2);
}
return p;
});
}

3
scripts/udp-filter.js Normal file
View File

@ -0,0 +1,3 @@
function filter(proxies) {
return proxies.map(p => p.udp);
}