feat: Surge includeUnsupportedProxy 去除 HTTP 传输层(不一定能通, 由服务端配置确定)

This commit is contained in:
xream 2024-05-30 18:41:56 +08:00
parent 3f620700a4
commit 8049134bb5
No known key found for this signature in database
GPG Key ID: 1D2C5225471789F9
2 changed files with 12 additions and 6 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "sub-store", "name": "sub-store",
"version": "2.14.325", "version": "2.14.326",
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.",
"main": "src/main.js", "main": "src/main.js",
"scripts": { "scripts": {

View File

@ -21,7 +21,7 @@ export default function Surge_Producer() {
case 'trojan': case 'trojan':
return trojan(proxy); return trojan(proxy);
case 'vmess': case 'vmess':
return vmess(proxy); return vmess(proxy, opts['include-unsupported-proxy']);
case 'http': case 'http':
return http(proxy); return http(proxy);
case 'socks5': case 'socks5':
@ -264,7 +264,7 @@ function trojan(proxy) {
return result.toString(); return result.toString();
} }
function vmess(proxy) { function vmess(proxy, includeUnsupportedProxy) {
const result = new Result(proxy); const result = new Result(proxy);
result.append(`${proxy.name}=${proxy.type},${proxy.server},${proxy.port}`); result.append(`${proxy.name}=${proxy.type},${proxy.server},${proxy.port}`);
result.appendIfPresent(`,username=${proxy.uuid}`, 'uuid'); result.appendIfPresent(`,username=${proxy.uuid}`, 'uuid');
@ -278,7 +278,7 @@ function vmess(proxy) {
); );
// transport // transport
handleTransport(result, proxy); handleTransport(result, proxy, includeUnsupportedProxy);
// AEAD // AEAD
if (isPresent(proxy, 'aead')) { if (isPresent(proxy, 'aead')) {
@ -1013,7 +1013,7 @@ function hysteria2(proxy) {
return result.toString(); return result.toString();
} }
function handleTransport(result, proxy) { function handleTransport(result, proxy, includeUnsupportedProxy) {
if (isPresent(proxy, 'network')) { if (isPresent(proxy, 'network')) {
if (proxy.network === 'ws') { if (proxy.network === 'ws') {
result.append(`,ws=true`); result.append(`,ws=true`);
@ -1038,8 +1038,14 @@ function handleTransport(result, proxy) {
} }
} }
} }
} else {
if (includeUnsupportedProxy && ['http'].includes(proxy.network)) {
$.info(
`Include Unsupported Proxy: nework ${proxy.network} -> tcp`,
);
} else { } else {
throw new Error(`network ${proxy.network} is unsupported`); throw new Error(`network ${proxy.network} is unsupported`);
} }
} }
}
} }