From 3c509e39213376e7f09565cce4668fb5b44a6590 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Thu, 14 Dec 2023 17:38:42 +0800 Subject: :sparkles: 新增参数传递 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/infini/consts/templates.py | 15 +++++++-------- src/infini/handler.py | 2 +- src/infini/matcher.py | 7 ++----- 3 files changed, 10 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/infini/consts/templates.py b/src/infini/consts/templates.py index 10ec12b4..c3b979bd 100644 --- a/src/infini/consts/templates.py +++ b/src/infini/consts/templates.py @@ -1,16 +1,15 @@ RULE = """from infini import Handler, Result +__handlers__ = ["HandlerRule"] -class HandlerRule(Handler): - \"\"\"自设规则包\"\"\" - name = "MyRule" - priority: int = 0 +class HandlerRule(Handler): + \"\"\"自设业务函数\"\"\" - def __init__(self) -> None: - \"\"\"初始化你的规则包\"\"\" + name = "MyRule" # 规则包名 + priority: int = 0 # 规则包权重 - def process(self) -> Result: + def process(self, **kwargs) -> Result: \"\"\"声明规则包检定方式\"\"\" return Result("event1", True) """ @@ -28,6 +27,6 @@ class MyEvent(MessageEvent): TEST = """from infini.matcher import matcher, MatcherEvent def test(): - event = MatcherEvent("event1") + event = MatcherEvent("MyRule") print(matcher.run(event)) """ diff --git a/src/infini/handler.py b/src/infini/handler.py index 922023e7..1edef9fa 100644 --- a/src/infini/handler.py +++ b/src/infini/handler.py @@ -34,7 +34,7 @@ class Handler: handlers.regist(cls.name, cls()) @abstractmethod - def process(self) -> Result: + def process(self, **kwargs) -> Result: raise NotImplementedError diff --git a/src/infini/matcher.py b/src/infini/matcher.py index 078a39e8..1a6bfe45 100644 --- a/src/infini/matcher.py +++ b/src/infini/matcher.py @@ -1,8 +1,6 @@ from .event import Events, events -from .handler import Handlers, Handler, Result, handlers +from .handler import Handlers, Handler, handlers from .exceptions import UnknownMatcherEvent -from .typing import Callable -from .logging import logger class MatcherEvent: @@ -38,8 +36,7 @@ class Matcher: raise UnknownMatcherEvent(f"未知的规则包: {name}") def run(self, event: MatcherEvent) -> str: - logger.debug(f"开始处理事件: {event.name}...") - result = self.match(event.name).process() + result = self.match(event.name).process(**event.kwargs) return self.events.process(result.event, **event.kwargs) -- cgit v1.2.3-70-g09d2