From e7a2e60963fc340df47abea5df776bc908f74cd0 Mon Sep 17 00:00:00 2001 From: xream Date: Sun, 31 Mar 2024 09:36:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20sing-box=20=E8=AE=A2=E9=98=85=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E4=BF=AE=E6=94=B9(=E5=A6=82=E9=9C=80=E5=8E=9F?= =?UTF-8?q?=E5=A7=8B=E6=A0=BC=E5=BC=8F=20=E8=AF=B7=E4=BD=BF=E7=94=A8=20tar?= =?UTF-8?q?get=3Dsing-box&produceType=3Dinternal);=20=E6=B8=85=E7=90=86=20?= =?UTF-8?q?Clash=20=E7=B3=BB=E6=97=A0=E6=95=88=E5=AD=97=E6=AE=B5?= 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/clash.js | 7 +++++++ backend/src/core/proxy-utils/producers/clashmeta.js | 7 +++++++ backend/src/core/proxy-utils/producers/shadowrocket.js | 7 +++++++ backend/src/core/proxy-utils/producers/sing-box.js | 4 +++- backend/src/core/proxy-utils/producers/stash.js | 7 +++++++ backend/src/core/proxy-utils/producers/uri.js | 7 +++++++ scripts/demo.js | 5 +++++ 8 files changed, 44 insertions(+), 2 deletions(-) diff --git a/backend/package.json b/backend/package.json index cd6a73c..860dfa1 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.14.271", + "version": "2.14.272", "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/clash.js b/backend/src/core/proxy-utils/producers/clash.js index 5348bab..45ff222 100644 --- a/backend/src/core/proxy-utils/producers/clash.js +++ b/backend/src/core/proxy-utils/producers/clash.js @@ -150,6 +150,13 @@ export default function Clash_Producer() { delete proxy.subName; delete proxy.collectionName; + delete proxy.id; + delete proxy.resolved; + for (const key in proxy) { + if (proxy[key] == null) { + delete proxy[key]; + } + } if ( ['grpc'].includes(proxy.network) && proxy[`${proxy.network}-opts`] diff --git a/backend/src/core/proxy-utils/producers/clashmeta.js b/backend/src/core/proxy-utils/producers/clashmeta.js index 882bb7e..a0594d1 100644 --- a/backend/src/core/proxy-utils/producers/clashmeta.js +++ b/backend/src/core/proxy-utils/producers/clashmeta.js @@ -165,6 +165,13 @@ export default function ClashMeta_Producer() { } delete proxy.subName; delete proxy.collectionName; + delete proxy.id; + delete proxy.resolved; + for (const key in proxy) { + if (proxy[key] == null) { + delete proxy[key]; + } + } if ( ['grpc'].includes(proxy.network) && proxy[`${proxy.network}-opts`] diff --git a/backend/src/core/proxy-utils/producers/shadowrocket.js b/backend/src/core/proxy-utils/producers/shadowrocket.js index 20e17f4..ce48ff6 100644 --- a/backend/src/core/proxy-utils/producers/shadowrocket.js +++ b/backend/src/core/proxy-utils/producers/shadowrocket.js @@ -168,6 +168,13 @@ export default function ShadowRocket_Producer() { } delete proxy.subName; delete proxy.collectionName; + delete proxy.id; + delete proxy.resolved; + for (const key in proxy) { + if (proxy[key] == null) { + delete proxy[key]; + } + } if ( ['grpc'].includes(proxy.network) && proxy[`${proxy.network}-opts`] diff --git a/backend/src/core/proxy-utils/producers/sing-box.js b/backend/src/core/proxy-utils/producers/sing-box.js index 1164865..dcc8103 100644 --- a/backend/src/core/proxy-utils/producers/sing-box.js +++ b/backend/src/core/proxy-utils/producers/sing-box.js @@ -789,7 +789,9 @@ export default function singbox_Producer() { $.error(e.message ?? e); } }); - return type === 'internal' ? list : JSON.stringify(list, null, 2); + return type === 'internal' + ? list + : JSON.stringify({ outbounds: list }, null, 2); }; return { type, produce }; } diff --git a/backend/src/core/proxy-utils/producers/stash.js b/backend/src/core/proxy-utils/producers/stash.js index 27f8995..7435a8e 100644 --- a/backend/src/core/proxy-utils/producers/stash.js +++ b/backend/src/core/proxy-utils/producers/stash.js @@ -257,6 +257,13 @@ export default function Stash_Producer() { delete proxy.subName; delete proxy.collectionName; + delete proxy.id; + delete proxy.resolved; + for (const key in proxy) { + if (proxy[key] == null) { + delete proxy[key]; + } + } if ( ['grpc'].includes(proxy.network) && proxy[`${proxy.network}-opts`] diff --git a/backend/src/core/proxy-utils/producers/uri.js b/backend/src/core/proxy-utils/producers/uri.js index 9ef86d0..da93b6a 100644 --- a/backend/src/core/proxy-utils/producers/uri.js +++ b/backend/src/core/proxy-utils/producers/uri.js @@ -8,6 +8,13 @@ export default function URI_Producer() { let result = ''; delete proxy.subName; delete proxy.collectionName; + delete proxy.id; + delete proxy.resolved; + for (const key in proxy) { + if (proxy[key] == null) { + delete proxy[key]; + } + } if (['trojan', 'tuic', 'hysteria', 'hysteria2'].includes(proxy.type)) { delete proxy.tls; } diff --git a/scripts/demo.js b/scripts/demo.js index 282b383..3ab3ae8 100644 --- a/scripts/demo.js +++ b/scripts/demo.js @@ -36,8 +36,13 @@ function operator(proxies = [], targetPlatform, context) { // isIPv6, // isIP, // yaml, // yaml 解析和生成 + // getFlag, // 获取 emoji 旗帜 + // getISO, // 获取 ISO 3166-1 alpha-2 代码 // } + // 示例: 给节点名添加前缀 + // $server.name = `[${ProxyUtils.getISO($server.name)}] ${$server.name}` + // 示例: 从 sni 文件中读取内容并进行节点操作 // const sni = await produceArtifact({ // type: 'file',