@@ -168,21 +168,6 @@ def _serialize_emoji_for_hook(emoji: Optional[MaiEmoji]) -> Optional[Dict[str, A
168168 }
169169
170170
171- def _normalize_string_list (raw_values : Any ) -> List [str ]:
172- """将任意列表值规范化为字符串列表。
173-
174- Args:
175- raw_values: 待规范化的原始值。
176-
177- Returns:
178- List[str]: 去空白后的字符串列表。
179- """
180-
181- if not isinstance (raw_values , list ):
182- return []
183- return [str (item ).strip () for item in raw_values if str (item ).strip ()]
184-
185-
186171def _normalize_emoji_tag_text (raw_values : Any ) -> List [str ]:
187172 """将文本或标签列表转为去重的情绪标签列表。"""
188173 if isinstance (raw_values , str ):
@@ -416,7 +401,7 @@ async def _build_and_cache_emoji_description(
416401 emoji_hash : str ,
417402 emoji_bytes : bytes ,
418403 ) -> Optional [Tuple [str , List [str ]]]:
419- """Build and cache emoji description and emotion labels. """
404+ """构建并缓存表情包描述(返回标签化结果,不再走额外识别流程)。 """
420405 logger .info (f"Start building cached emoji description, hash={ emoji_hash } " )
421406 new_emoji = await self .ensure_emoji_saved (emoji_bytes , emoji_hash = emoji_hash )
422407
@@ -931,43 +916,8 @@ async def build_emoji_description(self, target_emoji: MaiEmoji) -> Tuple[bool, M
931916 return True , target_emoji
932917
933918 async def build_emoji_emotion (self , target_emoji : MaiEmoji ) -> Tuple [bool , MaiEmoji ]:
934- """
935- 构建表情包情感,使用场景标签
936-
937- Args:
938- target_emoji (MaiEmoji): 目标表情包对象
939- Returns:
940- return (Tuple[bool, MaiEmoji]): 返回是否成功构建情感标签,及表情包对象
941- """
942- if not target_emoji .description :
943- logger .error ("[构建情感标签] 表情包描述为空,无法构建情感标签" )
944- return False , target_emoji
945-
946- emotions = _normalize_emoji_tag_text (target_emoji .description )
947- if not emotions :
948- logger .warning (f"[构建情感标签] 表情包标签为空,跳过注册: { target_emoji .file_name } " )
949- return False , target_emoji
950-
951- hook_result = await _get_runtime_manager ().invoke_hook (
952- "emoji.register.after_build_emotion" ,
953- emoji = _serialize_emoji_for_hook (target_emoji ),
954- description = target_emoji .description ,
955- emotions = list (emotions ),
956- )
957- if hook_result .aborted :
958- logger .info (f"[构建情感标签] 表情包情感标签被 Hook 中止注册: { target_emoji .file_name } " )
959- return False , target_emoji
960-
961- raw_emotions = hook_result .kwargs .get ("emotions" )
962- if raw_emotions is not None :
963- emotions = _normalize_emoji_tag_text (raw_emotions )
964- if not emotions :
965- logger .warning (f"[构建情感标签] Hook 返回空情绪标签,拒绝注册: { target_emoji .file_name } " )
966- return False , target_emoji
967-
968- logger .info (f"[构建情感标签] 成功为表情包构建情感标签: { ',' .join (emotions )} " )
969- target_emoji .emotion = emotions
970- return True , target_emoji
919+ """兼容保留:表情包情绪标签已在 build_emoji_description 中一次性构建。"""
920+ return await self .build_emoji_description (target_emoji )
971921
972922 def check_emoji_file_integrity (self ) -> None :
973923 """
0 commit comments