"""配置管理模块""" import os from pathlib import Path from dotenv import load_dotenv # 加载环境变量 load_dotenv() # 项目根目录 BASE_DIR = Path(__file__).resolve().parent # WPS Webhook配置 - 使用函数动态获取 WEBHOOK_URL = os.getenv( "WEBHOOK_URL", "https://xz.wps.cn/api/v1/webhook/send?key=da86927e491f2aef4b964223687c2c80" ) def SetWebhookURL(url: str): """设置Webhook URL""" global WEBHOOK_URL WEBHOOK_URL = url def GetWebhookURL() -> str: """获取Webhook URL""" return WEBHOOK_URL # 数据库配置 DATABASE_PATH = os.getenv("DATABASE_PATH", str(BASE_DIR / "data" / "bot.db")) # 系统配置 MAX_CONCURRENT_REQUESTS = int(os.getenv("MAX_CONCURRENT_REQUESTS", "5")) SESSION_TIMEOUT = int(os.getenv("SESSION_TIMEOUT", "1800")) # 30分钟 MESSAGE_RATE_LIMIT = int(os.getenv("MESSAGE_RATE_LIMIT", "20")) # 20条/分钟 # 日志配置 LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO") # 确保数据目录存在 DATA_DIR = BASE_DIR / "data" DATA_DIR.mkdir(exist_ok=True) # 应用配置 APP_CONFIG = { "title": "WPS Bot Game", "description": "WPS协作机器人游戏系统", "version": "1.0.0", # 关闭文档以节省内存 "docs_url": None, "redoc_url": None, "openapi_url": None, } # 游戏配置 GAME_CONFIG = { "dice": { "max_dice_count": 100, # 最多掷骰数量 "max_dice_sides": 1000, # 最大骰面数 }, "guess": { "min_number": 1, "max_number": 100, "max_attempts": 10, }, "rps": { "choices": ["石头", "剪刀", "布"], }, "quiz": { "timeout": 60, # 答题超时时间(秒) }, "idiom": { "max_history_display": 10, # 状态显示最近N个成语 "starter_idioms": [ # 起始成语池 "一马当先", "龙马精神", "马到成功", "开门见山", "心想事成", "万事如意", "风调雨顺", "国泰民安", "四季平安", "安居乐业", "业精于勤", "勤学苦练", "练达老成", "成竹在胸", "胸有成竹", "竹报平安", "平步青云", "云程发轫", "刃迎缕解", "解甲归田" ] }, "gomoku": { "max_concurrent_games": 5, # 每个聊天最多同时进行的游戏数 "board_size": 15, # 棋盘大小 }, }