修复启动脚本

This commit is contained in:
丹尼尔
2026-03-11 11:17:46 +08:00
parent 4a658a7331
commit 501153a081
3 changed files with 55 additions and 39 deletions

View File

@@ -427,42 +427,52 @@ async def check_scan_status(
def _slider_form_html(key_val: str, data62_val: str, ticket_val: str) -> str:
"""生成滑块表单页Key、Data62、Original Ticket 已预填,提交到第三方 7765"""
"""本地滑块验证页:与 7765 相同 DOM 结构(#app、keyInput、data62Input、originalTicketInput加载 7765 的 module 脚本,不用 iframe"""
k = html.escape(key_val, quote=True)
d = html.escape(data62_val, quote=True)
t = html.escape(ticket_val, quote=True)
action = html.escape(SLIDER_VERIFY_BASE_URL, quote=True)
script_src = html.escape(f"{SLIDER_VERIFY_BASE_URL.rstrip('/')}/assets/N_jYM_2V.js", quote=True)
return f"""<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>滑块验证</title>
<style>
body {{ font-family: sans-serif; background: #f0f0f0; margin: 20px; }}
.card {{ background: #fff; border-radius: 8px; padding: 20px; max-width: 480px; margin: 0 auto; box-shadow: 0 1px 3px rgba(0,0,0,.1); }}
h2 {{ margin-top: 0; }}
label {{ display: block; margin: 10px 0 4px; color: #333; }}
input {{ width: 100%; box-sizing: border-box; padding: 8px; border: 1px solid #ccc; border-radius: 4px; }}
button {{ margin-top: 16px; padding: 10px 20px; background: #07c160; color: #fff; border: none; border-radius: 4px; cursor: pointer; font-size: 14px; }}
button:hover {{ background: #06ad56; }}
.hint {{ font-size: 12px; color: #888; margin-top: 12px; }}
</style>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
</head>
<body>
<div class="card">
<h2>滑块验证</h2>
<form id="f" action="{action}" method="get" target="_top">
<label>Key:</label>
<input type="text" name="key" value="{k}" placeholder="请输入key" />
<label>Data62:</label>
<input type="text" name="data62" value="{d}" placeholder="请输入data62" />
<label>Original Ticket:</label>
<input type="text" name="original_ticket" value="{t}" placeholder="请输入original_ticket" />
<button type="submit">开始验证</button>
</form>
<p class="hint">参数已自动填充,点击「开始验证」将提交到第三方滑块服务。</p>
<div id="app" data-v-app="">
<div data-v-220db9a4="" class="app-container">
<div data-v-220db9a4="" class="card">
<div data-v-220db9a4="" class="card-header">
<h5 data-v-220db9a4="" class="mb-0">滑块验证</h5>
</div>
<div data-v-220db9a4="" class="card-body">
<div data-v-220db9a4="" class="params-section mb-4">
<div data-v-220db9a4="" class="row">
<div data-v-220db9a4="" class="col-12 col-md-6 mb-3">
<label data-v-220db9a4="" for="keyInput" class="form-label">Key:</label>
<input data-v-220db9a4="" type="text" class="form-control" id="keyInput" placeholder="请输入key" value="{k}">
</div>
<div data-v-220db9a4="" class="col-12 col-md-6 mb-3">
<label data-v-220db9a4="" for="data62Input" class="form-label">Data62:</label>
<input data-v-220db9a4="" type="text" class="form-control" id="data62Input" placeholder="请输入data62" value="{d}">
</div>
<div data-v-220db9a4="" class="col-12 mb-3">
<label data-v-220db9a4="" for="originalTicketInput" class="form-label">Original Ticket:</label>
<input data-v-220db9a4="" type="text" class="form-control" id="originalTicketInput" placeholder="请输入original_ticket" value="{t}">
</div>
</div>
</div>
<div data-v-220db9a4="" class="text-center mb-3">
<button data-v-220db9a4="" type="button" class="btn btn-verify btn-lg" disabled="">开始验证</button>
<div data-v-220db9a4="" class="text-muted mt-2">请先填写完整的参数信息</div>
</div>
</div>
</div>
</div>
</div>
<script type="module" crossorigin src="{script_src}"></script>
</body>
</html>"""
@@ -473,7 +483,7 @@ async def slider_form(
data62: str = Query("", description="Data62"),
ticket: str = Query(..., description="Original Ticket"),
):
"""返回带 Key/Data62/Original Ticket 预填的表单页,提交到第三方 7765供 iframe 加载并自动填充"""
"""本地滑块验证页:与 7765 同 DOM#app、keyInput、data62Input、originalTicketInput加载 7765 的 module 脚本,不用 iframe"""
data62 = _clean_data62(data62)
return HTMLResponse(content=_slider_form_html(key, data62, ticket))