Closed RF-Tar-Railt closed 10 months ago
from nonebot.adapters.kaiheila.message import MessageSegment msg = "/command " + MessageSegment.KMarkdown("(met)123456(met)12345678")
这样会在 Message.reduce 报错:
Message.reduce
self = [MessageSegment(type='kmarkdown', data={'content': '/command '}), MessageSegment(type='kmarkdown', data={'content': '(met)123456(met)12345678', 'raw_content': ''})] def reduce(self) -> None: """合并消息内连续的纯文本段和 KMarkdown 段。""" index = 1 while index < len(self): prev = self[index - 1] cur = self[index] if prev.type == "text" and cur.type == "text": self[index - 1] = MessageSegment(prev.type, { "content": prev.data["content"] + cur.data["content"] }) del self[index] elif prev.type == "kmarkdown" and cur.type == "kmarkdown": self[index - 1] = MessageSegment(prev.type, { "content": prev.data["content"] + cur.data["content"], > "raw_content": prev.data["raw_content"] + cur.data["raw_content"], }) E KeyError: 'raw_content' .venv\lib\site-packages\nonebot\adapters\kaiheila\message.py:223: KeyError
MessageSegment:
@overrides(BaseMessageSegment) def __add__(self, other: Union[str, "MessageSegment", Iterable["MessageSegment"]]) -> "Message": return Message(self.conduct(other)) @overrides(BaseMessageSegment) def __radd__(self, other: Union[str, "MessageSegment", Iterable["MessageSegment"]]) -> "Message": if isinstance(other, str): other = MessageSegment(self.type, {"content": other}) return Message(other.conduct(self))
我无法理解你这么写的用意是什么
看起来只是单纯的写错了,我改一下
这样会在
Message.reduce
报错:原因
MessageSegment:
我无法理解你这么写的用意是什么