4.3 KiB
sidebar_position | description |
---|---|
6 | nonebot.permission 模块 |
nonebot.permission
本模块是 Matcher.permission 的类型定义。
每个 Matcher 拥有一个 Permission ,
其中是 PermissionChecker
的集合,只要有一个 PermissionChecker
检查结果为 True
时就会继续运行。
def USER(*users, perm=None)
-
说明
匹配当前事件属于指定会话。
如果
perm
中仅有User
类型的权限检查函数,则会去除原有检查函数的会话 ID 限制。 -
参数
-
*users
(str) -
perm
(Permission | None): 需要同时满足的权限 -
user
: 会话白名单
-
-
返回
- untyped
class User(users, perm=None)
-
说明: 检查当前事件是否属于指定会话。
-
参数
-
users
(tuple[str, ...]): 会话 ID 元组 -
perm
(Permission | None): 需同时满足的权限
-
classmethod from_event(event, perm=None)
-
说明
从事件中获取会话 ID。
如果
perm
中仅有User
类型的权限检查函数,则会去除原有的会话 ID 限制。 -
参数
-
event
(Event): Event 对象 -
perm
(Permission | None): 需同时满足的权限
-
-
返回
- Self
classmethod from_permission(*users, perm=None)
-
说明
指定会话与权限。
如果
perm
中仅有User
类型的权限检查函数,则会去除原有的会话 ID 限制。 -
参数
-
*users
(str): 会话白名单 -
perm
(Permission | None): 需同时满足的权限
-
-
返回
- Self
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
-
说明: 匹配任意超级用户事件