| 25 | |
| 26 | |
| 27 | class FakeMessageSegment(MessageSegment["FakeMessage"]): |
| 28 | @classmethod |
| 29 | @override |
| 30 | def get_message_class(cls): |
| 31 | return FakeMessage |
| 32 | |
| 33 | @override |
| 34 | def __str__(self) -> str: |
| 35 | return self.data["text"] if self.type == "text" else f"[fake:{self.type}]" |
| 36 | |
| 37 | @classmethod |
| 38 | def text(cls, text: str): |
| 39 | return cls("text", {"text": text}) |
| 40 | |
| 41 | @staticmethod |
| 42 | def image(url: str): |
| 43 | return FakeMessageSegment("image", {"url": url}) |
| 44 | |
| 45 | @staticmethod |
| 46 | def nested(content: "FakeMessage"): |
| 47 | return FakeMessageSegment("node", {"content": content}) |
| 48 | |
| 49 | @override |
| 50 | def is_text(self) -> bool: |
| 51 | return self.type == "text" |
| 52 | |
| 53 | |
| 54 | class FakeMessage(Message[FakeMessageSegment]): |
no outgoing calls