This commit is contained in:
tt-P607
2025-11-28 15:24:16 +08:00
6 changed files with 70 additions and 44 deletions

View File

@@ -1107,28 +1107,22 @@ class EmojiManager:
if emoji_base64 is None: # 再次检查读取
logger.error(f"[注册失败] 无法读取图片以生成描述: {filename}")
return False
task = asyncio.create_task(self.build_emoji_description(emoji_base64))
def after_built_description(fut: asyncio.Future):
if fut.cancelled():
logger.error(f"[注册失败] 描述生成任务被取消: {filename}")
elif fut.exception():
logger.error(f"[注册失败] 描述生成任务出错 ({filename}): {fut.exception()}")
else:
description, emotions = fut.result()
# 等待描述生成完成
description, emotions = await self.build_emoji_description(emoji_base64)
if not description: # 检查描述是否成功生成或审核通过
logger.warning(f"[注册失败] 未能生成有效描述或审核未通过: {filename}")
# 删除未能生成描述的文件
try:
os.remove(file_full_path)
logger.info(f"[清理] 删除描述生成失败的文件: {filename}")
except Exception as e:
logger.error(f"[错误] 删除描述生成失败文件时出错: {e!s}")
return False
new_emoji.description = description
new_emoji.emotion = emotions
task.add_done_callback(after_built_description)
if not description: # 检查描述是否成功生成或审核通过
logger.warning(f"[注册失败] 未能生成有效描述或审核未通过: {filename}")
# 删除未能生成描述的文件
try:
os.remove(file_full_path)
logger.info(f"[清理] 删除描述生成失败的文件: {filename}")
except Exception as e:
logger.error(f"[错误] 删除描述生成失败文件时出错: {e!s}")
return False
new_emoji.description = description
new_emoji.emotion = emotions
except Exception as build_desc_error:
logger.error(f"[注册失败] 生成描述/情感时出错 ({filename}): {build_desc_error}")
# 同样考虑删除文件

View File

@@ -134,7 +134,7 @@ class MessageHandler:
predicate=_is_adapter_response,
handler=self._handle_adapter_response_route,
name="adapter_response_handler",
message_type="adapter_response",
priority=100
)
# 注册 notice 消息处理器(处理通知消息,如戳一戳、禁言等)
@@ -152,7 +152,7 @@ class MessageHandler:
predicate=_is_notice_message,
handler=self._handle_notice_message,
name="notice_message_handler",
message_type="notice",
priority=90
)
# 注册默认消息处理器(处理所有其他消息)
@@ -160,6 +160,7 @@ class MessageHandler:
predicate=lambda _: True, # 匹配所有消息
handler=self._handle_normal_message,
name="default_message_handler",
priority=50
)
logger.info("MessageHandler 已向 MessageRuntime 注册处理器和钩子")
@@ -314,7 +315,7 @@ class MessageHandler:
# 触发 notice 事件(可供插件监听)
await event_manager.trigger_event(
EventType.ON_NOTICE_RECEIVED,
permission_group="USER",
permission_group="SYSTEM",
message=message,
notice_type=notice_type,
chat_stream=chat,