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

View File

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

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

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