4.3 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	sidebar_position, description
| sidebar_position | description | 
|---|---|
| 6 | nonebot.permission 模块 | 
nonebot.permission
本模块是 Matcher.permission 的类型定义。
每个事件响应器
拥有一个 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)
- 
说明: 检查是否满足某个权限。
 - 
参数
- 
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
 - 
说明: 匹配任意超级用户事件