🐛 修复log报错和打印冷却时间

This commit is contained in:
KimigaiiWuyi 2025-01-23 11:36:04 +08:00
parent cefa14c3bf
commit f675eac8ed
2 changed files with 28 additions and 9 deletions

View File

@ -5,7 +5,7 @@ import logging
import datetime import datetime
from pathlib import Path from pathlib import Path
from functools import wraps from functools import wraps
from typing import TYPE_CHECKING, Dict, List from typing import TYPE_CHECKING, Dict, List, Optional
import loguru import loguru
import aiofiles 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): def format_event(record):
if 'trigger' in record['extra']: if 'trigger' in record['extra']:
_tg = record['extra']['trigger'] _tg = record['extra']['trigger']
_tg0 = replace_tag(_tg[0])
_tg1 = replace_tag(_tg[1])
_tg2 = replace_tag(_tg[2])
message = ( message = (
f'<m><b>[Trigger]</b></m> 消息 「{_tg[0]}」 触发' f'<m><b>[Trigger]</b></m> 消息 「{_tg0}」 触发'
f'{_tg[1]}」 类型触发器, 关键词:' f'{_tg1}」 类型触发器, 关键词:'
f'{_tg[2]}' f'{_tg2}'
) )
message = message.replace('{', '{{').replace('}', '}}') message = message.replace('{', '{{').replace('}', '}}')
elif record['extra']: elif record['extra']:
@ -69,17 +78,24 @@ def format_event(record):
file = event.file file = event.file
content = event.content 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']: if 'event' in record['extra']:
message = ( message = (
f'<c><b>[Raw]</b></c> ' f'<c><b>[Raw]</b></c> '
f'raw_text={event.raw_text}, ' f'raw_text={raw_text}, '
f'image={event.image}, ' f'image={event.image}, '
f'at={event.at}, ' f'at={event.at}, '
f'image_list={event.image}, ' f'image_list={event.image}, '
f'at_list={event.at_list}, ' f'at_list={event.at_list}, '
f'is_tome={event.is_tome}, ' f'is_tome={event.is_tome}, '
f'reply={event.reply}, ' f'reply={event.reply}, '
f'file_name={event.file_name}, ' f'file_name={file_name}, '
f'file_type={event.file_type}, ' f'file_type={event.file_type}, '
f'file={file}' f'file={file}'
f' | <m><b>[Receive]</b></m> ' f' | <m><b>[Receive]</b></m> '
@ -95,8 +111,9 @@ def format_event(record):
else: else:
message = ( message = (
f'<m><b>[Command]</b></m> ' f'<m><b>[Command]</b></m> '
f'command={event.command}, ' f'command={command}, '
f'text={event.text}' f'text={text}, '
f'regex_dict={regex_dict}'
) )
message = message.replace('{', '{{').replace('}', '}}') message = message.replace('{', '{{').replace('}', '}}')
else: else:

View File

@ -1,5 +1,7 @@
import time import time
from gsuid_core.logger import logger
class CooldownTracker: class CooldownTracker:
def __init__(self): def __init__(self):
@ -8,7 +10,7 @@ class CooldownTracker:
def is_on_cooldown(self, user_id: str, cooldown: float): def is_on_cooldown(self, user_id: str, cooldown: float):
now = time.time() now = time.time()
last_time = self.timestamps.get(user_id, 0) last_time = self.timestamps.get(user_id, 0)
print(self.timestamps) logger.trace(self.timestamps)
if now - last_time >= cooldown: if now - last_time >= cooldown:
self.timestamps[user_id] = now self.timestamps[user_id] = now
return False return False