From 741fe4f983bccce84e0bcf8f60719e2d5af81d51 Mon Sep 17 00:00:00 2001 From: kris Date: Fri, 20 Mar 2026 23:31:27 +0800 Subject: [PATCH] fix: harden douyin control panel auth inputs --- .../douyin-browser-capture/control_panel.mjs | 66 ++++++++++++++++--- 1 file changed, 56 insertions(+), 10 deletions(-) diff --git a/scripts/douyin-browser-capture/control_panel.mjs b/scripts/douyin-browser-capture/control_panel.mjs index 9b616ce..8df1dce 100644 --- a/scripts/douyin-browser-capture/control_panel.mjs +++ b/scripts/douyin-browser-capture/control_panel.mjs @@ -151,6 +151,9 @@ function getActiveRun() { } function buildCaptureArgs(payload, runBaseDir, readyFile) { + const token = String(payload.token || payload.storyforgeToken || "").trim(); + const username = String(payload.username || payload.storyforgeUsername || "").trim(); + const password = String(payload.password || payload.storyforgePassword || ""); const parsedMaxVideos = Number.parseInt(String(payload.maxVideos ?? "4"), 10); const parsedWaitMs = Number.parseInt(String(payload.waitMs ?? "4000"), 10); const args = [ @@ -185,23 +188,26 @@ function buildCaptureArgs(payload, runBaseDir, readyFile) { if (payload.allowCreatorCenterFallback) { args.push("--allow-creator-center-fallback"); } - if (payload.token) { - args.push("--storyforge-token", String(payload.token).trim()); + if (token) { + args.push("--storyforge-token", token); } else if (payload.syncEnabled) { - args.push("--storyforge-username", String(payload.username || "").trim()); - args.push("--storyforge-password", String(payload.password || "")); + args.push("--storyforge-username", username); + args.push("--storyforge-password", password); } return args; } async function startRun(payload) { const profileUrl = String(payload.profileUrl || "").trim(); + const token = String(payload.token || payload.storyforgeToken || "").trim(); + const username = String(payload.username || payload.storyforgeUsername || "").trim(); + const password = String(payload.password || payload.storyforgePassword || ""); if (!profileUrl) { throw new Error("请先填写抖音主页链接"); } const syncEnabled = payload.syncEnabled !== false; - if (syncEnabled && !String(payload.token || "").trim()) { - if (!String(payload.username || "").trim() || !String(payload.password || "")) { + if (syncEnabled && !token) { + if (!username || !password) { throw new Error("导入 StoryForge 时需要账号密码,或者直接提供 Token"); } } @@ -525,12 +531,12 @@ function renderPage() {