From 8e49a78f45265a0e228fdce40ef1b79bc85c84d9 Mon Sep 17 00:00:00 2001 From: xream Date: Wed, 26 Jul 2023 09:46:43 +0800 Subject: [PATCH] feat: V2Ray Producer --- backend/package.json | 2 +- backend/src/core/proxy-utils/producers/index.js | 2 ++ backend/src/core/proxy-utils/producers/v2ray.js | 12 ++++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 backend/src/core/proxy-utils/producers/v2ray.js diff --git a/backend/package.json b/backend/package.json index c4eb022ea..6623fb02a 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.14.1", + "version": "2.14.2", "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/index.js b/backend/src/core/proxy-utils/producers/index.js index 412e378b8..c8b9dcf43 100644 --- a/backend/src/core/proxy-utils/producers/index.js +++ b/backend/src/core/proxy-utils/producers/index.js @@ -3,6 +3,7 @@ import Clash_Producer from './clash'; import Stash_Producer from './stash'; import Loon_Producer from './loon'; import URI_Producer from './uri'; +import V2Ray_Producer from './v2ray'; import QX_Producer from './qx'; function JSON_Producer() { @@ -17,6 +18,7 @@ export default { Loon: Loon_Producer(), Clash: Clash_Producer(), URI: URI_Producer(), + V2Ray: V2Ray_Producer(), JSON: JSON_Producer(), Stash: Stash_Producer(), }; diff --git a/backend/src/core/proxy-utils/producers/v2ray.js b/backend/src/core/proxy-utils/producers/v2ray.js new file mode 100644 index 000000000..be3370ae8 --- /dev/null +++ b/backend/src/core/proxy-utils/producers/v2ray.js @@ -0,0 +1,12 @@ +/* eslint-disable no-case-declarations */ +import { Base64 } from 'js-base64'; +import URI_Producer from './uri'; + +const URI = URI_Producer(); + +export default function V2Ray_Producer() { + const type = 'ALL'; + const produce = (proxies) => + Base64.encode(proxies.map((proxy) => URI.produce(proxy)).join('\n')); + return { type, produce }; +}