diff --git a/backend/sub-store.js b/backend/sub-store.js index 7227fdb..0b3f523 100644 --- a/backend/sub-store.js +++ b/backend/sub-store.js @@ -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); })(); diff --git a/scripts/handle-duplicate.js b/scripts/handle-duplicate.js index fbdf32e..5550084 100644 --- a/scripts/handle-duplicate.js +++ b/scripts/handle-duplicate.js @@ -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; - }); -} \ No newline at end of file + 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; + }); +} diff --git a/scripts/udp-filter.js b/scripts/udp-filter.js new file mode 100644 index 0000000..ebf8432 --- /dev/null +++ b/scripts/udp-filter.js @@ -0,0 +1,3 @@ +function filter(proxies) { + return proxies.map(p => p.udp); +}