92 lines
2.4 KiB
Python
92 lines
2.4 KiB
Python
from dataclasses import dataclass, field
|
||
from typing import Literal
|
||
|
||
from src.config.config_base import ConfigBase
|
||
|
||
"""
|
||
须知:
|
||
1. 本文件中记录了所有的配置项
|
||
2. 所有新增的class都需要继承自ConfigBase
|
||
3. 所有新增的class都应在config.py中的Config类中添加字段
|
||
4. 对于新增的字段,若为可选项,则应在其后添加field()并设置default_factory或default
|
||
"""
|
||
|
||
ADAPTER_PLATFORM = "qq"
|
||
|
||
|
||
@dataclass
|
||
class NicknameConfig(ConfigBase):
|
||
nickname: str
|
||
"""机器人昵称"""
|
||
|
||
|
||
@dataclass
|
||
class NapcatServerConfig(ConfigBase):
|
||
host: str = "localhost"
|
||
"""Napcat服务端的主机地址"""
|
||
|
||
port: int = 8095
|
||
"""Napcat服务端的端口号"""
|
||
|
||
token: str = ""
|
||
"""Napcat服务端的访问令牌,若无则留空"""
|
||
|
||
heartbeat_interval: int = 30
|
||
"""Napcat心跳间隔时间,单位为秒"""
|
||
|
||
|
||
@dataclass
|
||
class MaiBotServerConfig(ConfigBase):
|
||
platform_name: str = field(default=ADAPTER_PLATFORM, init=False)
|
||
"""平台名称,“qq”"""
|
||
|
||
host: str = "localhost"
|
||
"""MaiMCore的主机地址"""
|
||
|
||
port: int = 8000
|
||
"""MaiMCore的端口号"""
|
||
|
||
|
||
@dataclass
|
||
class ChatConfig(ConfigBase):
|
||
group_list_type: Literal["whitelist", "blacklist"] = "whitelist"
|
||
"""群聊列表类型 白名单/黑名单"""
|
||
|
||
group_list: list[int] = field(default_factory=[])
|
||
"""群聊列表"""
|
||
|
||
private_list_type: Literal["whitelist", "blacklist"] = "whitelist"
|
||
"""私聊列表类型 白名单/黑名单"""
|
||
|
||
private_list: list[int] = field(default_factory=[])
|
||
"""私聊列表"""
|
||
|
||
ban_user_id: list[int] = field(default_factory=[])
|
||
"""被封禁的用户ID列表,封禁后将无法与其进行交互"""
|
||
|
||
ban_qq_bot: bool = False
|
||
"""是否屏蔽QQ官方机器人,若为True,则所有QQ官方机器人将无法与MaiMCore进行交互"""
|
||
|
||
enable_poke: bool = True
|
||
"""是否启用戳一戳功能"""
|
||
|
||
|
||
@dataclass
|
||
class VoiceConfig(ConfigBase):
|
||
use_tts: bool = False
|
||
"""是否启用TTS功能"""
|
||
|
||
|
||
@dataclass
|
||
class ForwardConfig(ConfigBase):
|
||
"""转发消息相关配置"""
|
||
|
||
image_threshold: int = 3
|
||
"""图片数量阈值:转发消息中图片数量超过此值时,使用占位符代替base64发送,避免麦麦VLM处理卡死"""
|
||
|
||
|
||
@dataclass
|
||
class DebugConfig(ConfigBase):
|
||
level: Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] = "INFO"
|
||
"""日志级别,默认为INFO"""
|