From 707463e09ed226b1c866f69d0764ffe9f910e8b4 Mon Sep 17 00:00:00 2001 From: xream Date: Thu, 30 May 2024 18:41:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20Surge=20includeUnsupportedProxy=20?= =?UTF-8?q?=E5=8E=BB=E9=99=A4=20HTTP=20=E4=BC=A0=E8=BE=93=E5=B1=82(?= =?UTF-8?q?=E4=B8=8D=E4=B8=80=E5=AE=9A=E8=83=BD=E9=80=9A,=20=E7=94=B1?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=E9=85=8D=E7=BD=AE=E7=A1=AE=E5=AE=9A?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/package.json | 2 +- backend/src/core/proxy-utils/producers/surge.js | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) 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`); + } } } }