From 2611dccc73da250a8532d81e86b24ad75c2ecd00 Mon Sep 17 00:00:00 2001 From: xream Date: Thu, 14 Mar 2024 19:45:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=BF=9C=E7=A8=8B=E8=AE=A2=E9=98=85=E6=B5=81?= =?UTF-8?q?=E9=87=8F=E4=BF=A1=E6=81=AF=E6=97=B6=E7=9A=84=20User-Agent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/package.json | 2 +- backend/src/restful/download.js | 4 ++-- backend/src/restful/subscriptions.js | 2 +- backend/src/utils/download.js | 7 ++++++- backend/src/utils/flow.js | 16 +++++++++++++--- 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/backend/package.json b/backend/package.json index 78636cf..1fd7ac5 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.14.254", + "version": "2.14.255", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.", "main": "src/main.js", "scripts": { diff --git a/backend/src/restful/download.js b/backend/src/restful/download.js index 45bd8e9..a5a6b0e 100644 --- a/backend/src/restful/download.js +++ b/backend/src/restful/download.js @@ -113,7 +113,7 @@ async function downloadSubscription(req, res) { // forward flow headers const flowInfo = await getFlowHeaders( url, - undefined, + $arguments.flowUserAgent, undefined, sub.proxy, ); @@ -250,7 +250,7 @@ async function downloadCollection(req, res) { if (!$arguments.noFlow) { const flowInfo = await getFlowHeaders( url, - undefined, + $arguments.flowUserAgent, undefined, sub.proxy, ); diff --git a/backend/src/restful/subscriptions.js b/backend/src/restful/subscriptions.js index 1a5b3a6..b5a5d33 100644 --- a/backend/src/restful/subscriptions.js +++ b/backend/src/restful/subscriptions.js @@ -115,7 +115,7 @@ async function getFlowInfo(req, res) { } else { const flowHeaders = await getFlowHeaders( url, - undefined, + $arguments.flowUserAgent, undefined, sub.proxy, ); diff --git a/backend/src/utils/download.js b/backend/src/utils/download.js index a8c8f72..2e41b3c 100644 --- a/backend/src/utils/download.js +++ b/backend/src/utils/download.js @@ -129,7 +129,12 @@ export default async function download(rawUrl, ua, timeout, proxy) { if ($arguments?.validCheck) { await validCheck( parseFlowHeaders( - await getFlowHeaders(url, undefined, undefined, proxy), + await getFlowHeaders( + url, + $arguments.flowUserAgent, + undefined, + proxy, + ), ), ); } diff --git a/backend/src/utils/flow.js b/backend/src/utils/flow.js index a2d5e1b..9e2b7cf 100644 --- a/backend/src/utils/flow.js +++ b/backend/src/utils/flow.js @@ -49,7 +49,11 @@ export async function getFlowHeaders(rawUrl, ua, timeout, proxy) { const requestTimeout = timeout || defaultTimeout; const http = HTTP(); try { - // $.info(`使用 HEAD 方法获取流量信息: ${url}`); + $.info( + `使用 HEAD 方法获取流量信息: ${url}, User-Agent: ${ + userAgent || '' + }`, + ); const { headers } = await http.head({ url: url .split(/[\r\n]+/) @@ -76,11 +80,17 @@ export async function getFlowHeaders(rawUrl, ua, timeout, proxy) { flowInfo = getFlowField(headers); } catch (e) { $.error( - `使用 HEAD 方法获取流量信息失败: ${url}: ${e.message ?? e}`, + `使用 HEAD 方法获取流量信息失败: ${url}, User-Agent: ${ + userAgent || '' + }: ${e.message ?? e}`, ); } if (!flowInfo) { - $.info(`使用 GET 方法获取流量信息: ${url}`); + $.info( + `使用 GET 方法获取流量信息: ${url}, User-Agent: ${ + userAgent || '' + }`, + ); const { headers } = await http.get({ url: url .split(/[\r\n]+/)