From 8cbb4492bec0ace84096dc959e6ef282a2aa6592 Mon Sep 17 00:00:00 2001 From: xream Date: Thu, 25 Apr 2024 16:55:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=A8=E9=83=A8=E6=98=AF=20WireGuard?= =?UTF-8?q?=20=E8=8A=82=E7=82=B9=E7=9A=84=E8=AE=A2=E9=98=85,=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=BE=93=E5=87=BA=E4=B8=BA=20Surge=20=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/package.json | 2 +- backend/src/core/proxy-utils/index.js | 15 +++++++++++++-- backend/src/core/proxy-utils/producers/surge.js | 6 +++--- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/backend/package.json b/backend/package.json index 40b8628..82b15ae 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.14.300", + "version": "2.14.301", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.", "main": "src/main.js", "scripts": { diff --git a/backend/src/core/proxy-utils/index.js b/backend/src/core/proxy-utils/index.js index 044be79..7d8699f 100644 --- a/backend/src/core/proxy-utils/index.js +++ b/backend/src/core/proxy-utils/index.js @@ -219,7 +219,7 @@ function produce(proxies, targetPlatform, type, opts = {}) { $.log(`Producing proxies for target: ${targetPlatform}`); if (typeof producer.type === 'undefined' || producer.type === 'SINGLE') { let localPort = 10000; - const list = proxies + let list = proxies .map((proxy) => { try { let line = producer.produce(proxy, type, opts); @@ -245,7 +245,18 @@ function produce(proxies, targetPlatform, type, opts = {}) { } }) .filter((line) => line.length > 0); - return type === 'internal' ? list : list.join('\n'); + list = type === 'internal' ? list : list.join('\n'); + if ( + targetPlatform.startsWith('Surge') && + proxies.length > 0 && + proxies.every((p) => p.type === 'wireguard') + ) { + list = `#!name=${proxies[0]?.subName} +#!desc=${proxies[0]?._desc ?? ''} +#!category=${proxies[0]?._category ?? ''} +${list}`; + } + return list; } else if (producer.type === 'ALL') { return producer.produce(proxies, type, opts); } diff --git a/backend/src/core/proxy-utils/producers/surge.js b/backend/src/core/proxy-utils/producers/surge.js index 653931b..8c80189 100644 --- a/backend/src/core/proxy-utils/producers/surge.js +++ b/backend/src/core/proxy-utils/producers/surge.js @@ -762,8 +762,8 @@ function wireguard(proxy) { } const result = new Result(proxy); - result.append(`# WireGuard Proxy ${proxy.name} -${proxy.name}=wireguard`); + result.append(`# > WireGuard Proxy ${proxy.name} +# ${proxy.name}=wireguard`); proxy['section-name'] = getIfNotBlank(proxy['section-name'], proxy.name); @@ -821,7 +821,7 @@ ${proxy.name}=wireguard`); ); result.append(` -# WireGuard Section ${proxy.name} +# > WireGuard Section ${proxy.name} [WireGuard ${proxy['section-name']}] private-key = ${proxy['private-key']}`);