跳转至

message

本模块提供 Ariadne 消息相关部件.

Quote 🔗

Bases: AriadneBaseModel

表示消息中回复其他消息/用户的部分, 通常包含一个完整的消息链(origin 属性)

Source code in graia/ariadne/message/__init__.py
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
@internal_cls()
class Quote(AriadneBaseModel):
    """表示消息中回复其他消息/用户的部分, 通常包含一个完整的消息链(`origin` 属性)"""

    type = "Quote"

    id: int
    """引用的消息 ID"""

    group_id: int = Field(..., alias="groupId")
    """引用消息所在群号 (好友消息为 0)"""

    sender_id: int = Field(..., alias="senderId")
    """发送者 QQ 号"""

    target_id: int = Field(..., alias="targetId")
    """原消息的接收者QQ号 (或群号) """

    origin: "MessageChain"
    """原来的消息链"""

    @validator("origin", pre=True, allow_reuse=True)
    def _(cls, v):
        from .chain import MessageChain

        return MessageChain(v)  # no need to parse objects, they are universal!

    def as_persistent_string(self) -> str:
        return ""

group_id class-attribute 🔗

group_id: int = Field(Ellipsis, alias='groupId')

引用消息所在群号 (好友消息为 0)

id class-attribute 🔗

id: int

引用的消息 ID

origin class-attribute 🔗

origin: MessageChain

原来的消息链

sender_id class-attribute 🔗

sender_id: int = Field(Ellipsis, alias='senderId')

发送者 QQ 号

target_id class-attribute 🔗

target_id: int = Field(Ellipsis, alias='targetId')

原消息的接收者QQ号 (或群号)

Source 🔗

Bases: AriadneBaseModel

表示消息在一个特定聊天区域内的唯一标识

Source code in graia/ariadne/message/__init__.py
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
@internal_cls()
class Source(AriadneBaseModel):
    """表示消息在一个特定聊天区域内的唯一标识"""

    type = "Source"

    id: int
    """消息 ID"""

    time: datetime
    """发送时间"""

    def __int__(self):
        return self.id

    async def fetch_original(self) -> "MessageChain":
        """尝试从本标记恢复原本的消息链, 有可能失败.

        Returns:
            MessageChain: 原来的消息链.
        """
        from ..app import Ariadne

        return (await Ariadne.current().get_message_from_id(self.id)).message_chain

id class-attribute 🔗

id: int

消息 ID

time class-attribute 🔗

time: datetime

发送时间

fetch_original async 🔗

fetch_original() -> MessageChain

尝试从本标记恢复原本的消息链, 有可能失败.

Returns:

Source code in graia/ariadne/message/__init__.py
30
31
32
33
34
35
36
37
38
async def fetch_original(self) -> "MessageChain":
    """尝试从本标记恢复原本的消息链, 有可能失败.

    Returns:
        MessageChain: 原来的消息链.
    """
    from ..app import Ariadne

    return (await Ariadne.current().get_message_from_id(self.id)).message_chain