2025-04-01 22:53:32 +08:00

62 lines
1.2 KiB
Python

from dataclasses import dataclass
import toml
@dataclass
class DatabaseConfig:
"""数据库配置"""
host: str
port: int
user: str
password: str
database: str
@dataclass
class ChromeConfig:
"""浏览器配置"""
proxy: str
browser_path: str
@dataclass
class AppConfig:
"""总配置,如果未来增加 Web 服务,添加 WebConfig 即可"""
debug: bool
wap_screenshot: bool
headless_chrome: bool
database: DatabaseConfig
chrome: ChromeConfig
def load_config(config_path: str) -> AppConfig:
"""加载配置"""
with open(config_path, "r", encoding="utf-8") as f:
config_dict = toml.load(f)
database_config = DatabaseConfig(**config_dict["database"])
chrome_config = ChromeConfig(**config_dict["chrome"])
AppCtx.g_app_config = AppConfig(
debug=config_dict["debug"],
wap_screenshot=config_dict["wap_screenshot"],
headless_chrome=True,
database=database_config,
chrome=chrome_config
)
return AppCtx.g_app_config
class AppCtx:
# 全局变量
# 配置信息
g_app_config: AppConfig = None
# 数据库连接
g_db_engine = None