From 8fe818f826c35eb86a7a6dd60d3330a565f81d7a Mon Sep 17 00:00:00 2001 From: xream Date: Sat, 19 Oct 2024 19:12:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=84=E7=90=86=E4=B9=B1=E5=A1=AB?= =?UTF-8?q?=E7=9A=84=E8=AE=A2=E9=98=85=E6=B5=81=E9=87=8F=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/package.json | 2 +- backend/src/restful/subscriptions.js | 54 ++++++++++++++++++++++------ 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/backend/package.json b/backend/package.json index 4e45de3..58e5061 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.14.401", + "version": "2.14.402", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.", "main": "src/main.js", "scripts": { diff --git a/backend/src/restful/subscriptions.js b/backend/src/restful/subscriptions.js index c0d4347..221beba 100644 --- a/backend/src/restful/subscriptions.js +++ b/backend/src/restful/subscriptions.js @@ -57,9 +57,25 @@ async function getFlowInfo(req, res) { !['localFirst', 'remoteFirst'].includes(sub.mergeSources) ) { if (sub.subUserinfo) { - success(res, { - ...parseFlowHeaders(sub.subUserinfo), - }); + try { + success(res, { + ...parseFlowHeaders(sub.subUserinfo), + }); + } catch (e) { + $.error( + `Failed to parse flow info for local subscription ${name}: ${ + e.message ?? e + }`, + ); + failed( + res, + new RequestInvalidError( + 'NO_FLOW_INFO', + 'N/A', + `Failed to parse flow info`, + ), + ); + } } else { failed( res, @@ -110,14 +126,30 @@ async function getFlowInfo(req, res) { return; } if (sub.subUserinfo) { - success(res, { - ...parseFlowHeaders(sub.subUserinfo), - remainingDays: getRmainingDays({ - resetDay: $arguments.resetDay, - startDate: $arguments.startDate, - cycleDays: $arguments.cycleDays, - }), - }); + try { + success(res, { + ...parseFlowHeaders(sub.subUserinfo), + remainingDays: getRmainingDays({ + resetDay: $arguments.resetDay, + startDate: $arguments.startDate, + cycleDays: $arguments.cycleDays, + }), + }); + } catch (e) { + $.error( + `Failed to parse flow info for local subscription ${name}: ${ + e.message ?? e + }`, + ); + failed( + res, + new RequestInvalidError( + 'NO_FLOW_INFO', + 'N/A', + `Failed to parse flow info`, + ), + ); + } } else { const flowHeaders = await getFlowHeaders( url,