Skip to content

Manager 模块

Hyper.Adapters.OneBotLib.Comm

Message

python
class Message:
    def __init__(self, contents: list = None, *args): ...

    def add(self, content) -> None: ...  # 添加消息段

    async def get(self) -> list: ...  # 获取消息内容,异步

    def get_sync(self) -> list: ...  # 获取消息内容,非异步

Message类的__init__()方法只有content一个参数,其 list 中储存的类型应为消息段。

在 2024 年 8 月 4 日 更新后,您可以将消息段直接作为参数传入。

Message类可以被直接转化为str类型。

Ret

python
import Hyper.Utils.TypeExt


class Ret:
    status: str
    ret_code: int
    data: ...  # 每一个 API 返回的该类型均不同
    echo: str | None

    def fetch(self, echo: str) -> "Ret": ...

Logic.ObjectedDict:

python
class ObjectedDict:
    def __init__(self, content: dict = None): ...

    def __getattr__(self, attr): ...

    def __setattr__(self, attr, value): ...

    def __getitem__(self, item): ...

    def __setitem__(self, key, value): ...

    def __str__(self) -> str: ...

Segments 模块

Hyper.Segments

segment_builder 方法和 SegmentBase

python
class SegmentBase:
    def __init__(self, *args, **kwargs): ...

    def to_json(self) -> dict: ...

    def __str__(self) -> str: return "__not_set__"

允许通过如下方式创建一个新的消息段:

python
class Text(SegmentBase, st="text", su="<text>"):
    text: str

以上示例注册了OneBot标准中的text消息段,"<text>"意味着在被转换为str类型时,结果将为变量text的值。

Segements 类下其余类均为按照 OneBot v11 标准的消息段。


Events 模块

Hyper.Events

EventManager 类和 em

python
class EventManager:
    def reg(self, type_of: str, str_eql: str) -> callable: ...


em = EventManager()

em已经将 EventManager 对象化,不要再次建立这一对象

reg 方法用于注册新事件,以下是一个示例:

python
class Event: ...


class NoticeEvent(Event): ...


@em.reg("notice", "group_upload")
class GroupFileUploadEvent(NoticeEvent):
    def __init__(self, data: dict):
        super().__init__(data)
        self.file = data.get("file")

        self.print_log()

    def print_log(self) -> None: ...

如上代码注册了 OneBot v11 标准规定的 group_upload 事件,post_type 为其他值的事件的操作方法亦如此。

Event 类及其子类

python
class Event: ...


class MessageEvent(Event): ...


class NoticeEvent(Event): ...


class RequestEvent(Event): ...

类的定义基本遵照 OneBot v11 标准,具体的事件分别继承对应的父类。

gen_message 方法

python
def gen_message(data: dict) -> Comm.Message: ...

该方法接收由 OneBot 实现上报的 array 格式的消息并将其转换为 HypeR Bot 的标准消息类。

Events 类下其余类均为按照 OneBot v11 标准的事件类型,类名可能有所差异


Listener 模块

Hyper.ListenerHyper.Adapters.OneBot

Actions

python
class Actions:
    ...

Actions 类下为 遵照 OneBot v11 标准定义的 API。若您需要的 API 没有被定义,您可以调用自定义 API :

python
echo = actions.custom.capi(
    arg1=...,
    arg2=...
)
result = Comm.Ret.fetch(echo)

以上代码将请求 capi 这一自定义 API。

reg 方法

这是一个装饰器

python
def reg(func: callable): ...

reg 方法将 func 注册为 HypeR Bot 的 handler

python
@Listener.reg
async def handler(event: Events.Event, actions: Listener.Actions) -> None: ...

除非您通过 pip 等包管理器安装 HypeR Bot 并准备制作一个轻量的个人项目,否则您不应当使用该方法。

run 方法

python
def run(): ...

在完成 handler 的注册后运行该方法将启动 HypeR Bot。您可以通过 Ctrl + C 结束 HypeR Bot。

同样,除非您通过 pip 等包管理器安装 HypeR Bot 并准备制作一个轻量的个人项目,否则您不应当使用该方法。


ModuleClass 模块

Hyper.ModuleClass

ModuleInfo

python
@dataclasses.dataclass
class ModuleInfo:
    is_hidden: bool = True
    module_name: str = "None"
    author: str = "None"
    version: str = "0.0"
    desc: str = "None"
    helps: str = "None"

Module

该类为 HypeR Bot 各消息处理模块的父类

python
class Module:
    def __init__(self, actions, event): ...

    async def handle(self): ...

    @staticmethod
    def info() -> ModuleInfo: ...

其他

Logic.py

python
class Cacher:
    def __init__(self, cache_time: int = 5): ...

    def cache(self, func): ...  # 装饰器

    def cache_async(self, func): ...  # 装饰器


class ErrorHandler:
    def __init__(self, level=Logger.levels.ERROR, retries: int = 0): ...

    def handle(self, func): ...  # 装饰器

    def handle_async(self, func): ...  # 装饰器

    def auto_retry(self, func): ...  # 装饰器

    def auto_retry_async(self, func): ...  # 装饰器


...

Logger.py

python
class Levels: ...


levels = Levels()


class Logger:
    def __init__(self): ...

    def set_level(self, level: str): ...

    def log(self, message: str, level: str = levels.INFO): ...