From eacec9307cf0f3545e347028e65e56135390511f Mon Sep 17 00:00:00 2001 From: Lee-Juntong <2310266421@qq.com> Date: Sat, 10 Oct 2026 18:10:19 +0800 Subject: [PATCH] fix(query): preserve complete text and line breaks --- scripts/common/query.py | 2 +- tests/test_text_preservation.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 tests/test_text_preservation.py diff --git a/scripts/common/query.py b/scripts/common/query.py index 6ddbeb2..4696671 100644 --- a/scripts/common/query.py +++ b/scripts/common/query.py @@ -434,7 +434,7 @@ def _fmt_msg(row: dict) -> dict: "direction": "[我]" if is_me else "[对方]", "type": message.MSG_TYPES.get(type_key, "其他"), "event": None, - "content": content[:500].replace("\n", " ") if is_text else "", + "content": content if is_text else "", "is_text": is_text, "is_system": False, } diff --git a/tests/test_text_preservation.py b/tests/test_text_preservation.py new file mode 100644 index 0000000..1bf27cd --- /dev/null +++ b/tests/test_text_preservation.py @@ -0,0 +1,15 @@ +import pytest + + +@pytest.mark.parametrize('text', [ + '中文段落' * 200 + '\nlast line', + 'x' * 499 + '\n' + 'end', + 'first\n\nsecond\t😀', +]) +def test_query_preserves_full_plain_text(text): + import query + row = {'create_time': 1767225600, 'local_type': 1, 'real_sender_id': 2, + 'message_hex': text.encode('utf-8').hex()} + formatted = query._fmt_msg(row) + assert formatted['is_text'] + assert formatted['content'] == text