MCPcopy Index your code
hub / github.com/QLHazyCoder/FlowPilot / runAutoSequenceFromStep

Function runAutoSequenceFromStep

background.js:5012–5093  ·  view source on GitHub ↗
(startStep, context = {})

Source from the content-addressed store, hash-verified

5010}
5011
5012async function runAutoSequenceFromStep(startStep, context = {}) {
5013 const { targetRun, totalRuns, attemptRuns, continued = false } = context;
5014 let postStep6RestartCount = 0;
5015
5016 if (continued) {
5017 await addLog(`=== 目标 ${targetRun}/${totalRuns} 轮:继续当前进度,从步骤 ${startStep} 开始(第 ${attemptRuns} 次尝试)===`, 'info');
5018 } else {
5019 await addLog(`=== 目标 ${targetRun}/${totalRuns} 轮:第 ${attemptRuns} 次尝试,阶段 1,打开官网并进入密码页 ===`, 'info');
5020 }
5021
5022 if (startStep <= 1) {
5023 await executeStepAndWait(1, AUTO_STEP_DELAYS[1]);
5024 }
5025
5026 if (startStep <= 2) {
5027 await ensureAutoEmailReady(targetRun, totalRuns, attemptRuns);
5028 await executeStepAndWait(2, AUTO_STEP_DELAYS[2]);
5029 }
5030
5031 if (startStep <= 3) {
5032 const latestState = await getState();
5033 const step3Status = latestState.stepStatuses?.[3] || 'pending';
5034 await addLog(`=== 目标 ${targetRun}/${totalRuns} 轮:阶段 2,填写密码、验证、登录并完成授权(第 ${attemptRuns} 次尝试)===`, 'info');
5035 await broadcastAutoRunStatus('running', {
5036 currentRun: targetRun,
5037 totalRuns,
5038 attemptRun: attemptRuns,
5039 });
5040 if (isStepDoneStatus(step3Status)) {
5041 await addLog(`自动运行:步骤 3 当前状态为 ${step3Status},将直接继续后续流程。`, 'info');
5042 } else {
5043 await executeStepAndWait(3, AUTO_STEP_DELAYS[3]);
5044 }
5045 } else {
5046 await addLog(`=== 目标 ${targetRun}/${totalRuns} 轮:继续执行剩余流程(第 ${attemptRuns} 次尝试)===`, 'info');
5047 }
5048
5049 const signupTabId = await getTabId('signup-page');
5050 if (signupTabId) {
5051 await chrome.tabs.update(signupTabId, { active: true });
5052 }
5053
5054 let step = Math.max(startStep, 4);
5055 while (step <= 9) {
5056 try {
5057 await executeStepAndWait(step, AUTO_STEP_DELAYS[step]);
5058 const latestState = await getState();
5059 if (step === 6 && shouldSkipLoginVerificationForCpaCallback(latestState)) {
5060 step = 8;
5061 continue;
5062 }
5063 step += 1;
5064 } catch (err) {
5065 const restartDecision = await getPostStep6AutoRestartDecision(step, err);
5066 if (restartDecision.shouldRestart) {
5067 postStep6RestartCount += 1;
5068 const authState = restartDecision.authState;
5069 const authStateLabel = authState?.state ? getLoginAuthStateLabel(authState.state) : '未知页面';

Callers 2

background.jsFile · 0.85
autoRunLoopFunction · 0.85

Calls 11

executeStepAndWaitFunction · 0.85
ensureAutoEmailReadyFunction · 0.85
getStateFunction · 0.85
broadcastAutoRunStatusFunction · 0.85
addLogFunction · 0.70
isStepDoneStatusFunction · 0.70
getTabIdFunction · 0.70
getLoginAuthStateLabelFunction · 0.70

Tested by

no test coverage detected