diff options
| author | 2023-12-16 20:43:56 +0800 | |
|---|---|---|
| committer | 2023-12-16 20:43:56 +0800 | |
| commit | 5763d8e4706efca2d238b63d124d4d0064f990ad (patch) | |
| tree | 4c273efe44d6d86ce89106ad245c801bb3d10a83 | |
| parent | 0ec5261b93df89feefbaed3482e5da577418241f (diff) | |
| download | infini-5763d8e4706efca2d238b63d124d4d0064f990ad.tar.gz infini-5763d8e4706efca2d238b63d124d4d0064f990ad.zip | |
:recycle: 使用直接事件作为返回方案
| -rw-r--r-- | src/infini/event.py | 11 | ||||
| -rw-r--r-- | src/infini/handler.py | 28 | ||||
| -rw-r--r-- | src/infini/matcher.py | 11 | ||||
| -rw-r--r-- | src/infini/register.py | 5 |
4 files changed, 28 insertions, 27 deletions
diff --git a/src/infini/event.py b/src/infini/event.py index d33a9c3c..1f04afeb 100644 --- a/src/infini/event.py +++ b/src/infini/event.py @@ -1,8 +1,12 @@ from abc import ABCMeta -from .register import Events from .typing import Dict, Any -__all__ = ["InfiniEvent", "MessageEvent", "WorkflowEvent", "MatcherEvent", "events"] +__all__ = [ + "InfiniEvent", + "MessageEvent", + "WorkflowEvent", + "MatcherEvent", +] class InfiniEvent(metaclass=ABCMeta): @@ -83,6 +87,3 @@ class MatcherEvent(InfiniEvent): def get_plain_text(self): return self.string - - -events = Events() diff --git a/src/infini/handler.py b/src/infini/handler.py index 650762c6..8444d3b6 100644 --- a/src/infini/handler.py +++ b/src/infini/handler.py @@ -1,21 +1,20 @@ from abc import ABCMeta, abstractmethod -from .register import Handlers -from .event import MatcherEvent +from .event import MatcherEvent, InfiniEvent -__all__ = ["Result", "Handler"] +__all__ = ["Handler"] -class Result: - """规则包运行结果""" +# class Result: +# """规则包运行结果""" - event: str - status: bool - kwargs: dict = {} +# event: str +# status: bool +# kwargs: dict = {} - def __init__(self, event: str, status: bool, **kwargs) -> None: - self.event = event - self.status = status - self.kwargs = kwargs +# def __init__(self, event: str, status: bool, **kwargs) -> None: +# self.event = event +# self.status = status +# self.kwargs = kwargs class Handler(metaclass=ABCMeta): @@ -28,8 +27,5 @@ class Handler(metaclass=ABCMeta): # handlers.regist(cls.name, cls()) @abstractmethod - def process(self, event: MatcherEvent) -> Result: + def process(self, event: MatcherEvent) -> InfiniEvent: raise NotImplementedError - - -handlers = Handlers() diff --git a/src/infini/matcher.py b/src/infini/matcher.py index 309081ac..94bb6645 100644 --- a/src/infini/matcher.py +++ b/src/infini/matcher.py @@ -1,6 +1,6 @@ -from .register import Events, Handlers -from .event import MatcherEvent, events -from .handler import Handler, handlers +from .register import Events, Handlers, events, handlers +from .event import MatcherEvent +from .handler import Handler from .exceptions import UnknownMatcherEvent @@ -23,9 +23,10 @@ class Matcher: raise UnknownMatcherEvent(f"未知的规则包: {name}") def run(self, event: MatcherEvent) -> str: - result = self.match(event.name).process(event) + callback_event = self.match(event.name).process(event) return self.events.process( - result.event, **result.kwargs if result.kwargs else event.kwargs + callback_event.name, + **callback_event.kwargs if callback_event.kwargs else callback_event.kwargs, ) diff --git a/src/infini/register.py b/src/infini/register.py index 293b212e..40d929f3 100644 --- a/src/infini/register.py +++ b/src/infini/register.py @@ -2,7 +2,6 @@ from infini.exceptions import UnknownMessageEvent from infini.handler import Handler from infini.typing import Dict - import re @@ -47,3 +46,7 @@ class Handlers: def match(self, name: str) -> Handler | None: return self._handlers.get(name.lower()) + + +handlers = Handlers() +events = Events() |
