diff --git a/backend/package.json b/backend/package.json index c904558..8bc72d4 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.14.325", + "version": "2.14.326", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.", "main": "src/main.js", "scripts": { diff --git a/backend/src/core/proxy-utils/producers/surge.js b/backend/src/core/proxy-utils/producers/surge.js index 415cf9f..af3401b 100644 --- a/backend/src/core/proxy-utils/producers/surge.js +++ b/backend/src/core/proxy-utils/producers/surge.js @@ -21,7 +21,7 @@ export default function Surge_Producer() { case 'trojan': return trojan(proxy); case 'vmess': - return vmess(proxy); + return vmess(proxy, opts['include-unsupported-proxy']); case 'http': return http(proxy); case 'socks5': @@ -264,7 +264,7 @@ function trojan(proxy) { return result.toString(); } -function vmess(proxy) { +function vmess(proxy, includeUnsupportedProxy) { const result = new Result(proxy); result.append(`${proxy.name}=${proxy.type},${proxy.server},${proxy.port}`); result.appendIfPresent(`,username=${proxy.uuid}`, 'uuid'); @@ -278,7 +278,7 @@ function vmess(proxy) { ); // transport - handleTransport(result, proxy); + handleTransport(result, proxy, includeUnsupportedProxy); // AEAD if (isPresent(proxy, 'aead')) { @@ -1013,7 +1013,7 @@ function hysteria2(proxy) { return result.toString(); } -function handleTransport(result, proxy) { +function handleTransport(result, proxy, includeUnsupportedProxy) { if (isPresent(proxy, 'network')) { if (proxy.network === 'ws') { result.append(`,ws=true`); @@ -1039,7 +1039,13 @@ function handleTransport(result, proxy) { } } } else { - throw new Error(`network ${proxy.network} is unsupported`); + if (includeUnsupportedProxy && ['http'].includes(proxy.network)) { + $.info( + `Include Unsupported Proxy: nework ${proxy.network} -> tcp`, + ); + } else { + throw new Error(`network ${proxy.network} is unsupported`); + } } } }