from pydantic import BaseSettings import os class Config(BaseSettings): # 抽卡概率配置 RARITY_PROBABILITY: dict = { "R": 78.75, "SR": 20.0, "SSR": 1.0, "SP": 0.25 } # 每日抽卡限制 DAILY_LIMIT: int = 3 # 数据文件路径 DB_FILE: str = "data/onmyoji_gacha/gacha.db" DAILY_DRAWS_FILE: str = "data/onmyoji_gacha/daily_draws.json" # 保留用于迁移 USER_STATS_FILE: str = "data/onmyoji_gacha/user_stats.json" # 保留用于迁移 # 式神图片目录 SHIKIGAMI_IMG_DIR: str = "data/chouka/" # 触发指令 GACHA_COMMANDS: list = ["抽卡","抽奖", "召唤"] STATS_COMMANDS: list = ["我的抽卡","我的抽奖", "我的图鉴"] DAILY_STATS_COMMANDS: list = ["今日抽卡", "今日统计", "抽卡统计"] TRIPLE_GACHA_COMMANDS: list = ["三连", "三连抽"] ACHIEVEMENT_COMMANDS: list = ["查询成就", "抽卡成就"] INTRO_COMMANDS: list = ["抽卡介绍", "抽卡说明", "抽卡帮助"] # 成就系统配置 ACHIEVEMENTS: dict = { "consecutive_days_30_1": { "name": "勤勤恳恳Ⅰ", "description": "连续抽卡30天", "reward": "天卡", "threshold": 30, "type": "consecutive_days", "level": 1, "repeatable": True }, "consecutive_days_30_2": { "name": "勤勤恳恳Ⅱ", "description": "连续抽卡60天", "reward": "天卡", "threshold": 60, "type": "consecutive_days", "level": 2, "repeatable": True }, "consecutive_days_30_3": { "name": "勤勤恳恳Ⅲ", "description": "连续抽卡90天", "reward": "天卡", "threshold": 90, "type": "consecutive_days", "level": 3, "repeatable": True }, "consecutive_days_30_4": { "name": "勤勤恳恳Ⅳ", "description": "连续抽卡120天", "reward": "周卡", "threshold": 120, "type": "consecutive_days", "level": 4, "repeatable": True }, "consecutive_days_30_5": { "name": "勤勤恳恳Ⅴ", "description": "连续抽卡150天", "reward": "周卡", "threshold": 150, "type": "consecutive_days", "level": 5, "repeatable": True, "repeat_reward": "天卡" }, "no_ssr_60": { "name": "非酋", "description": "连续60次未抽到SSR/SP", "reward": "天卡", "threshold": 60, "type": "no_ssr_streak" }, "no_ssr_120": { "name": "顶级非酋", "description": "连续120次未抽到SSR/SP", "reward": "周卡", "threshold": 120, "type": "no_ssr_streak" }, "no_ssr_180": { "name": "月见黑", "description": "连续180次未抽到SSR/SP", "reward": "月卡", "threshold": 180, "type": "no_ssr_streak" } } # 权限配置 ALLOWED_GROUP_ID: int = 621016172 ALLOWED_USER_ID: int = 1424473282 # 特殊概率用户配置 SPECIAL_PROBABILITY_USERS: list = ["1424473282"] # 100%抽到SSR或SP的用户列表 # Web后台管理配置 WEB_ADMIN_TOKEN: str = os.getenv("WEB_ADMIN_TOKEN", "onmyoji_admin_token_2024") WEB_ADMIN_PORT: int = int(os.getenv("WEB_ADMIN_PORT", "8080")) # 时区 TIMEZONE: str = "Asia/Shanghai" class Config: extra = "ignore"