fix(emoji_manager): 优化表情包注册时描述生成的异步处理逻辑
This commit is contained in:
@@ -1107,15 +1107,9 @@ class EmojiManager:
|
|||||||
if emoji_base64 is None: # 再次检查读取
|
if emoji_base64 is None: # 再次检查读取
|
||||||
logger.error(f"[注册失败] 无法读取图片以生成描述: {filename}")
|
logger.error(f"[注册失败] 无法读取图片以生成描述: {filename}")
|
||||||
return False
|
return False
|
||||||
task = asyncio.create_task(self.build_emoji_description(emoji_base64))
|
|
||||||
|
|
||||||
def after_built_description(fut: asyncio.Future):
|
# 等待描述生成完成
|
||||||
if fut.cancelled():
|
description, emotions = await self.build_emoji_description(emoji_base64)
|
||||||
logger.error(f"[注册失败] 描述生成任务被取消: {filename}")
|
|
||||||
elif fut.exception():
|
|
||||||
logger.error(f"[注册失败] 描述生成任务出错 ({filename}): {fut.exception()}")
|
|
||||||
else:
|
|
||||||
description, emotions = fut.result()
|
|
||||||
|
|
||||||
if not description: # 检查描述是否成功生成或审核通过
|
if not description: # 检查描述是否成功生成或审核通过
|
||||||
logger.warning(f"[注册失败] 未能生成有效描述或审核未通过: {filename}")
|
logger.warning(f"[注册失败] 未能生成有效描述或审核未通过: {filename}")
|
||||||
@@ -1126,9 +1120,9 @@ class EmojiManager:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"[错误] 删除描述生成失败文件时出错: {e!s}")
|
logger.error(f"[错误] 删除描述生成失败文件时出错: {e!s}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
new_emoji.description = description
|
new_emoji.description = description
|
||||||
new_emoji.emotion = emotions
|
new_emoji.emotion = emotions
|
||||||
task.add_done_callback(after_built_description)
|
|
||||||
except Exception as build_desc_error:
|
except Exception as build_desc_error:
|
||||||
logger.error(f"[注册失败] 生成描述/情感时出错 ({filename}): {build_desc_error}")
|
logger.error(f"[注册失败] 生成描述/情感时出错 ({filename}): {build_desc_error}")
|
||||||
# 同样考虑删除文件
|
# 同样考虑删除文件
|
||||||
|
|||||||
Reference in New Issue
Block a user