From 58aa98488691a3dce35c62e15ef5a287359a6adf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=AB=E9=81=97=E5=BF=98=E7=9A=84=E8=AE=B0=E5=BF=86?= <32097237+YIWANG-sketch@users.noreply.github.com> Date: Tue, 18 Feb 2025 12:49:00 +0800 Subject: [PATCH] fix format parsing --- you_providers/cookieUpdater.mjs | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/you_providers/cookieUpdater.mjs b/you_providers/cookieUpdater.mjs index e18fd13..f07cb6d 100644 --- a/you_providers/cookieUpdater.mjs +++ b/you_providers/cookieUpdater.mjs @@ -12,6 +12,21 @@ const CONFIG_FILE_PATH = path.join(__dirname, "../config.mjs"); // 仅在 USE_MANUAL_LOGIN 为 false 且 ENABLE_AUTO_COOKIE_UPDATE 为 true 时生效 const ENABLE_AUTO_COOKIE_UPDATE = process.env.ENABLE_AUTO_COOKIE_UPDATE === "true"; +function unifyQuotesForJSON(str) { + // 正则匹配 `` `...` `` + let out = str.replace(/`([^`]*)`/g, (match, p1) => { + const safe = p1.replace(/"/g, '\\"'); + return `"${safe}"`; + }); + out = out.replace(/'([^']*)'/g, (match, p1) => { + const safe = p1.replace(/"/g, '\\"'); + return `"${safe}"`; + }); + + return out; +} + + /** * cookies 解析出 DS 与 DSR * @param {Array} cookies 获取到的 cookie 数组 @@ -145,7 +160,11 @@ export async function updateLocalConfigCookieByEmail(page) { return; } const raw = fs.readFileSync(CONFIG_FILE_PATH, "utf8"); - const jsonString = raw.replace(/^export const config\s*=\s*/, ""); + // 去掉 export const config = + let jsonString = raw.replace(/^export const config\s*=\s*/, "").trim(); + + jsonString = unifyQuotesForJSON(jsonString); + const configObj = JSON.parse(jsonString); const found = findSessionByEmail(configObj, newEmail);