from typing import Type from datetime import datetime, timezone from nonebot.adapters import Event from nonebot.matcher import Matcher from nonebot import ( CommandGroup, MatcherGroup, on, on_type, on_regex, on_notice, on_command, on_keyword, on_message, on_request, on_endswith, on_fullmatch, on_metaevent, on_startswith, on_shell_command, ) async def rule() -> bool: return True async def permission() -> bool: return True async def handler(): return expire_time = datetime.now(timezone.utc) priority = 100 state = {"test": "test"} matcher_on = on( "test", rule=rule, permission=permission, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) def matcher_on_factory() -> Type[Matcher]: return on( "test", rule=rule, permission=permission, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) matcher_on_metaevent = on_metaevent( rule=rule, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) matcher_on_message = on_message( rule=rule, permission=permission, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) matcher_on_notice = on_notice( rule=rule, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) matcher_on_request = on_request( rule=rule, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) matcher_on_startswith = on_startswith( "test", rule=rule, permission=permission, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) matcher_on_endswith = on_endswith( "test", rule=rule, permission=permission, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) matcher_on_fullmatch = on_fullmatch( "test", rule=rule, permission=permission, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) matcher_on_keyword = on_keyword( {"test"}, rule=rule, permission=permission, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) matcher_on_command = on_command( "test", rule=rule, permission=permission, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) matcher_on_shell_command = on_shell_command( "test", rule=rule, permission=permission, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) matcher_on_regex = on_regex( "test", rule=rule, permission=permission, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) class TestEvent(Event): ... matcher_on_type = on_type( TestEvent, rule=rule, permission=permission, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) cmd_group = CommandGroup( "test", rule=rule, permission=permission, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) matcher_sub_cmd = cmd_group.command("sub") matcher_sub_shell_cmd = cmd_group.shell_command("sub") matcher_group = MatcherGroup( rule=rule, permission=permission, handlers=[handler], temp=True, expire_time=expire_time, priority=priority, block=True, state=state, ) matcher_group_on = matcher_group.on(type="test") matcher_group_on_metaevent = matcher_group.on_metaevent() matcher_group_on_message = matcher_group.on_message() matcher_group_on_notice = matcher_group.on_notice() matcher_group_on_request = matcher_group.on_request() matcher_group_on_startswith = matcher_group.on_startswith("test") matcher_group_on_endswith = matcher_group.on_endswith("test") matcher_group_on_fullmatch = matcher_group.on_fullmatch("test") matcher_group_on_keyword = matcher_group.on_keyword({"test"}) matcher_group_on_command = matcher_group.on_command("test") matcher_group_on_shell_command = matcher_group.on_shell_command("test") matcher_group_on_regex = matcher_group.on_regex("test") matcher_group_on_type = matcher_group.on_type(TestEvent)