mirror of
https://github.com/cnlimiter/codex-register.git
synced 2026-06-27 18:22:03 +08:00
2
This commit is contained in:
134
templates/accounts.html
Normal file
134
templates/accounts.html
Normal file
@@ -0,0 +1,134 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>账号管理 - OpenAI 注册系统</title>
|
||||
<link rel="stylesheet" href="/static/css/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<!-- 导航栏 -->
|
||||
<nav class="navbar">
|
||||
<div class="nav-brand">
|
||||
<h1>OpenAI 注册系统</h1>
|
||||
</div>
|
||||
<div class="nav-links">
|
||||
<a href="/" class="nav-link">注册</a>
|
||||
<a href="/accounts" class="nav-link active">账号管理</a>
|
||||
<a href="/settings" class="nav-link">设置</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- 主内容区 -->
|
||||
<main class="main-content">
|
||||
<div class="page-header">
|
||||
<h2>账号管理</h2>
|
||||
<p class="subtitle">查看和管理已注册的 OpenAI 账号</p>
|
||||
</div>
|
||||
|
||||
<!-- 统计卡片 -->
|
||||
<div class="stats-grid">
|
||||
<div class="stat-card">
|
||||
<div class="stat-value" id="total-accounts">0</div>
|
||||
<div class="stat-label">总账号数</div>
|
||||
</div>
|
||||
<div class="stat-card success">
|
||||
<div class="stat-value" id="active-accounts">0</div>
|
||||
<div class="stat-label">活跃账号</div>
|
||||
</div>
|
||||
<div class="stat-card warning">
|
||||
<div class="stat-value" id="expired-accounts">0</div>
|
||||
<div class="stat-label">过期账号</div>
|
||||
</div>
|
||||
<div class="stat-card danger">
|
||||
<div class="stat-value" id="failed-accounts">0</div>
|
||||
<div class="stat-label">失败账号</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 工具栏 -->
|
||||
<div class="card">
|
||||
<div class="card-body toolbar">
|
||||
<div class="toolbar-left">
|
||||
<select id="filter-status" class="form-select">
|
||||
<option value="">全部状态</option>
|
||||
<option value="active">活跃</option>
|
||||
<option value="expired">过期</option>
|
||||
<option value="banned">封禁</option>
|
||||
<option value="failed">失败</option>
|
||||
</select>
|
||||
|
||||
<select id="filter-service" class="form-select">
|
||||
<option value="">全部邮箱服务</option>
|
||||
<option value="tempmail">Tempmail</option>
|
||||
<option value="outlook">Outlook</option>
|
||||
<option value="custom_domain">自定义域名</option>
|
||||
</select>
|
||||
|
||||
<input type="text" id="search-input" class="form-input" placeholder="搜索邮箱...">
|
||||
</div>
|
||||
|
||||
<div class="toolbar-right">
|
||||
<button class="btn btn-secondary" id="refresh-btn">刷新</button>
|
||||
<button class="btn btn-danger" id="batch-delete-btn" disabled>批量删除</button>
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-primary dropdown-toggle" id="export-btn">
|
||||
导出
|
||||
</button>
|
||||
<div class="dropdown-menu" id="export-menu">
|
||||
<a href="#" class="dropdown-item" data-format="json">导出 JSON</a>
|
||||
<a href="#" class="dropdown-item" data-format="csv">导出 CSV</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 账号列表 -->
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><input type="checkbox" id="select-all"></th>
|
||||
<th>ID</th>
|
||||
<th>邮箱</th>
|
||||
<th>邮箱服务</th>
|
||||
<th>状态</th>
|
||||
<th>注册时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="accounts-table">
|
||||
<!-- 动态加载 -->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- 分页 -->
|
||||
<div class="pagination" id="pagination">
|
||||
<button class="btn btn-sm" id="prev-page" disabled>上一页</button>
|
||||
<span id="page-info">第 1 页</span>
|
||||
<button class="btn btn-sm" id="next-page">下一页</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<!-- 详情模态框 -->
|
||||
<div class="modal" id="detail-modal">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3>账号详情</h3>
|
||||
<button class="modal-close" id="close-modal">×</button>
|
||||
</div>
|
||||
<div class="modal-body" id="modal-body">
|
||||
<!-- 动态加载 -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/static/js/accounts.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
153
templates/index.html
Normal file
153
templates/index.html
Normal file
@@ -0,0 +1,153 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>OpenAI/Codex CLI 自动注册系统</title>
|
||||
<link rel="stylesheet" href="/static/css/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<!-- 导航栏 -->
|
||||
<nav class="navbar">
|
||||
<div class="nav-brand">
|
||||
<h1>OpenAI 注册系统</h1>
|
||||
</div>
|
||||
<div class="nav-links">
|
||||
<a href="/" class="nav-link active">注册</a>
|
||||
<a href="/accounts" class="nav-link">账号管理</a>
|
||||
<a href="/settings" class="nav-link">设置</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- 主内容区 -->
|
||||
<main class="main-content">
|
||||
<div class="page-header">
|
||||
<h2>注册控制台</h2>
|
||||
<p class="subtitle">启动新的 OpenAI/Codex CLI 账号注册任务</p>
|
||||
</div>
|
||||
|
||||
<!-- 注册表单 -->
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3>新建注册任务</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form id="registration-form">
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="email-service">邮箱服务</label>
|
||||
<select id="email-service" name="email_service" required>
|
||||
<option value="tempmail">Tempmail.lol (临时邮箱)</option>
|
||||
<option value="outlook">Outlook</option>
|
||||
<option value="custom_domain">自定义域名</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="proxy">代理地址 (可选)</label>
|
||||
<input type="text" id="proxy" name="proxy" placeholder="http://127.0.0.1:7890">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="reg-mode">注册模式</label>
|
||||
<select id="reg-mode" name="reg_mode">
|
||||
<option value="single">单次注册</option>
|
||||
<option value="batch">批量注册</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="batch-count-group" style="display: none;">
|
||||
<label for="batch-count">注册数量 (1-100)</label>
|
||||
<input type="number" id="batch-count" name="batch_count" min="1" max="100" value="5">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="batch-options" style="display: none;">
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="interval-min">最小间隔 (秒)</label>
|
||||
<input type="number" id="interval-min" name="interval_min" min="0" max="300" value="5">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="interval-max">最大间隔 (秒)</label>
|
||||
<input type="number" id="interval-max" name="interval_max" min="1" max="600" value="30">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<button type="submit" class="btn btn-primary" id="start-btn">
|
||||
开始注册
|
||||
</button>
|
||||
<button type="button" class="btn btn-secondary" id="cancel-btn" disabled>
|
||||
取消任务
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 批量任务状态 -->
|
||||
<div class="card" id="batch-status-card" style="display: none;">
|
||||
<div class="card-header">
|
||||
<h3>批量任务进度</h3>
|
||||
<span id="batch-progress" class="status-badge">0/0</span>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="progress-bar-container">
|
||||
<div id="progress-bar" class="progress-bar" style="width: 0%"></div>
|
||||
</div>
|
||||
<div class="batch-stats">
|
||||
<span>成功: <strong id="batch-success">0</strong></span>
|
||||
<span>失败: <strong id="batch-failed">0</strong></span>
|
||||
<span>剩余: <strong id="batch-remaining">0</strong></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 任务状态 -->
|
||||
<div class="card" id="task-status-card" style="display: none;">
|
||||
<div class="card-header">
|
||||
<h3>任务状态</h3>
|
||||
<span id="task-status-badge" class="status-badge">等待中</span>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="task-info">
|
||||
<div class="info-row">
|
||||
<span class="label">任务 ID:</span>
|
||||
<span id="task-id" class="value">-</span>
|
||||
</div>
|
||||
<div class="info-row">
|
||||
<span class="label">邮箱:</span>
|
||||
<span id="task-email" class="value">-</span>
|
||||
</div>
|
||||
<div class="info-row">
|
||||
<span class="label">状态:</span>
|
||||
<span id="task-status" class="value">-</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 控制台日志 -->
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3>控制台日志</h3>
|
||||
<button class="btn btn-sm" id="clear-log-btn">清空</button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div id="console-log" class="console-log">
|
||||
<div class="log-line info">[*] 系统就绪,等待开始注册...</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<script src="/static/js/app.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
286
templates/settings.html
Normal file
286
templates/settings.html
Normal file
@@ -0,0 +1,286 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>设置 - OpenAI 注册系统</title>
|
||||
<link rel="stylesheet" href="/static/css/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<!-- 导航栏 -->
|
||||
<nav class="navbar">
|
||||
<div class="nav-brand">
|
||||
<h1>OpenAI 注册系统</h1>
|
||||
</div>
|
||||
<div class="nav-links">
|
||||
<a href="/" class="nav-link">注册</a>
|
||||
<a href="/accounts" class="nav-link">账号管理</a>
|
||||
<a href="/settings" class="nav-link active">设置</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- 主内容区 -->
|
||||
<main class="main-content">
|
||||
<div class="page-header">
|
||||
<h2>系统设置</h2>
|
||||
<p class="subtitle">配置代理、邮箱服务和系统参数</p>
|
||||
</div>
|
||||
|
||||
<!-- 设置标签页 -->
|
||||
<div class="tabs">
|
||||
<button class="tab-btn active" data-tab="proxy">代理设置</button>
|
||||
<button class="tab-btn" data-tab="email">邮箱服务</button>
|
||||
<button class="tab-btn" data-tab="registration">注册配置</button>
|
||||
<button class="tab-btn" data-tab="database">数据库</button>
|
||||
</div>
|
||||
|
||||
<!-- 代理设置 -->
|
||||
<div class="tab-content active" id="proxy-tab">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3>代理配置</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form id="proxy-form">
|
||||
<div class="form-group">
|
||||
<label>
|
||||
<input type="checkbox" id="proxy-enabled" name="enabled">
|
||||
启用代理
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="proxy-type">代理类型</label>
|
||||
<select id="proxy-type" name="type">
|
||||
<option value="http">HTTP</option>
|
||||
<option value="socks5">SOCKS5</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="proxy-host">主机地址</label>
|
||||
<input type="text" id="proxy-host" name="host" value="127.0.0.1">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="proxy-port">端口</label>
|
||||
<input type="number" id="proxy-port" name="port" value="7890">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="proxy-username">用户名 (可选)</label>
|
||||
<input type="text" id="proxy-username" name="username">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="proxy-password">密码 (可选)</label>
|
||||
<input type="password" id="proxy-password" name="password">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<button type="submit" class="btn btn-primary">保存设置</button>
|
||||
<button type="button" class="btn btn-secondary" id="test-proxy-btn">测试连接</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 邮箱服务 -->
|
||||
<div class="tab-content" id="email-tab">
|
||||
<!-- Outlook 批量导入 -->
|
||||
<div class="card" id="outlook-import-card">
|
||||
<div class="card-header">
|
||||
<h3>Outlook 批量导入</h3>
|
||||
<button class="btn btn-sm btn-secondary" id="toggle-import-btn">展开</button>
|
||||
</div>
|
||||
<div class="card-body" id="outlook-import-body" style="display: none;">
|
||||
<div class="import-info">
|
||||
<p><strong>支持格式:</strong></p>
|
||||
<ul>
|
||||
<li><code>邮箱----密码</code> (密码认证)</li>
|
||||
<li><code>邮箱----密码----client_id----refresh_token</code> (XOAUTH2 认证,推荐)</li>
|
||||
</ul>
|
||||
<p>每行一个账户,使用四个连字符(----)分隔字段。以 # 开头的行将被忽略。</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="outlook-import-data">批量导入数据</label>
|
||||
<textarea id="outlook-import-data" rows="8" placeholder="example@outlook.com----password123 test@outlook.com----password456----client_id----refresh_token"></textarea>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label>
|
||||
<input type="checkbox" id="outlook-import-enabled" checked>
|
||||
导入后启用
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="outlook-import-priority">优先级</label>
|
||||
<input type="number" id="outlook-import-priority" value="0" min="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-actions">
|
||||
<button type="button" class="btn btn-primary" id="outlook-import-btn">开始导入</button>
|
||||
<button type="button" class="btn btn-secondary" id="clear-import-btn">清空</button>
|
||||
</div>
|
||||
<div id="import-result" style="display: none; margin-top: 16px;">
|
||||
<div class="import-stats"></div>
|
||||
<div class="import-errors" style="margin-top: 8px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3>邮箱服务配置</h3>
|
||||
<div class="toolbar-left">
|
||||
<button class="btn btn-sm btn-primary" id="add-email-service-btn">添加服务</button>
|
||||
<button class="btn btn-sm btn-danger" id="batch-delete-btn" style="display: none;">批量删除</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><input type="checkbox" id="select-all-services"></th>
|
||||
<th>名称</th>
|
||||
<th>类型</th>
|
||||
<th>状态</th>
|
||||
<th>优先级</th>
|
||||
<th>最后使用</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="email-services-table">
|
||||
<!-- 动态加载 -->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 注册配置 -->
|
||||
<div class="tab-content" id="registration-tab">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3>注册配置</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form id="registration-form">
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="max-retries">最大重试次数</label>
|
||||
<input type="number" id="max-retries" name="max_retries" value="3" min="1" max="10">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="timeout">超时时间 (秒)</label>
|
||||
<input type="number" id="timeout" name="timeout" value="120" min="30" max="600">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="password-length">密码长度</label>
|
||||
<input type="number" id="password-length" name="default_password_length" value="12" min="8" max="32">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="sleep-min">最小等待时间 (秒)</label>
|
||||
<input type="number" id="sleep-min" name="sleep_min" value="5" min="1" max="60">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="sleep-max">最大等待时间 (秒)</label>
|
||||
<input type="number" id="sleep-max" name="sleep_max" value="30" min="5" max="120">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<button type="submit" class="btn btn-primary">保存设置</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 数据库 -->
|
||||
<div class="tab-content" id="database-tab">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3>数据库信息</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="info-grid">
|
||||
<div class="info-item">
|
||||
<span class="label">数据库大小:</span>
|
||||
<span id="db-size" class="value">-</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">账号数量:</span>
|
||||
<span id="db-accounts" class="value">-</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">邮箱服务数量:</span>
|
||||
<span id="db-services" class="value">-</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">任务记录数量:</span>
|
||||
<span id="db-tasks" class="value">-</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<button class="btn btn-secondary" id="backup-btn">备份数据库</button>
|
||||
<button class="btn btn-warning" id="cleanup-btn">清理过期数据</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<!-- 添加邮箱服务模态框 -->
|
||||
<div class="modal" id="add-service-modal">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3>添加邮箱服务</h3>
|
||||
<button class="modal-close" id="close-service-modal">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form id="add-service-form">
|
||||
<div class="form-group">
|
||||
<label for="service-type">服务类型</label>
|
||||
<select id="service-type" name="service_type" required>
|
||||
<option value="tempmail">Tempmail.lol</option>
|
||||
<option value="outlook">Outlook</option>
|
||||
<option value="custom_domain">自定义域名</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="service-name">服务名称</label>
|
||||
<input type="text" id="service-name" name="name" required>
|
||||
</div>
|
||||
|
||||
<div id="service-config-fields">
|
||||
<!-- 根据类型动态加载 -->
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<button type="submit" class="btn btn-primary">添加</button>
|
||||
<button type="button" class="btn btn-secondary" id="cancel-add-service">取消</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/static/js/settings.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user