doc: 添加热重载相关注释

This commit is contained in:
Rock Chin
2023-01-02 13:06:48 +08:00
parent f5bf012ba7
commit 85471fd0df
4 changed files with 13 additions and 3 deletions

View File

@@ -32,6 +32,9 @@ openai_config = {
}, },
} }
# 管理员QQ号用于接收报错等通知为0时不发送通知
admin_qq = 0
# 情景预设(机器人人格) # 情景预设(机器人人格)
# 每个会话的预设信息,影响所有会话,无视指令重置 # 每个会话的预设信息,影响所有会话,无视指令重置
# 可以通过这个字段指定某些情况的回复,可直接用自然语言描述指令 # 可以通过这个字段指定某些情况的回复,可直接用自然语言描述指令
@@ -40,9 +43,6 @@ openai_config = {
# 可参考 https://github.com/PlexPt/awesome-chatgpt-prompts-zh # 可参考 https://github.com/PlexPt/awesome-chatgpt-prompts-zh
default_prompt = "如果我之后想获取帮助,请你说“输入!help获取帮助”" default_prompt = "如果我之后想获取帮助,请你说“输入!help获取帮助”"
# 管理员QQ号用于接收报错等通知为0时不发送通知
admin_qq = 0
# 群内响应规则 # 群内响应规则
# 符合此消息的群内消息即使不包含at机器人也会响应 # 符合此消息的群内消息即使不包含at机器人也会响应
# 支持消息前缀匹配及正则表达式匹配 # 支持消息前缀匹配及正则表达式匹配

View File

@@ -73,6 +73,9 @@ class QQBotManager:
else: else:
self.reply_filter = pkg.qqbot.filter.ReplyFilter([]) self.reply_filter = pkg.qqbot.filter.ReplyFilter([])
# 由于YiriMirai的bot对象是单例的且shutdown方法暂时无法使用
# 故只在第一次初始化时创建bot对象重载之后使用原bot对象
# 因此bot的配置不支持热重载
if first_time_init: if first_time_init:
self.first_time_init(mirai_http_api_config) self.first_time_init(mirai_http_api_config)
else: else:
@@ -94,6 +97,10 @@ class QQBotManager:
go(self.on_group_message, (event,)) go(self.on_group_message, (event,))
def unsubscribe_all(): def unsubscribe_all():
"""取消所有订阅
用于在热重载流程中卸载所有事件处理器
"""
assert isinstance(self.bot, Mirai) assert isinstance(self.bot, Mirai)
bus = self.bot.bus bus = self.bot.bus
assert isinstance(bus, mirai.models.bus.ModelEventBus) assert isinstance(bus, mirai.models.bus.ModelEventBus)

View File

@@ -12,6 +12,7 @@ from main import log_colors_config
def walk(module, prefix=''): def walk(module, prefix=''):
"""遍历并重载所有模块"""
for item in pkgutil.iter_modules(module.__path__): for item in pkgutil.iter_modules(module.__path__):
if item.ispkg: if item.ispkg:
walk(__import__(module.__name__ + '.' + item.name, fromlist=['']), prefix + item.name + '.') walk(__import__(module.__name__ + '.' + item.name, fromlist=['']), prefix + item.name + '.')
@@ -29,6 +30,7 @@ def reload_all():
import main import main
main.stop() main.stop()
# 重载所有模块
context = pkg.utils.context.context context = pkg.utils.context.context
walk(pkg) walk(pkg)
importlib.reload(__import__('config')) importlib.reload(__import__('config'))

View File

@@ -2,6 +2,7 @@ import dulwich.porcelain
def update_all(): def update_all():
"""使用dulwich更新源码"""
try: try:
from dulwich import porcelain from dulwich import porcelain
repo = porcelain.open_repo('.') repo = porcelain.open_repo('.')