84 lines
2.3 KiB
Python
84 lines
2.3 KiB
Python
"""配置管理模块"""
|
|
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, # 棋盘大小
|
|
},
|
|
} |