This commit is contained in:
cnlimiter
2026-03-14 16:51:57 +08:00
parent dc1334fbab
commit 9d3099fcd8
35 changed files with 9490 additions and 0 deletions

286
templates/settings.html Normal file
View 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&#10;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">&times;</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>