From c1f69d65bb8b8603c75d1b0b86c0f96c62ac342f Mon Sep 17 00:00:00 2001 From: magisk317 Date: Sun, 26 Oct 2025 10:55:22 +0800 Subject: [PATCH] Fix expression learner text fallback --- src/chat/utils/chat_message_builder.py | 4 ++-- src/express/expression_learner.py | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/chat/utils/chat_message_builder.py b/src/chat/utils/chat_message_builder.py index 8915e810..22d9e22d 100644 --- a/src/chat/utils/chat_message_builder.py +++ b/src/chat/utils/chat_message_builder.py @@ -983,8 +983,8 @@ async def build_bare_messages(messages: List[DatabaseMessages]) -> str: output_lines = [] for msg in messages: - # 获取纯文本内容 - content = msg.processed_plain_text or "" + # 获取纯文本内容,优先使用processed_plain_text,回退到display_message + content = msg.processed_plain_text or getattr(msg, "display_message", None) or "" # 处理图片ID pic_pattern = r"\[picid:[^\]]+\]" diff --git a/src/express/expression_learner.py b/src/express/expression_learner.py index 4d2894fb..ff7f8874 100644 --- a/src/express/expression_learner.py +++ b/src/express/expression_learner.py @@ -438,7 +438,12 @@ class ExpressionLearner: continue prev_original_idx = bare_lines[pos - 1][0] - up_content = filter_message_content(random_msg[prev_original_idx].processed_plain_text or "") + source_content = ( + random_msg[prev_original_idx].processed_plain_text + or getattr(random_msg[prev_original_idx], "display_message", None) + or "" + ) + up_content = filter_message_content(source_content) if not up_content: # 上一句为空,跳过该表达 continue @@ -493,8 +498,8 @@ class ExpressionLearner: bare_lines: List[Tuple[int, str]] = [] for idx, msg in enumerate(messages): - content = msg.processed_plain_text or "" - content = filter_message_content(content) + raw_content = msg.processed_plain_text or getattr(msg, "display_message", None) or "" + content = filter_message_content(raw_content) # 即使content为空也要记录,防止错位 bare_lines.append((idx, content))