From f675eac8edb4e3703658a0c9b05557d124646f8e Mon Sep 17 00:00:00 2001
From: KimigaiiWuyi <444835641@qq.com>
Date: Thu, 23 Jan 2025 11:36:04 +0800
Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8Dlog=E6=8A=A5?=
=?UTF-8?q?=E9=94=99=E5=92=8C=E6=89=93=E5=8D=B0=E5=86=B7=E5=8D=B4=E6=97=B6?=
=?UTF-8?q?=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
gsuid_core/logger.py | 33 +++++++++++++++++++++++++--------
gsuid_core/utils/cooldown.py | 4 +++-
2 files changed, 28 insertions(+), 9 deletions(-)
diff --git a/gsuid_core/logger.py b/gsuid_core/logger.py
index 8b74f9b..cc269b6 100644
--- a/gsuid_core/logger.py
+++ b/gsuid_core/logger.py
@@ -5,7 +5,7 @@ import logging
import datetime
from pathlib import Path
from functools import wraps
-from typing import TYPE_CHECKING, Dict, List
+from typing import TYPE_CHECKING, Dict, List, Optional
import loguru
import aiofiles
@@ -47,13 +47,22 @@ class LoguruHandler(logging.Handler): # pragma: no cover
)
+def replace_tag(text: Optional[str]):
+ if text is None:
+ return ''
+ return text.replace('<', '\<') # type: ignore # noqa: W605
+
+
def format_event(record):
if 'trigger' in record['extra']:
_tg = record['extra']['trigger']
+ _tg0 = replace_tag(_tg[0])
+ _tg1 = replace_tag(_tg[1])
+ _tg2 = replace_tag(_tg[2])
message = (
- f'[Trigger] 消息 「{_tg[0]}」 触发'
- f' 「{_tg[1]}」 类型触发器, 关键词:'
- f' 「{_tg[2]}」 '
+ f'[Trigger] 消息 「{_tg0}」 触发'
+ f' 「{_tg1}」 类型触发器, 关键词:'
+ f' 「{_tg2}」 '
)
message = message.replace('{', '{{').replace('}', '}}')
elif record['extra']:
@@ -69,17 +78,24 @@ def format_event(record):
file = event.file
content = event.content
+ raw_text = replace_tag(event.raw_text)
+ file_name = replace_tag(event.file_name)
+ command = replace_tag(event.command)
+ text = replace_tag(event.text)
+ content = replace_tag(f'{content}')
+ regex_dict = replace_tag(f'{event.regex_dict}')
+
if 'event' in record['extra']:
message = (
f'[Raw] '
- f'raw_text={event.raw_text}, '
+ f'raw_text={raw_text}, '
f'image={event.image}, '
f'at={event.at}, '
f'image_list={event.image}, '
f'at_list={event.at_list}, '
f'is_tome={event.is_tome}, '
f'reply={event.reply}, '
- f'file_name={event.file_name}, '
+ f'file_name={file_name}, '
f'file_type={event.file_type}, '
f'file={file}'
f' | [Receive] '
@@ -95,8 +111,9 @@ def format_event(record):
else:
message = (
f'[Command] '
- f'command={event.command}, '
- f'text={event.text}'
+ f'command={command}, '
+ f'text={text}, '
+ f'regex_dict={regex_dict}'
)
message = message.replace('{', '{{').replace('}', '}}')
else:
diff --git a/gsuid_core/utils/cooldown.py b/gsuid_core/utils/cooldown.py
index ba4b4cf..f6864b4 100644
--- a/gsuid_core/utils/cooldown.py
+++ b/gsuid_core/utils/cooldown.py
@@ -1,5 +1,7 @@
import time
+from gsuid_core.logger import logger
+
class CooldownTracker:
def __init__(self):
@@ -8,7 +10,7 @@ class CooldownTracker:
def is_on_cooldown(self, user_id: str, cooldown: float):
now = time.time()
last_time = self.timestamps.get(user_id, 0)
- print(self.timestamps)
+ logger.trace(self.timestamps)
if now - last_time >= cooldown:
self.timestamps[user_id] = now
return False