Lib.core.ConfigManager

配置管理器

  1"""
  2配置管理器
  3"""
  4
  5import dataclasses
  6
  7import yaml
  8from ..constants import *
  9from ..utils import Logger
 10
 11logger = Logger.get_logger()
 12
 13
 14class ConfigManager:
 15    """
 16    配置管理器
 17    """
 18    def __init__(self, config_path, default_config: str | dict = None):
 19        self.config_path = config_path
 20        self.default_config = default_config
 21        self.config = {}
 22        self.load_config()
 23
 24    def load_config(self):
 25        """
 26        加载配置文件
 27        Returns:
 28            None
 29        """
 30        if os.path.exists(self.config_path):
 31            try:
 32                with open(self.config_path, encoding="utf-8") as f:
 33                    self.config = yaml.safe_load(f)
 34            except Exception as e:
 35                logger.error(f"配置文件 {self.config_path} 加载失败,请检查配置文件内容是否正确。"
 36                             f"如果无法修复,请删除配置文件重新配置,以创建默认配置文件。"
 37                             f"错误信息:{repr(e)}")
 38        else:
 39            try:
 40                if isinstance(self.default_config, str):
 41                    with open(self.config_path, "w", encoding="utf-8") as f:
 42                        f.write(self.default_config)
 43                        logger.info(f"配置文件 {self.config_path} 不存在,已创建默认配置文件")
 44                    self.load_config()
 45                elif isinstance(self.default_config, dict):
 46                    with open(self.config_path, "w", encoding="utf-8") as f:
 47                        yaml.safe_dump(self.default_config, f)
 48                        logger.info(f"配置文件 {self.config_path} 不存在,已创建默认配置文件")
 49                    self.load_config()
 50                else:
 51                    logger.error(f"配置文件 {self.config_path} 不存在,且未提供默认配置,无法创建默认配置文件")
 52                    self.config = {}
 53            except Exception as e:
 54                logger.error(f"配置文件 {self.config_path} 创建失败,请检查配置文件路径是否正确。错误信息:{repr(e)}")
 55                self.config = {}
 56        self.init()
 57
 58    def init(self):
 59        """
 60        用于初始化配置文件,可自行编写初始化逻辑,例如默认值等
 61        """
 62        pass
 63
 64    def save_config(self):
 65        """
 66        保存配置文件
 67        Returns:
 68            None
 69        """
 70        with open(self.config_path, "w", encoding="utf-8") as f:
 71            yaml.safe_dump(self.config, f)
 72
 73    def get(self, key, default=None):
 74        """
 75        获取配置项
 76        Args:
 77            key: 配置项键
 78            default: 默认值
 79        Returns:
 80            配置项值
 81        """
 82        return self.config.get(key, default)
 83
 84    def set(self, key, value):
 85        """
 86        设置配置项
 87        Args:
 88            key: 配置项键
 89            value: 配置项值
 90        Returns:
 91            None
 92        """
 93        self.config[key] = value
 94        self.init()
 95
 96
 97class GlobalConfig(ConfigManager):
 98    """
 99    MRB2配置管理器
100    """
101    _instance = None
102    _init_flag = False
103
104    @dataclasses.dataclass
105    class Account:
106        """
107        账号相关
108        """
109        user_id: int
110        nick_name: str
111        bot_admin: list
112
113    @dataclasses.dataclass
114    class Api:
115        """
116        Api设置
117        """
118        host: str
119        port: int
120        access_token: str
121
122    @dataclasses.dataclass
123    class Server:
124        """
125        监听服务器设置
126        """
127        host: str
128        port: int
129        server: str
130        max_works: int
131        secret: str
132
133    @dataclasses.dataclass
134    class ThreadPool:
135        """
136        线程池相关
137        """
138        max_workers: int
139
140    @dataclasses.dataclass
141    class QQDataCache:
142        """
143        QQ数据缓存设置
144        """
145        enable: bool
146        expire_time: int
147        max_cache_size: int
148
149    @dataclasses.dataclass
150    class Debug:
151        """
152        调试模式,若启用框架的日志等级将被设置为debug,不建议在生产环境开启
153        """
154        enable: bool
155        save_dump: bool
156
157    @dataclasses.dataclass
158    class AutoRestartOnebot:
159        """
160        在Onebot实现端状态异常时自动重启Onebot实现端(需开启心跳包)
161        """
162        enable: bool
163
164    @dataclasses.dataclass
165    class Command:
166        """
167        命令相关
168        """
169        command_start: list[str]
170
171    DEFAULT_CONFIG = """# MuRainBot2配置文件
172account:  # 账号相关
173  user_id: 0  # QQ账号(留空则自动获取)
174  nick_name: ""  # 昵称(留空则自动获取)
175  bot_admin: []
176
177api:  # Api设置(Onebot HTTP通信)
178  host: '127.0.0.1'
179  port: 5700
180  access_token: ""  # HTTP的Access Token,为空则不使用(详见https://github.com/botuniverse/onebot-11/blob/master/communication/authorization.md#http-%E5%92%8C%E6%AD%A3%E5%90%91-websocket)
181
182server:  # 监听服务器设置(Onebot HTTP POST通信)
183  host: '127.0.0.1'
184  port: 5701
185  server: 'werkzeug'  # 使用的服务器(werkzeug或waitress,使用waitress需先pip install waitress)
186  max_works: 4  # 最大工作线程数
187  secret: ""  # 上报数据签名密钥(详见https://github.com/botuniverse/onebot-11/blob/master/communication/http-post.md#%E7%AD%BE%E5%90%8D)
188
189thread_pool:  # 线程池相关
190  max_workers: 10  # 线程池最大线程数
191
192qq_data_cache:  # QQ数据缓存设置
193  enable: true  # 是否启用缓存(非常不推荐关闭缓存,对于对于需要无缓存的场景,推荐在插件内自行调用api来获取而非关闭此配置项)
194  expire_time: 300  # 缓存过期时间(秒)
195  max_cache_size: 500  # 最大缓存数量(设置过大可能会导致报错)
196
197debug:  # 调试模式,若启用框架的日志等级将被设置为debug,不建议在生产环境开启
198  enable: false  # 是否启用调试模式
199  save_dump: true  # 是否在发生异常的同时保存一个dump错误文件(不受debug.enable约束,独立开关,若要使用请先安装coredumpy库,不使用可不安装)
200
201auto_restart_onebot:  # 在Onebot实现端状态异常时自动重启Onebot实现端(需开启心跳包)
202  enable: true  # 是否启用自动重启
203
204command:  # 命令相关
205  command_start: ["/"]  # 命令起始符
206"""
207
208    def __new__(cls):
209        if not cls._instance:
210            cls._instance = super().__new__(cls)
211        return cls._instance
212
213    def __init__(self):
214        self.account: GlobalConfig.Account = None
215        self.api: GlobalConfig.Api = None
216        self.server: GlobalConfig.Server = None
217        self.thread_pool: GlobalConfig.ThreadPool = None
218        self.qq_data_cache: GlobalConfig.QQDataCache = None
219        self.debug: GlobalConfig.Debug = None
220        self.auto_restart_onebot: GlobalConfig.AutoRestartOnebot = None
221        self.command: GlobalConfig.Command = None
222        if not self._init_flag:
223            self._init_flag = True
224            super().__init__(CONFIG_PATH, self.DEFAULT_CONFIG)
225        else:
226            self.init()
227
228    def init(self):
229        super().init()
230        self.account = self.Account(
231            user_id=self.get("account", {}).get("user_id", 0),
232            nick_name=self.get("account", {}).get("nick_name", ""),
233            bot_admin=self.get("account", {}).get("bot_admin", [])
234        )
235        self.api = self.Api(
236            host=self.get("api", {}).get("host", ""),
237            port=self.get("api", {}).get("port", 5700),
238            access_token=self.get("api", {}).get("access_token", "")
239        )
240        self.server = self.Server(
241            host=self.get("server", {}).get("host", ""),
242            port=self.get("server", {}).get("port", 5701),
243            server=self.get("server", {}).get("server", "werkzeug").lower(),
244            max_works=self.get("server", {}).get("max_works", 4),
245            secret=self.get("server", {}).get("secret", "")
246        )
247        self.thread_pool = self.ThreadPool(
248            max_workers=self.get("thread_pool", {}).get("max_workers", 10)
249        )
250        self.qq_data_cache = self.QQDataCache(
251            enable=self.get("qq_data_cache", {}).get("enable", True),
252            expire_time=self.get("qq_data_cache", {}).get("expire_time", 300),
253            max_cache_size=self.get("qq_data_cache", {}).get("max_cache_size", 500)
254        )
255        self.debug = self.Debug(
256            enable=self.get("debug", {}).get("enable", False),
257            save_dump=self.get("debug", {}).get("save_dump", True)
258        )
259        self.auto_restart_onebot = self.AutoRestartOnebot(
260            enable=self.get("auto_restart_onebot", {}).get("enable", True)
261        )
262        self.command = self.Command(
263            command_start=self.get("command", {}).get("command_start", ["/"])
264        )
265
266
267if __name__ == "__main__":
268    test_config = GlobalConfig()
269    print(test_config.api)
270    test_config.set("api", {"host": "127.0.0.1", "port": 5700})
271    print(test_config.api)
logger = <RootLogger root (INFO)>
class ConfigManager:
15class ConfigManager:
16    """
17    配置管理器
18    """
19    def __init__(self, config_path, default_config: str | dict = None):
20        self.config_path = config_path
21        self.default_config = default_config
22        self.config = {}
23        self.load_config()
24
25    def load_config(self):
26        """
27        加载配置文件
28        Returns:
29            None
30        """
31        if os.path.exists(self.config_path):
32            try:
33                with open(self.config_path, encoding="utf-8") as f:
34                    self.config = yaml.safe_load(f)
35            except Exception as e:
36                logger.error(f"配置文件 {self.config_path} 加载失败,请检查配置文件内容是否正确。"
37                             f"如果无法修复,请删除配置文件重新配置,以创建默认配置文件。"
38                             f"错误信息:{repr(e)}")
39        else:
40            try:
41                if isinstance(self.default_config, str):
42                    with open(self.config_path, "w", encoding="utf-8") as f:
43                        f.write(self.default_config)
44                        logger.info(f"配置文件 {self.config_path} 不存在,已创建默认配置文件")
45                    self.load_config()
46                elif isinstance(self.default_config, dict):
47                    with open(self.config_path, "w", encoding="utf-8") as f:
48                        yaml.safe_dump(self.default_config, f)
49                        logger.info(f"配置文件 {self.config_path} 不存在,已创建默认配置文件")
50                    self.load_config()
51                else:
52                    logger.error(f"配置文件 {self.config_path} 不存在,且未提供默认配置,无法创建默认配置文件")
53                    self.config = {}
54            except Exception as e:
55                logger.error(f"配置文件 {self.config_path} 创建失败,请检查配置文件路径是否正确。错误信息:{repr(e)}")
56                self.config = {}
57        self.init()
58
59    def init(self):
60        """
61        用于初始化配置文件,可自行编写初始化逻辑,例如默认值等
62        """
63        pass
64
65    def save_config(self):
66        """
67        保存配置文件
68        Returns:
69            None
70        """
71        with open(self.config_path, "w", encoding="utf-8") as f:
72            yaml.safe_dump(self.config, f)
73
74    def get(self, key, default=None):
75        """
76        获取配置项
77        Args:
78            key: 配置项键
79            default: 默认值
80        Returns:
81            配置项值
82        """
83        return self.config.get(key, default)
84
85    def set(self, key, value):
86        """
87        设置配置项
88        Args:
89            key: 配置项键
90            value: 配置项值
91        Returns:
92            None
93        """
94        self.config[key] = value
95        self.init()

配置管理器

ConfigManager(config_path, default_config: str | dict = None)
19    def __init__(self, config_path, default_config: str | dict = None):
20        self.config_path = config_path
21        self.default_config = default_config
22        self.config = {}
23        self.load_config()
config_path
default_config
config
def load_config(self):
25    def load_config(self):
26        """
27        加载配置文件
28        Returns:
29            None
30        """
31        if os.path.exists(self.config_path):
32            try:
33                with open(self.config_path, encoding="utf-8") as f:
34                    self.config = yaml.safe_load(f)
35            except Exception as e:
36                logger.error(f"配置文件 {self.config_path} 加载失败,请检查配置文件内容是否正确。"
37                             f"如果无法修复,请删除配置文件重新配置,以创建默认配置文件。"
38                             f"错误信息:{repr(e)}")
39        else:
40            try:
41                if isinstance(self.default_config, str):
42                    with open(self.config_path, "w", encoding="utf-8") as f:
43                        f.write(self.default_config)
44                        logger.info(f"配置文件 {self.config_path} 不存在,已创建默认配置文件")
45                    self.load_config()
46                elif isinstance(self.default_config, dict):
47                    with open(self.config_path, "w", encoding="utf-8") as f:
48                        yaml.safe_dump(self.default_config, f)
49                        logger.info(f"配置文件 {self.config_path} 不存在,已创建默认配置文件")
50                    self.load_config()
51                else:
52                    logger.error(f"配置文件 {self.config_path} 不存在,且未提供默认配置,无法创建默认配置文件")
53                    self.config = {}
54            except Exception as e:
55                logger.error(f"配置文件 {self.config_path} 创建失败,请检查配置文件路径是否正确。错误信息:{repr(e)}")
56                self.config = {}
57        self.init()

加载配置文件

Returns:

None

def init(self):
59    def init(self):
60        """
61        用于初始化配置文件,可自行编写初始化逻辑,例如默认值等
62        """
63        pass

用于初始化配置文件,可自行编写初始化逻辑,例如默认值等

def save_config(self):
65    def save_config(self):
66        """
67        保存配置文件
68        Returns:
69            None
70        """
71        with open(self.config_path, "w", encoding="utf-8") as f:
72            yaml.safe_dump(self.config, f)

保存配置文件

Returns:

None

def get(self, key, default=None):
74    def get(self, key, default=None):
75        """
76        获取配置项
77        Args:
78            key: 配置项键
79            default: 默认值
80        Returns:
81            配置项值
82        """
83        return self.config.get(key, default)

获取配置项

Arguments:
  • key: 配置项键
  • default: 默认值
Returns:

配置项值

def set(self, key, value):
85    def set(self, key, value):
86        """
87        设置配置项
88        Args:
89            key: 配置项键
90            value: 配置项值
91        Returns:
92            None
93        """
94        self.config[key] = value
95        self.init()

设置配置项

Arguments:
  • key: 配置项键
  • value: 配置项值
Returns:

None

class GlobalConfig(ConfigManager):
 98class GlobalConfig(ConfigManager):
 99    """
100    MRB2配置管理器
101    """
102    _instance = None
103    _init_flag = False
104
105    @dataclasses.dataclass
106    class Account:
107        """
108        账号相关
109        """
110        user_id: int
111        nick_name: str
112        bot_admin: list
113
114    @dataclasses.dataclass
115    class Api:
116        """
117        Api设置
118        """
119        host: str
120        port: int
121        access_token: str
122
123    @dataclasses.dataclass
124    class Server:
125        """
126        监听服务器设置
127        """
128        host: str
129        port: int
130        server: str
131        max_works: int
132        secret: str
133
134    @dataclasses.dataclass
135    class ThreadPool:
136        """
137        线程池相关
138        """
139        max_workers: int
140
141    @dataclasses.dataclass
142    class QQDataCache:
143        """
144        QQ数据缓存设置
145        """
146        enable: bool
147        expire_time: int
148        max_cache_size: int
149
150    @dataclasses.dataclass
151    class Debug:
152        """
153        调试模式,若启用框架的日志等级将被设置为debug,不建议在生产环境开启
154        """
155        enable: bool
156        save_dump: bool
157
158    @dataclasses.dataclass
159    class AutoRestartOnebot:
160        """
161        在Onebot实现端状态异常时自动重启Onebot实现端(需开启心跳包)
162        """
163        enable: bool
164
165    @dataclasses.dataclass
166    class Command:
167        """
168        命令相关
169        """
170        command_start: list[str]
171
172    DEFAULT_CONFIG = """# MuRainBot2配置文件
173account:  # 账号相关
174  user_id: 0  # QQ账号(留空则自动获取)
175  nick_name: ""  # 昵称(留空则自动获取)
176  bot_admin: []
177
178api:  # Api设置(Onebot HTTP通信)
179  host: '127.0.0.1'
180  port: 5700
181  access_token: ""  # HTTP的Access Token,为空则不使用(详见https://github.com/botuniverse/onebot-11/blob/master/communication/authorization.md#http-%E5%92%8C%E6%AD%A3%E5%90%91-websocket)
182
183server:  # 监听服务器设置(Onebot HTTP POST通信)
184  host: '127.0.0.1'
185  port: 5701
186  server: 'werkzeug'  # 使用的服务器(werkzeug或waitress,使用waitress需先pip install waitress)
187  max_works: 4  # 最大工作线程数
188  secret: ""  # 上报数据签名密钥(详见https://github.com/botuniverse/onebot-11/blob/master/communication/http-post.md#%E7%AD%BE%E5%90%8D)
189
190thread_pool:  # 线程池相关
191  max_workers: 10  # 线程池最大线程数
192
193qq_data_cache:  # QQ数据缓存设置
194  enable: true  # 是否启用缓存(非常不推荐关闭缓存,对于对于需要无缓存的场景,推荐在插件内自行调用api来获取而非关闭此配置项)
195  expire_time: 300  # 缓存过期时间(秒)
196  max_cache_size: 500  # 最大缓存数量(设置过大可能会导致报错)
197
198debug:  # 调试模式,若启用框架的日志等级将被设置为debug,不建议在生产环境开启
199  enable: false  # 是否启用调试模式
200  save_dump: true  # 是否在发生异常的同时保存一个dump错误文件(不受debug.enable约束,独立开关,若要使用请先安装coredumpy库,不使用可不安装)
201
202auto_restart_onebot:  # 在Onebot实现端状态异常时自动重启Onebot实现端(需开启心跳包)
203  enable: true  # 是否启用自动重启
204
205command:  # 命令相关
206  command_start: ["/"]  # 命令起始符
207"""
208
209    def __new__(cls):
210        if not cls._instance:
211            cls._instance = super().__new__(cls)
212        return cls._instance
213
214    def __init__(self):
215        self.account: GlobalConfig.Account = None
216        self.api: GlobalConfig.Api = None
217        self.server: GlobalConfig.Server = None
218        self.thread_pool: GlobalConfig.ThreadPool = None
219        self.qq_data_cache: GlobalConfig.QQDataCache = None
220        self.debug: GlobalConfig.Debug = None
221        self.auto_restart_onebot: GlobalConfig.AutoRestartOnebot = None
222        self.command: GlobalConfig.Command = None
223        if not self._init_flag:
224            self._init_flag = True
225            super().__init__(CONFIG_PATH, self.DEFAULT_CONFIG)
226        else:
227            self.init()
228
229    def init(self):
230        super().init()
231        self.account = self.Account(
232            user_id=self.get("account", {}).get("user_id", 0),
233            nick_name=self.get("account", {}).get("nick_name", ""),
234            bot_admin=self.get("account", {}).get("bot_admin", [])
235        )
236        self.api = self.Api(
237            host=self.get("api", {}).get("host", ""),
238            port=self.get("api", {}).get("port", 5700),
239            access_token=self.get("api", {}).get("access_token", "")
240        )
241        self.server = self.Server(
242            host=self.get("server", {}).get("host", ""),
243            port=self.get("server", {}).get("port", 5701),
244            server=self.get("server", {}).get("server", "werkzeug").lower(),
245            max_works=self.get("server", {}).get("max_works", 4),
246            secret=self.get("server", {}).get("secret", "")
247        )
248        self.thread_pool = self.ThreadPool(
249            max_workers=self.get("thread_pool", {}).get("max_workers", 10)
250        )
251        self.qq_data_cache = self.QQDataCache(
252            enable=self.get("qq_data_cache", {}).get("enable", True),
253            expire_time=self.get("qq_data_cache", {}).get("expire_time", 300),
254            max_cache_size=self.get("qq_data_cache", {}).get("max_cache_size", 500)
255        )
256        self.debug = self.Debug(
257            enable=self.get("debug", {}).get("enable", False),
258            save_dump=self.get("debug", {}).get("save_dump", True)
259        )
260        self.auto_restart_onebot = self.AutoRestartOnebot(
261            enable=self.get("auto_restart_onebot", {}).get("enable", True)
262        )
263        self.command = self.Command(
264            command_start=self.get("command", {}).get("command_start", ["/"])
265        )

MRB2配置管理器

DEFAULT_CONFIG = '# MuRainBot2配置文件\naccount: # 账号相关\n user_id: 0 # QQ账号(留空则自动获取)\n nick_name: "" # 昵称(留空则自动获取)\n bot_admin: []\n\napi: # Api设置(Onebot HTTP通信)\n host: \'127.0.0.1\'\n port: 5700\n access_token: "" # HTTP的Access Token,为空则不使用(详见https://github.com/botuniverse/onebot-11/blob/master/communication/authorization.md#http-%E5%92%8C%E6%AD%A3%E5%90%91-websocket)\n\nserver: # 监听服务器设置(Onebot HTTP POST通信)\n host: \'127.0.0.1\'\n port: 5701\n server: \'werkzeug\' # 使用的服务器(werkzeug或waitress,使用waitress需先pip install waitress)\n max_works: 4 # 最大工作线程数\n secret: "" # 上报数据签名密钥(详见https://github.com/botuniverse/onebot-11/blob/master/communication/http-post.md#%E7%AD%BE%E5%90%8D)\n\nthread_pool: # 线程池相关\n max_workers: 10 # 线程池最大线程数\n\nqq_data_cache: # QQ数据缓存设置\n enable: true # 是否启用缓存(非常不推荐关闭缓存,对于对于需要无缓存的场景,推荐在插件内自行调用api来获取而非关闭此配置项)\n expire_time: 300 # 缓存过期时间(秒)\n max_cache_size: 500 # 最大缓存数量(设置过大可能会导致报错)\n\ndebug: # 调试模式,若启用框架的日志等级将被设置为debug,不建议在生产环境开启\n enable: false # 是否启用调试模式\n save_dump: true # 是否在发生异常的同时保存一个dump错误文件(不受debug.enable约束,独立开关,若要使用请先安装coredumpy库,不使用可不安装)\n\nauto_restart_onebot: # 在Onebot实现端状态异常时自动重启Onebot实现端(需开启心跳包)\n enable: true # 是否启用自动重启\n\ncommand: # 命令相关\n command_start: ["/"] # 命令起始符\n'
qq_data_cache: GlobalConfig.QQDataCache
auto_restart_onebot: GlobalConfig.AutoRestartOnebot
def init(self):
229    def init(self):
230        super().init()
231        self.account = self.Account(
232            user_id=self.get("account", {}).get("user_id", 0),
233            nick_name=self.get("account", {}).get("nick_name", ""),
234            bot_admin=self.get("account", {}).get("bot_admin", [])
235        )
236        self.api = self.Api(
237            host=self.get("api", {}).get("host", ""),
238            port=self.get("api", {}).get("port", 5700),
239            access_token=self.get("api", {}).get("access_token", "")
240        )
241        self.server = self.Server(
242            host=self.get("server", {}).get("host", ""),
243            port=self.get("server", {}).get("port", 5701),
244            server=self.get("server", {}).get("server", "werkzeug").lower(),
245            max_works=self.get("server", {}).get("max_works", 4),
246            secret=self.get("server", {}).get("secret", "")
247        )
248        self.thread_pool = self.ThreadPool(
249            max_workers=self.get("thread_pool", {}).get("max_workers", 10)
250        )
251        self.qq_data_cache = self.QQDataCache(
252            enable=self.get("qq_data_cache", {}).get("enable", True),
253            expire_time=self.get("qq_data_cache", {}).get("expire_time", 300),
254            max_cache_size=self.get("qq_data_cache", {}).get("max_cache_size", 500)
255        )
256        self.debug = self.Debug(
257            enable=self.get("debug", {}).get("enable", False),
258            save_dump=self.get("debug", {}).get("save_dump", True)
259        )
260        self.auto_restart_onebot = self.AutoRestartOnebot(
261            enable=self.get("auto_restart_onebot", {}).get("enable", True)
262        )
263        self.command = self.Command(
264            command_start=self.get("command", {}).get("command_start", ["/"])
265        )

用于初始化配置文件,可自行编写初始化逻辑,例如默认值等

@dataclasses.dataclass
class GlobalConfig.Account:
105    @dataclasses.dataclass
106    class Account:
107        """
108        账号相关
109        """
110        user_id: int
111        nick_name: str
112        bot_admin: list

账号相关

GlobalConfig.Account(user_id: int, nick_name: str, bot_admin: list)
user_id: int
nick_name: str
bot_admin: list
@dataclasses.dataclass
class GlobalConfig.Api:
114    @dataclasses.dataclass
115    class Api:
116        """
117        Api设置
118        """
119        host: str
120        port: int
121        access_token: str

Api设置

GlobalConfig.Api(host: str, port: int, access_token: str)
host: str
port: int
access_token: str
@dataclasses.dataclass
class GlobalConfig.Server:
123    @dataclasses.dataclass
124    class Server:
125        """
126        监听服务器设置
127        """
128        host: str
129        port: int
130        server: str
131        max_works: int
132        secret: str

监听服务器设置

GlobalConfig.Server(host: str, port: int, server: str, max_works: int, secret: str)
host: str
port: int
server: str
max_works: int
secret: str
@dataclasses.dataclass
class GlobalConfig.ThreadPool:
134    @dataclasses.dataclass
135    class ThreadPool:
136        """
137        线程池相关
138        """
139        max_workers: int

线程池相关

GlobalConfig.ThreadPool(max_workers: int)
max_workers: int
@dataclasses.dataclass
class GlobalConfig.QQDataCache:
141    @dataclasses.dataclass
142    class QQDataCache:
143        """
144        QQ数据缓存设置
145        """
146        enable: bool
147        expire_time: int
148        max_cache_size: int

QQ数据缓存设置

GlobalConfig.QQDataCache(enable: bool, expire_time: int, max_cache_size: int)
enable: bool
expire_time: int
max_cache_size: int
@dataclasses.dataclass
class GlobalConfig.Debug:
150    @dataclasses.dataclass
151    class Debug:
152        """
153        调试模式,若启用框架的日志等级将被设置为debug,不建议在生产环境开启
154        """
155        enable: bool
156        save_dump: bool

调试模式,若启用框架的日志等级将被设置为debug,不建议在生产环境开启

GlobalConfig.Debug(enable: bool, save_dump: bool)
enable: bool
save_dump: bool
@dataclasses.dataclass
class GlobalConfig.AutoRestartOnebot:
158    @dataclasses.dataclass
159    class AutoRestartOnebot:
160        """
161        在Onebot实现端状态异常时自动重启Onebot实现端(需开启心跳包)
162        """
163        enable: bool

在Onebot实现端状态异常时自动重启Onebot实现端(需开启心跳包)

GlobalConfig.AutoRestartOnebot(enable: bool)
enable: bool
@dataclasses.dataclass
class GlobalConfig.Command:
165    @dataclasses.dataclass
166    class Command:
167        """
168        命令相关
169        """
170        command_start: list[str]

命令相关

GlobalConfig.Command(command_start: list[str])
command_start: list[str]