Appearance
目录结构
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())
load_config():加载或生成config/config.json。map_levels():读取config/map.json并按顺序加载关卡。- 对每个关卡条目:
- 导入
levels.<module>。 - 注入关卡索引:优先调用
set_level_index,否则设置CURRENT_LEVEL_INDEX。 - 挂载 API 路由到
/api/{slug},带权限依赖Depends(check_level_permission(idx))。 - 若存在
levels/<module>/static,挂载到/{slug}。
- 导入
map_services():读取config/services.json加载服务模块,挂载到/services/{slug}(无默认权限依赖)。- 注册
/health。
路由布局
- 关卡 API:
/api/{slug}(权限依赖) - 关卡静态页:
/{slug}(若存在 static) - 服务插件:
/services/{slug}(默认无权限)