Files
WPSBot/config.py
2025-10-29 12:14:50 +08:00

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, # 棋盘大小
},
}