From 6d43961e9687a328ae2a1796e77ac20a08553264 Mon Sep 17 00:00:00 2001 From: xream Date: Mon, 7 Oct 2024 18:43:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20Node.js=20=E6=94=AF=E6=8C=81=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F=20`SUB=5FSTORE=5F?= =?UTF-8?q?BACKEND=5FDEFAULT=5FPROXY`=20=E8=AE=BE=E7=BD=AE=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E4=BB=A3=E7=90=86;=20ProxyUtils=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=20`download`=20=E6=96=B9=E6=B3=95?= 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 | 1 + backend/src/utils/download.js | 5 ++++- backend/src/utils/flow.js | 6 +++++- backend/src/utils/gist.js | 8 ++++++-- scripts/demo.js | 1 + 6 files changed, 18 insertions(+), 5 deletions(-) diff --git a/backend/package.json b/backend/package.json index e3e06f8..d282207 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.14.388", + "version": "2.14.389", "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 ce8155f..97405c5 100644 --- a/backend/src/core/proxy-utils/index.js +++ b/backend/src/core/proxy-utils/index.js @@ -292,6 +292,7 @@ export const ProxyUtils = { getISO, MMDB, Gist, + download, }; function tryParse(parser, line) { diff --git a/backend/src/utils/download.js b/backend/src/utils/download.js index 95b1eb5..685d255 100644 --- a/backend/src/utils/download.js +++ b/backend/src/utils/download.js @@ -45,7 +45,10 @@ export default async function download( const { isNode, isStash, isLoon, isShadowRocket, isQX } = ENV(); const { defaultProxy, defaultUserAgent, defaultTimeout, cacheThreshold } = $.read(SETTINGS_KEY); - const proxy = customProxy || defaultProxy; + let proxy = customProxy || defaultProxy; + if ($.env.isNode) { + proxy = proxy || eval('process.env.SUB_STORE_BACKEND_DEFAULT_PROXY'); + } const userAgent = ua || defaultUserAgent || 'clash.meta'; const requestTimeout = timeout || defaultTimeout; const id = hex_md5(userAgent + url); diff --git a/backend/src/utils/flow.js b/backend/src/utils/flow.js index 46c8f77..9e0296c 100644 --- a/backend/src/utils/flow.js +++ b/backend/src/utils/flow.js @@ -49,7 +49,11 @@ export async function getFlowHeaders( } else { const { defaultProxy, defaultFlowUserAgent, defaultTimeout } = $.read(SETTINGS_KEY); - const proxy = customProxy || defaultProxy; + let proxy = customProxy || defaultProxy; + if ($.env.isNode) { + proxy = + proxy || eval('process.env.SUB_STORE_BACKEND_DEFAULT_PROXY'); + } const userAgent = ua || defaultFlowUserAgent || diff --git a/backend/src/utils/gist.js b/backend/src/utils/gist.js index 317603e..3157b62 100644 --- a/backend/src/utils/gist.js +++ b/backend/src/utils/gist.js @@ -9,8 +9,12 @@ import { SETTINGS_KEY } from '@/constants'; export default class Gist { constructor({ token, key, syncPlatform }) { const { isStash, isLoon, isShadowRocket, isQX } = ENV(); - const { defaultProxy: proxy, defaultTimeout: timeout } = - $.read(SETTINGS_KEY); + const { defaultProxy, defaultTimeout: timeout } = $.read(SETTINGS_KEY); + let proxy = defaultProxy; + if ($.env.isNode) { + proxy = + proxy || eval('process.env.SUB_STORE_BACKEND_DEFAULT_PROXY'); + } if (syncPlatform === 'gitlab') { this.headers = { diff --git a/scripts/demo.js b/scripts/demo.js index 57e7dad..4326e54 100644 --- a/scripts/demo.js +++ b/scripts/demo.js @@ -66,6 +66,7 @@ function operator(proxies = [], targetPlatform, context) { // removeFlag, // 移除 emoji 旗帜 // getISO, // 获取 ISO 3166-1 alpha-2 代码 // Gist, // Gist 类 + // download, // 内部的下载方法, 见 backend/src/utils/download.js // } // 如果只是为了快速修改或者筛选 可以参考 脚本操作支持节点快捷脚本 https://t.me/zhetengsha/970 和 脚本筛选支持节点快捷脚本 https://t.me/zhetengsha/1009