Files
FlowPilot/sidepanel/sidepanel.html
T
unknown 887709e824 feat: initial implementation of Multi-Page Automation Chrome extension
- manifest.json: MV3 config with sidePanel, tabs, webNavigation, storage, scripting permissions
- background.js: service worker with state management (chrome.storage.session), tab registry,
  message routing, command queue, and step orchestration for all 9 steps
- sidepanel/: persistent side panel UI with 9 step buttons, interlock logic, log area,
  state restore, and reset functionality
- content/utils.js: shared utilities (waitForElement, fillInput, simulateClick, log, report*)
- content/vps-panel.js: VPS panel automation (steps 1, 9)
- content/signup-page.js: OpenAI auth page automation (steps 2, 3, 4-fill, 5)
- content/qq-mail.js: QQ Mail email polling and code extraction (steps 4, 7)
- content/chatgpt.js: ChatGPT login automation (steps 6, 7-fill, 8)
- data/names.js: random English name and birthday generation
2026-04-05 08:59:03 +08:00

90 lines
3.1 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Multi-Page Automation</title>
<link rel="stylesheet" href="sidepanel.css">
</head>
<body>
<header>
<h1>Multi-Page Automation</h1>
<button id="btn-reset" title="Reset all steps">Reset</button>
</header>
<section id="data-section">
<div class="data-row">
<label>OAuth URL:</label>
<span id="display-oauth-url" class="data-value">Not obtained</span>
</div>
<div class="data-row">
<label>Email:</label>
<input type="text" id="input-email" placeholder="Paste DuckDuckGo email here" />
</div>
<div class="data-row">
<label>Localhost:</label>
<span id="display-localhost-url" class="data-value">Not captured</span>
</div>
<div class="data-row">
<label>Status:</label>
<span id="display-status" class="data-value">Waiting</span>
</div>
</section>
<section id="steps-section">
<div class="step-row" data-step="1">
<span class="step-num">1</span>
<button class="step-btn" data-step="1">Get OAuth Link</button>
<span class="step-status" data-step="1"></span>
</div>
<div class="step-row" data-step="2">
<span class="step-num">2</span>
<button class="step-btn" data-step="2">Open Signup</button>
<span class="step-status" data-step="2"></span>
</div>
<div class="step-row" data-step="3">
<span class="step-num">3</span>
<button class="step-btn" data-step="3">Fill Email/Password</button>
<span class="step-status" data-step="3"></span>
</div>
<div class="step-row" data-step="4">
<span class="step-num">4</span>
<button class="step-btn" data-step="4">Get Signup Code</button>
<span class="step-status" data-step="4"></span>
</div>
<div class="step-row" data-step="5">
<span class="step-num">5</span>
<button class="step-btn" data-step="5">Fill Name/Birthday</button>
<span class="step-status" data-step="5"></span>
</div>
<div class="step-row" data-step="6">
<span class="step-num">6</span>
<button class="step-btn" data-step="6">Login ChatGPT</button>
<span class="step-status" data-step="6"></span>
</div>
<div class="step-row" data-step="7">
<span class="step-num">7</span>
<button class="step-btn" data-step="7">Get Login Code</button>
<span class="step-status" data-step="7"></span>
</div>
<div class="step-row" data-step="8">
<span class="step-num">8</span>
<button class="step-btn" data-step="8">Complete OAuth</button>
<span class="step-status" data-step="8"></span>
</div>
<div class="step-row" data-step="9">
<span class="step-num">9</span>
<button class="step-btn" data-step="9">VPS Verify</button>
<span class="step-status" data-step="9"></span>
</div>
</section>
<section id="log-section">
<h2>Log</h2>
<div id="log-area"></div>
</section>
<script src="sidepanel.js"></script>
</body>
</html>