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 运行前进行检查。
参数
*checkers
(T_PermissionChecker | Dependent[bool]): PermissionChecker
用法
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
说明: 匹配任意超级用户事件