import{_ as i,o as a,c as e,a7 as t}from"./chunks/framework._avq4Ty7.js";const u=JSON.parse('{"title":"liteyuki.session.rule","description":"","frontmatter":{"title":"liteyuki.session.rule"},"headers":[],"relativePath":"dev/api/session/rule.md","filePath":"zh/dev/api/session/rule.md","lastUpdated":null}'),n={name:"dev/api/session/rule.md"};function l(h,s,r,p,k,d){return a(),e("div",null,s[0]||(s[0]=[t('
liteyuki.session.rule
Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved
@Time : 2024/8/19 下午10:55 @Author : snowykami @Email : snowykami@outlook.com @File : rule.py @Software: PyCharm
RuleHandlerFunc
说明: 规则函数签名
类型: TypeAlias
默认值: Callable[[MessageEvent], Coroutine[None, None, bool]]
Rule
__init__(self, handler: RuleHandlerFunc)
def __init__(self, handler: RuleHandlerFunc):\n self.handler = handler
self | other: Rule => Rule
def __or__(self, other: 'Rule') -> 'Rule':\n\n async def combined_handler(event: MessageEvent) -> bool:\n return await self.handler(event) or await other.handler(event)\n return Rule(combined_handler)
self & other: Rule => Rule
def __and__(self, other: 'Rule') -> 'Rule':\n\n async def combined_handler(event: MessageEvent) -> bool:\n return await self.handler(event) and await other.handler(event)\n return Rule(combined_handler)
self () event: MessageEvent => bool
async def __call__(self, event: MessageEvent) -> bool:\n if self.handler is None:\n return True\n return await self.handler(event)
@Rule
empty_rule(event: MessageEvent) -> bool
@Rule\nasync def empty_rule(event: MessageEvent) -> bool:\n return True
@Rule
is_su_rule(event: MessageEvent) -> bool
@Rule\nasync def is_su_rule(event: MessageEvent) -> bool:\n return str(event.user_id) in _superusers