summaryrefslogtreecommitdiff
path: root/ATRI/exceptions.py
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/exceptions.py')
-rw-r--r--ATRI/exceptions.py39
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)