Version: Next

nonebot.permission

本模块是 Matcher.permission 的类型定义。

每个 Matcher 拥有一个 Permission , 其中是 PermissionChecker 的集合,只要有一个 PermissionChecker 检查结果为 True 时就会继续运行。

def USER(*users, perm=None)

  • 说明: 匹配当前事件属于指定会话

  • 参数

    • *users (str)

    • perm (Permission | None): 需要同时满足的权限

    • user: 会话白名单

  • 返回

    • untyped

class User(users, perm=None)

  • 说明: 检查当前事件是否属于指定会话

  • 参数

    • users (tuple[str, ...]): 会话 ID 元组

    • perm (Permission | None): 需同时满足的权限

class Permission(*checkers)

  • 说明

    权限类。

    当事件传递时,在 Matcher 运行前进行检查。

  • 参数

  • 用法

    Permission(async_function) | sync_function
    # 等价于
    Permission(async_function, sync_function)

instance-var checkers

  • 类型: set[Dependent[bool]]

  • 说明: 存储 PermissionChecker

async method __call__(bot, event, stack=None, dependency_cache=None) {#Permission-call}

  • 说明: 检查是否满足某个权限

  • 参数

    • bot (Bot): Bot 对象

    • event (Event): Event 对象

    • stack (AsyncExitStack | None): 异步上下文栈

    • dependency_cache (T_DependencyCache | None): 依赖缓存

  • 返回

    • bool

class Message(<auto>)

  • 说明: 检查是否为消息事件

  • 参数

    auto

class Notice(<auto>)

  • 说明: 检查是否为通知事件

  • 参数

    auto

class Request(<auto>)

  • 说明: 检查是否为请求事件

  • 参数

    auto

class MetaEvent(<auto>)

  • 说明: 检查是否为元事件

  • 参数

    auto

var MESSAGE

  • 类型: Permission

  • 说明

    匹配任意 message 类型事件

    仅在需要同时捕获不同类型事件时使用,优先使用 message type 的 Matcher。

var NOTICE

  • 类型: Permission

  • 说明

    匹配任意 notice 类型事件

    仅在需要同时捕获不同类型事件时使用,优先使用 notice type 的 Matcher。

var REQUEST

  • 类型: Permission

  • 说明

    匹配任意 request 类型事件

    仅在需要同时捕获不同类型事件时使用,优先使用 request type 的 Matcher。

var METAEVENT

  • 类型: Permission

  • 说明

    匹配任意 meta_event 类型事件

    仅在需要同时捕获不同类型事件时使用,优先使用 meta_event type 的 Matcher。

class SuperUser(<auto>)

  • 说明: 检查当前事件是否是消息事件且属于超级管理员

  • 参数

    auto

var SUPERUSER

  • 类型: Permission

  • 说明: 匹配任意超级用户事件