跳转至

types

OneBot 实现的类型定义。

ActionResponse

Bases: Struct

动作响应。

Source code in src/pylibob/types.py
class ActionResponse(Struct, kw_only=True):
    """动作响应。"""

    status: Literal["ok", "failed"]
    retcode: int
    data: Any = None
    message: str | None = None
    echo: str | None = None

Bot dataclass

OneBot 机器人。

extra 中定义的字段将与 platform 结合成扩展字段。

Source code in src/pylibob/types.py
@dataclass
class Bot:
    """OneBot 机器人。

    `extra` 中定义的字段将与 `platform` 结合成扩展字段。
    """

    platform: str
    user_id: str
    online: bool
    extra: dict[str, Any] | None = None

    def __hash__(self) -> int:
        return hash((self.platform, self.user_id))

    def dict_for_status(self) -> dict[str, Any]:
        """转换为机器人状态字典。

        Returns:
            机器人状态字典
        """
        # sourcery skip: dict-assign-update-to-union
        dic = {
            "self": {
                "platform": self.platform,
                "user_id": self.user_id,
            },
            "online": self.online,
        }
        if self.extra is not None:
            dic.update(
                {f"{self.platform}.{k}": v for k, v in self.extra.items()},
            )
        return dic

    def dict_for_self(self) -> BotSelf:
        """转换为机器人自身标识字典。

        Returns:
            机器人自身标识字典
        """
        return {
            "platform": self.platform,
            "user_id": self.user_id,
        }

dict_for_self()

转换为机器人自身标识字典。

Returns:

Type Description
BotSelf

机器人自身标识字典

Source code in src/pylibob/types.py
def dict_for_self(self) -> BotSelf:
    """转换为机器人自身标识字典。

    Returns:
        机器人自身标识字典
    """
    return {
        "platform": self.platform,
        "user_id": self.user_id,
    }

dict_for_status()

转换为机器人状态字典。

Returns:

Type Description
dict[str, Any]

机器人状态字典

Source code in src/pylibob/types.py
def dict_for_status(self) -> dict[str, Any]:
    """转换为机器人状态字典。

    Returns:
        机器人状态字典
    """
    # sourcery skip: dict-assign-update-to-union
    dic = {
        "self": {
            "platform": self.platform,
            "user_id": self.user_id,
        },
        "online": self.online,
    }
    if self.extra is not None:
        dic.update(
            {f"{self.platform}.{k}": v for k, v in self.extra.items()},
        )
    return dic

BotSelf

Bases: TypedDict

机器人自身标识类型 self

Source code in src/pylibob/types.py
class BotSelf(TypedDict):
    """机器人自身标识类型 `self`"""

    platform: str
    user_id: str

ContentType

Bases: str, Enum

消息内容类型。

Source code in src/pylibob/types.py
class ContentType(str, Enum):
    """消息内容类型。"""

    JSON = "application/json"
    MSGPACK = "application/msgpack"

FailedActionResponse

Bases: ActionResponse

失败的动作响应。

Source code in src/pylibob/types.py
class FailedActionResponse(ActionResponse, kw_only=True):
    """失败的动作响应。"""

    status: Literal["failed"] = "failed"

Status

Bases: TypedDict

OneBot 实现的状态。

Source code in src/pylibob/types.py
class Status(TypedDict):
    """OneBot 实现的状态。"""

    good: bool
    bots: list[dict[str, Any]]