From 302d48ff8582121b6e30464dfa0c35b960ea277c Mon Sep 17 00:00:00 2001 From: Windpicker-owo <3431391539@qq.com> Date: Fri, 28 Nov 2025 13:43:28 +0800 Subject: [PATCH] =?UTF-8?q?fix(emoji=5Fmanager):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=A1=A8=E6=83=85=E5=8C=85=E6=B3=A8=E5=86=8C=E6=97=B6=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=E7=94=9F=E6=88=90=E7=9A=84=E5=BC=82=E6=AD=A5=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/emoji_system/emoji_manager.py | 34 +++++++++++--------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/src/chat/emoji_system/emoji_manager.py b/src/chat/emoji_system/emoji_manager.py index b1a359d3c..6a9437757 100644 --- a/src/chat/emoji_system/emoji_manager.py +++ b/src/chat/emoji_system/emoji_manager.py @@ -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}") # 同样考虑删除文件