Files
ykxmz/_tests/test_landing_live.py
xmz7891 d424128483 加线上官网验证测试 + 新官网截图
_tests/test_landing_live.py 检查线上(本机 + 公网)官网确实是新版:
  * 有数据带 / 评价区 / 平台标签行 / 滚动淡入脚本
  * HTML 里没有裸 reveal(没 JS 时内容可见)
  * **没有管理页字眼**(对外的清洁度规矩)

实测 14/14 通过。
2026-10-07 20:53:58 +08:00

85 lines
2.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
r'''验证线上官网已经是新版。'''
from __future__ import annotations
import sys
import urllib.error
import urllib.request
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent.parent / "_build"))
from devssh import run as ssh_run # noqa: E402
BASE = "https://relay.xxmxxs.top"
UA = {"User-Agent": "LanRemote/1.8.2"}
passed = 0
failed = 0
def check(name, ok, detail=""):
global passed, failed
if ok:
passed += 1
print(" [PASS] " + name)
else:
failed += 1
print(" [FAIL] " + name + ((" —— " + str(detail)) if detail else ""))
def main() -> int:
print("=" * 56)
print(" 线上官网验证")
print("=" * 56)
# 先用设备上的本机地址绕开 Cloudflare 缓存看个准的
_c, local, _e = ssh_run(
"curl -s --max-time 15 -H 'User-Agent: LanRemote/1.8.2' "
"http://127.0.0.1:8080/", timeout=60, quiet=True)
# 再看公网(可能有最多 60 秒缓存)
req = urllib.request.Request(BASE + "/", headers=UA)
try:
with urllib.request.urlopen(req, timeout=25) as resp:
pub = resp.read().decode("utf-8", "replace")
cc = resp.headers.get("cf-cache-status", "")
ok_pub = True
except Exception as exc: # noqa: BLE001
pub = ""
cc = ""
ok_pub = False
print(" 公网拉取失败:%s" % exc)
for label, html in (("本机", local or ""), ("公网", pub)):
if not html:
continue
print()
print(" ---- %s 版本 ----" % label)
check("%s:是新版" % label, "scroll-hint" in html,
"没有 scroll-hint,还是旧版")
check("%s:有数据带" % label, 'class="stats"' in html, "没有")
check("%s:有评价区" % label, 'class="quotes"' in html, "没有")
check("%s:有平台标签行" % label, 'class="plats"' in html, "没有")
check("%s:有滚动淡入脚本" % label,
"IntersectionObserver" in html, "没有")
check("%s:HTML 里没有裸 reveal(没 JS 也可见)" % label,
"reveal\"" not in html.split("<script>")[0],
"HTML 里还有 reveal,没 JS 会空白")
check("%s:没有管理页字眼" % label, "管理页" not in html,
"对外页面提到了管理页")
if ok_pub:
print()
print(" 公网 cf-cache-status: %s" % (cc or "(无)"))
if cc.upper() == "HIT":
print(" (HIT 说明拿到了缓存,新版最多 60 秒后生效)")
print()
print("=" * 56)
print(" 通过 %d 项,失败 %d 项" % (passed, failed))
return 0 if failed == 0 else 1
if __name__ == "__main__":
sys.exit(main())