mirror of
https://github.com/langbot-app/LangBot.git
synced 2025-11-26 03:44:58 +08:00
doc: 添加热重载相关注释
This commit is contained in:
@@ -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机器人也会响应
|
||||||
# 支持消息前缀匹配及正则表达式匹配
|
# 支持消息前缀匹配及正则表达式匹配
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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'))
|
||||||
|
|||||||
@@ -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('.')
|
||||||
|
|||||||
Reference in New Issue
Block a user