summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyomotoi <[email protected]>2022-11-04 08:34:28 +0800
committerKyomotoi <[email protected]>2022-11-04 08:34:28 +0800
commitd81747db96cb7e849a62bd3622356ce471161462 (patch)
treed9d319c5359b2e3aff9888d1116df4028cf31541
parentcca0e9fe6d3a04b258719e92adf7566f47a88bb5 (diff)
downloadATRI-d81747db96cb7e849a62bd3622356ce471161462.tar.gz
ATRI-d81747db96cb7e849a62bd3622356ce471161462.tar.bz2
ATRI-d81747db96cb7e849a62bd3622356ce471161462.zip
🎨 更改 matcher 部分 log 等级
-rw-r--r--ATRI/patch.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/ATRI/patch.py b/ATRI/patch.py
new file mode 100644
index 0000000..ae203de
--- /dev/null
+++ b/ATRI/patch.py
@@ -0,0 +1,60 @@
+from typing import Optional
+from contextlib import AsyncExitStack
+
+from nonebot.log import logger
+from nonebot.adapters import Bot, Event
+from nonebot.typing import T_State, T_DependencyCache
+from nonebot.matcher import (
+ Matcher,
+ current_bot,
+ current_event,
+ current_handler,
+ current_matcher,
+)
+from nonebot.exception import SkippedException, StopPropagation
+
+
+async def simple_run(
+ self: Matcher,
+ bot: Bot,
+ event: Event,
+ state: T_State,
+ stack: Optional[AsyncExitStack] = None,
+ dependency_cache: Optional[T_DependencyCache] = None,
+):
+ logger.debug(
+ f"{self} run with incoming args: "
+ f"bot={bot}, event={event!r}, state={state!r}"
+ )
+ b_t = current_bot.set(bot)
+ e_t = current_event.set(event)
+ m_t = current_matcher.set(self)
+ try:
+ # Refresh preprocess state
+ self.state.update(state)
+
+ while self.handlers:
+ handler = self.handlers.pop(0)
+ current_handler.set(handler)
+ logger.debug(f"Running handler {handler}")
+ try:
+ await handler(
+ matcher=self,
+ bot=bot,
+ event=event,
+ state=self.state,
+ stack=stack,
+ dependency_cache=dependency_cache,
+ )
+ except SkippedException:
+ logger.debug(f"Handler {handler} skipped")
+ except StopPropagation:
+ self.block = True
+ finally:
+ logger.info(f"{self} running complete")
+ current_bot.reset(b_t)
+ current_event.reset(e_t)
+ current_matcher.reset(m_t)
+
+
+Matcher.simple_run = simple_run