"""Danding_QqPush 插件配置模块""" import os from pydantic import BaseModel, model_validator class Config(BaseModel): """插件配置""" Token: str = "danding-8HkL9xQ2" """API 访问 Token,用于鉴权(必须在 .env 中配置 DANDING_QQPUSH_TOKEN)""" # 图片生成配置 ImageWidth: int = 800 """生成的图片宽度(像素)""" ImageFontSize: int = 24 """字体大小(像素)""" ImagePadding: int = 30 """图片内边距(像素)""" ImageLineSpacing: float = 1.4 """行距倍数""" ImageBgColor: tuple = (252, 252, 252) """图片背景颜色 (R, G, B)""" ImageTextColor: tuple = (0, 0, 0) """文本颜色 (R, G, B)""" # 文本处理配置 MaxTextLength: int = 2000 """最大文本长度(字符数),超过将截断""" # 字体路径配置 FontPaths: list = ("/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc", "/usr/share/fonts/wqy-microhei/wqy-microhei.ttc", "/usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc", "C:/Windows/Fonts/msyh.ttc", "C:/Windows/Fonts/simhei.ttf",) """字体文件路径列表""" @model_validator(mode="before") @classmethod def load_token_aliases(cls, values): """兼容 NoneBot 配置和环境变量中的 QQPush Token 命名。""" if not isinstance(values, dict): return values token = ( values.get("Token") or values.get("token") or values.get("DANDING_QQPUSH_TOKEN") or values.get("danding_qqpush_token") or os.getenv("DANDING_QQPUSH_TOKEN") ) if token: values["Token"] = token return values