fix format parsing

This commit is contained in:
被遗忘的记忆
2025-02-18 12:49:00 +08:00
committed by GitHub
parent 9974af229f
commit 58aa984886
+20 -1
View File
@@ -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);