mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-13 01:06:03 +00:00
fix: 重载启动新的bot线程导致原线程中止
This commit is contained in:
5
main.py
5
main.py
@@ -77,8 +77,9 @@ def main(first_time_init=False):
|
|||||||
timeout=config.process_message_timeout, retry=config.retry_times,
|
timeout=config.process_message_timeout, retry=config.retry_times,
|
||||||
first_time_init=first_time_init)
|
first_time_init=first_time_init)
|
||||||
|
|
||||||
qq_bot_thread = threading.Thread(target=qqbot.bot.run, args=(), daemon=True)
|
if first_time_init: # 不是热重载之后的启动,则不启动新的bot线程
|
||||||
qq_bot_thread.start()
|
qq_bot_thread = threading.Thread(target=qqbot.bot.run, args=(), daemon=True)
|
||||||
|
qq_bot_thread.start()
|
||||||
|
|
||||||
logging.info('程序启动完成')
|
logging.info('程序启动完成')
|
||||||
|
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ class QQBotManager:
|
|||||||
else:
|
else:
|
||||||
self.reply_filter = pkg.qqbot.filter.ReplyFilter([])
|
self.reply_filter = pkg.qqbot.filter.ReplyFilter([])
|
||||||
|
|
||||||
|
|
||||||
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:
|
||||||
@@ -78,18 +77,6 @@ class QQBotManager:
|
|||||||
|
|
||||||
pkg.utils.context.set_qqbot_manager(self)
|
pkg.utils.context.set_qqbot_manager(self)
|
||||||
|
|
||||||
@self.bot.on(FriendMessage)
|
|
||||||
async def on_friend_message(event: FriendMessage):
|
|
||||||
go(self.on_person_message, (event,))
|
|
||||||
|
|
||||||
@self.bot.on(StrangerMessage)
|
|
||||||
async def on_stranger_message(event: StrangerMessage):
|
|
||||||
go(self.on_person_message, (event,))
|
|
||||||
|
|
||||||
@self.bot.on(GroupMessage)
|
|
||||||
async def on_group_message(event: GroupMessage):
|
|
||||||
go(self.on_group_message, (event,))
|
|
||||||
|
|
||||||
def first_time_init(self, mirai_http_api_config: dict):
|
def first_time_init(self, mirai_http_api_config: dict):
|
||||||
|
|
||||||
if 'adapter' not in mirai_http_api_config or mirai_http_api_config['adapter'] == "WebSocketAdapter":
|
if 'adapter' not in mirai_http_api_config or mirai_http_api_config['adapter'] == "WebSocketAdapter":
|
||||||
@@ -114,9 +101,20 @@ class QQBotManager:
|
|||||||
else:
|
else:
|
||||||
raise Exception("未知的适配器类型")
|
raise Exception("未知的适配器类型")
|
||||||
|
|
||||||
|
|
||||||
self.bot = bot
|
self.bot = bot
|
||||||
|
|
||||||
|
@self.bot.on(FriendMessage)
|
||||||
|
async def on_friend_message(event: FriendMessage):
|
||||||
|
go(self.on_person_message, (event,))
|
||||||
|
|
||||||
|
@self.bot.on(StrangerMessage)
|
||||||
|
async def on_stranger_message(event: StrangerMessage):
|
||||||
|
go(self.on_person_message, (event,))
|
||||||
|
|
||||||
|
@self.bot.on(GroupMessage)
|
||||||
|
async def on_group_message(event: GroupMessage):
|
||||||
|
go(self.on_group_message, (event,))
|
||||||
|
|
||||||
def send(self, event, msg, check_quote=True):
|
def send(self, event, msg, check_quote=True):
|
||||||
asyncio.run(
|
asyncio.run(
|
||||||
self.bot.send(event, msg, quote=True if hasattr(config,
|
self.bot.send(event, msg, quote=True if hasattr(config,
|
||||||
|
|||||||
Reference in New Issue
Block a user