diff options
Diffstat (limited to 'ATRI/exceptions.py')
-rw-r--r-- | ATRI/exceptions.py | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/ATRI/exceptions.py b/ATRI/exceptions.py index 6563e94..31a3a89 100644 --- a/ATRI/exceptions.py +++ b/ATRI/exceptions.py @@ -15,34 +15,35 @@ from nonebot.message import run_postprocessor from .log import logger -ERROR_DIR = Path(".") / "ATRI" / "data" / "errors" +ERROR_DIR = Path('.') / 'ATRI' / 'data' / 'errors' os.makedirs(ERROR_DIR, exist_ok=True) def _save_error(prompt: str, content: str) -> str: - track_id = "".join(sample(string.ascii_letters + string.digits, 8)) + track_id = ''.join(sample(string.ascii_letters + string.digits, 8)) data = { "track_id": track_id, "prompt": prompt, - "time": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), - "content": content, + "time": time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()), + "content": content } - path = ERROR_DIR / f"{track_id}.json" - with open(path, "w", encoding="utf-8") as r: + path = ERROR_DIR / f'{track_id}.json' + with open(path, 'w', encoding='utf-8') as r: r.write(json.dumps(data, indent=4)) return track_id def load_error(track_id: str) -> dict: - path = ERROR_DIR / f"{track_id}.json" + path = ERROR_DIR / f'{track_id}.json' return json.loads(path.read_bytes()) class BaseBotException(BaseException): - prompt: Optional[str] = "ignore" + prompt: Optional[str] = 'ignore' def __init__(self, prompt: Optional[str]) -> None: - self.prompt = prompt or self.__class__.prompt or self.__class__.__name__ + self.prompt = prompt or self.__class__.prompt \ + or self.__class__.__name__ self.track_id = _save_error(self.prompt, format_exc()) super().__init__(self.prompt) @@ -63,8 +64,8 @@ class LoadingError(BaseBotException): prompt = "加载错误" -class RequestTimeOut(BaseBotException): - prompt = "网页/接口请求超时" +class RequestError(BaseBotException): + prompt = "网页/接口请求错误" class GetStatusError(BaseBotException): @@ -80,16 +81,14 @@ class FormatError(BaseBotException): @run_postprocessor # type: ignore -async def _track_error( - matcher: Matcher, - exception: Optional[Exception], - bot: Bot, - event: Event, - state: T_State, -) -> None: +async def _track_error(matcher: Matcher, + exception: Optional[Exception], + bot: Bot, + event: Event, + state: T_State) -> None: if exception is None: return - + try: raise exception except BaseBotException as Error: @@ -106,5 +105,5 @@ async def _track_error( f"触发原因: {prompt}\n" "键入 来杯红茶 以联系维护者" ) - + await bot.send(event, msg) |