From 0fbca79c4a616fcaa6bc824a63a8b645627215e3 Mon Sep 17 00:00:00 2001 From: Ambylanc <3542928737@qq.com> Date: Wed, 24 Sep 2025 11:41:29 +0800 Subject: [PATCH 1/2] feat!: remove cqcode --- nonebot/adapters/onebot/v11/message.py | 33 ++------------------------ 1 file changed, 2 insertions(+), 31 deletions(-) diff --git a/nonebot/adapters/onebot/v11/message.py b/nonebot/adapters/onebot/v11/message.py index 8639d961..40284660 100644 --- a/nonebot/adapters/onebot/v11/message.py +++ b/nonebot/adapters/onebot/v11/message.py @@ -38,7 +38,7 @@ def __str__(self) -> str: params = ",".join( f"{k}={escape(str(v))}" for k, v in self.data.items() if v is not None ) - return f"[CQ:{self.type}{',' if params else ''}{params}]" + return f"[{self.type}{':' if params else ''}{params}]" def to_rich_text(self, truncate: Optional[int] = 70) -> str: if self.is_text(): @@ -297,36 +297,7 @@ def __iadd__( @staticmethod @override def _construct(msg: str) -> Iterable[MessageSegment]: - def _iter_message(msg: str) -> Iterable[tuple[str, str]]: - text_begin = 0 - for cqcode in re.finditer( - r"\[CQ:(?P[a-zA-Z0-9-_.]+)" - r"(?P" - r"(?:,[a-zA-Z0-9-_.]+=[^,\]]*)*" - r"),?\]", - msg, - ): - yield "text", msg[text_begin : cqcode.pos + cqcode.start()] - text_begin = cqcode.pos + cqcode.end() - yield cqcode.group("type"), cqcode.group("params").lstrip(",") - yield "text", msg[text_begin:] - - for type_, data in _iter_message(msg): - if type_ == "text": - if data: - # only yield non-empty text segment - yield MessageSegment(type_, {"text": unescape(data)}) - else: - data = { - k: unescape(v) - for k, v in ( - x.split("=", maxsplit=1) - for x in filter( - lambda x: x, (x.lstrip() for x in data.split(",")) - ) - ) - } - yield MessageSegment(type_, data) + yield MessageSegment("text", {"text": unescape(msg)}) @override def extract_plain_text(self) -> str: From db41533b14d17f0180bf1af5ef71835c51ab3e3d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 24 Sep 2025 03:45:34 +0000 Subject: [PATCH 2/2] :rotating_light: auto fix by pre-commit hooks --- nonebot/adapters/onebot/v11/message.py | 1 - 1 file changed, 1 deletion(-) diff --git a/nonebot/adapters/onebot/v11/message.py b/nonebot/adapters/onebot/v11/message.py index 40284660..4b79198f 100644 --- a/nonebot/adapters/onebot/v11/message.py +++ b/nonebot/adapters/onebot/v11/message.py @@ -5,7 +5,6 @@ description: onebot.v11.message 模块 """ -import re from io import BytesIO from pathlib import Path from functools import partial