Appearance
文件:core/config.py
该模块负责配置与映射文件的读写、默认值生成与目录常量管理。
常量
BASE_DIR: 仓库根目录。CONFIG_DIR:config/目录。CONFIG_PATH:config/config.json。MAP_PATH:config/map.json。SERVICES_PATH:config/services.json。LEVELS_DIR:levels/。SERVICES_DIR:services/。
函数定义与行为
_write_json(path: Path, data: dict) -> None
以 utf-8 写入 JSON 文件,ensure_ascii=False,缩进 2,末尾带换行。
_default_config() -> dict
返回默认配置:
_comment: 提示字段secret_key:secrets.token_hex(32)fingerprint_salt:secrets.token_hex(16)token_expire_hours:48fingerprint_mode:strictdebug:False
_scan_levels() -> list[dict]
扫描 levels/ 目录,要求子目录包含 __init__.py。 返回结构:
json
{ "slug": "<module>", "module": "<module>", "name": "<module>", "enabled": true }_default_map() -> dict
若扫描到关卡,生成对应 levels 列表,否则返回空列表。
load_config() -> dict
读取 CONFIG_PATH,若不存在则写入 _default_config()。
save_config(config: dict) -> None
调用 _write_json 保存。
load_map() -> dict
读取 MAP_PATH,若不存在则写入 _default_map()。
save_map(mapping: dict) -> None
调用 _write_json 保存。
map_levels() -> list[dict]
返回 load_map() 中的 levels 列表。
resolve_level_index(slug: str) -> int | None
遍历 map_levels(),返回匹配 slug 的索引。
next_level_slug(current_index: int) -> str | None
取 current_index + 1 对应关卡 slug。
load_services() -> dict
读取 SERVICES_PATH,不存在则返回 { "services": [] }。
save_services(services: dict) -> None
调用 _write_json 保存。
map_services() -> list[dict]
返回 load_services() 中的 services 列表。