Skip to content

目录结构

text
Hey26/
├── config/
│   ├── config.json         # 运行配置、密钥
│   ├── map.json            # 关卡映射(顺序即等级)
│   └── services.json       # 服务插件映射
├── core/
│   ├── auth.py             # JWT 生成/解析
│   ├── config.py           # 配置与映射加载
│   ├── dependencies.py     # 关卡权限依赖
│   └── fingerprint.py      # 指纹生成
├── levels/
│   └── <module>/           # 关卡模块
│       ├── __init__.py     # FastAPI router
│       └── static/         # 可选:静态资源
├── services/
│   └── <module>/           # 服务插件
│       └── __init__.py
├── main.py                 # FastAPI 入口
├── manage.py               # TUI 管理器
└── vp/                     # VitePress 文档站点

启动流程(main.py:create_app()

  1. load_config():加载或生成 config/config.json
  2. map_levels():读取 config/map.json 并按顺序加载关卡。
  3. 对每个关卡条目:
    • 导入 levels.<module>
    • 注入关卡索引:优先调用 set_level_index,否则设置 CURRENT_LEVEL_INDEX
    • 挂载 API 路由到 /api/{slug},带权限依赖 Depends(check_level_permission(idx))
    • 若存在 levels/<module>/static,挂载到 /{slug}
  4. map_services():读取 config/services.json 加载服务模块,挂载到 /services/{slug}(无默认权限依赖)。
  5. 注册 /health

路由布局

  • 关卡 API:/api/{slug}(权限依赖)
  • 关卡静态页:/{slug}(若存在 static)
  • 服务插件:/services/{slug}(默认无权限)