1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
from io import BytesIO
from pathlib import Path
from typing import Optional, Union
from nonebot.adapters.onebot.v11.message import Message, MessageSegment
class MessageBuilder(Message):
def at(self, user_id: Union[int, str]) -> "MessageBuilder":
self.append(MessageSegment.at(user_id))
return self
def face(self, id_: int) -> "MessageBuilder":
self.append(MessageSegment.face(id_))
return self
def image(
self,
file: Union[str, bytes, BytesIO, Path],
type_: Optional[str] = None,
cache: bool = True,
proxy: bool = True,
timeout: Optional[int] = None,
) -> "MessageBuilder":
self.append(MessageSegment.image(file, type_, cache, proxy, timeout))
return self
def reply(self, id_: int) -> "MessageBuilder":
self.append(MessageSegment.reply(id_))
return self
def text(self, text: str) -> "MessageBuilder":
if self[-1].type == "text":
text = "\n" + text
self.append(MessageSegment.text(text))
return self
def done(self) -> str:
return str().join(map(str, self))
|