New fix a lot problem
This commit is contained in:
2 files changed
+4
-22
No files matched your search
+3
-22
@@ -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); } });
|
||||
})();
|
||||
@@ -164,3 +164,4 @@ export async function operate(route, body = {}, sender = {}) {
|
||||
return { ok: true };
|
||||
});
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user