From 778384b83d4ef5ce7e2c834451f83b42c01f8752 Mon Sep 17 00:00:00 2001 From: Longtail Date: Sat, 31 Oct 2026 22:33:54 +0800 Subject: [PATCH] New fix a lot problem --- content.js | 25 +++---------------------- service.js | 1 + 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/content.js b/content.js index 640dd16..c7f7ee1 100644 --- a/content.js +++ b/content.js @@ -9,7 +9,6 @@ const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); const visible = el => !!el && !!el.getClientRects().length && getComputedStyle(el).visibility !== 'hidden'; let flow = null, busy = false, running = false, panel, message, nextButton, resumeButton, retryButton, stopButton; - let automationStopped = false, automationReady = false; let actions, toolbar, panelToggle, hideButton, restoreButton, panelHidden = false, visibilitySaving = false; class Stopped extends Error {} @@ -22,9 +21,9 @@ } async function call(route, body = {}) { const run = flow?.id; - if (automationStopped || !run || flow.paused) throw new Stopped(); + if (!run || flow.paused) throw new Stopped(); const data = await request(route, { ...body, run }); - if (automationStopped || flow?.id !== run || flow.paused) throw new Stopped(); + if (flow?.id !== run || flow.paused) throw new Stopped(); return data; } async function save(patch) { @@ -32,15 +31,13 @@ flow = data.flow; } const phase = name => save({ phase: name }); - function check(run) { if (automationStopped || flow?.id !== run || flow.paused) throw new Stopped(); } + function check(run) { if (flow?.id !== run || flow.paused) throw new Stopped(); } function show(text, error = false) { message.textContent = text; panel.style.borderColor = error ? '#d86d20' : '#d3d9e2'; controls(); } function controls() { - const host = document.getElementById('dww11-extension-panel'); - if (host) host.setAttribute('data-auto-news-state', JSON.stringify({version: 1, ready: automationReady, idle: automationReady && !flow && !busy && !running, paused: !!flow?.paused, phase: flow?.phase || null})); if (!nextButton) return; nextButton.disabled = busy || !!flow; resumeButton.hidden = !flow || (!flow.paused && running); @@ -167,15 +164,12 @@ el.dispatchEvent(new Event('change', { bubbles: true })); } async function begin() { - automationStopped = false; if (location.hostname === 'dww11.com') { location.assign(HOME); return; } await recordRestriction(); - if (automationStopped) return; flow = (await request('/start')).flow; await drive(); } async function resume(retry = false) { - automationStopped = false; if (location.hostname === 'dww11.com') { location.assign(HOME); return; } if (retry && !confirm('将重新提交本次抽到的账号(不抽新账号)。如上次提交已成功,可能再次登录。确认重试?')) return; flow = (await request('/resume')).flow; @@ -188,7 +182,6 @@ } async function drive() { - if (automationStopped && flow && !flow.paused) { await suspend('新闻工作台已终止流程。'); return; } if (running || !flow || flow.paused) return; running = true; controls(); const run = flow.id; @@ -333,7 +326,6 @@ async function init() { mount(); const info = await request('/hello'); - automationReady = true; panelVisibility(info.panelHidden); flow = info.flow; if (flow && !info.owned) { @@ -346,16 +338,5 @@ await recordRestriction(); } } - // Public bridge exposes no credentials and only permits stopping, never starting login. - document.addEventListener('dww11:auto-stop', () => { - automationStopped = true; - const current = flow; - if (!current || current.paused) return; - current.paused = true; // Synchronously invalidate in-flight continuations. - controls(); - request('/suspend', {run: current.id, reason: '新闻工作台已终止流程。'}) - .then(() => show('新闻工作台已终止流程;如需恢复,请手动继续。', true)) - .catch(error => show(error.message, true)); - }); init().catch(e => { if (message) { panelVisibility(false); show('扩展启动失败:' + e.message, true); } }); })(); diff --git a/service.js b/service.js index 14c0952..353ec9a 100644 --- a/service.js +++ b/service.js @@ -164,3 +164,4 @@ export async function operate(route, body = {}, sender = {}) { return { ok: true }; }); } +