8e8d6b83f1
- study_tool/__init__.py 用 python-dotenv 加载根目录 .env,位置早于 store / config 读环境变量;已有环境变量优先,Docker 注入的不受影响 - app.py 监听地址改为 HOST -> BIND_ADDR -> 127.0.0.1 依次回退 - 新增依赖 python-dotenv>=1.0(pyproject.toml / requirements.txt / uv.lock) - README 环境变量表补充 .env 说明与 BIND_ADDR / TZ 两行 - CHANGELOG / docs/OPTIMIZATION.md 记录本次修复,版本号 0.0.6 -> 0.0.7
34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
"""页面代际识别。
|
|
|
|
莞易学的登录入口(jspx.dgjy.net)和学习入口(study.dgjy.net)指向同一套课程,
|
|
但课程页有两代前端:旧版 jspx 页面和新版 Vue SPA。这里只根据页面 / URL 判断代际,
|
|
平台归属由 `Platform.entries`(登录、学习入口)负责。
|
|
"""
|
|
|
|
# 旧版页面骨架
|
|
LEGACY_MARKERS = ("tier-tree-one", "tier3")
|
|
|
|
# 新版 SPA 标记:Vue 入口、培训课程接口路由、study 域名
|
|
SPA_MARKERS = ("/training/curriculum", "/training/courseVideo", "/training/comment",
|
|
"static/js/app.", "study.dgjy.net/training", "study.dgjy.net/#/")
|
|
SPA_HOST = "study.dgjy.net"
|
|
|
|
|
|
def has_study_marker(html, page_url=""):
|
|
"""页面是不是新版莞易学(study.dgjy.net / Vue SPA)。"""
|
|
if page_url and SPA_HOST in page_url:
|
|
return True
|
|
if any(k in html for k in SPA_MARKERS):
|
|
return True
|
|
flat = html.replace('"', "").replace("'", "")
|
|
return "<div id=app>" in flat
|
|
|
|
|
|
def detect_generation(html, page_url=""):
|
|
"""返回课程页代际:legacy(旧版)/ spa(新版)/ ""(无法识别)。"""
|
|
if any(k in html for k in LEGACY_MARKERS):
|
|
return "legacy"
|
|
if has_study_marker(html, page_url):
|
|
return "spa"
|
|
return ""
|