Skip to content

Commit 904512d

Browse files
committed
fix: 修复 ncm_login 登出时错误的异常处理
1 parent 97c389d commit 904512d

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/plugins/sing/ncm_login/__init__.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import re
22

3+
import httpx
34
from nonebot import get_plugin_config, on_command
45
from nonebot.adapters.onebot.v11 import MessageEvent, PrivateMessageEvent
6+
from nonebot.exception import FinishedException
7+
from nonebot.log import logger
58
from nonebot.params import ArgStr
69
from nonebot.permission import SUPERUSER
710
from nonebot.typing import T_State
@@ -60,11 +63,10 @@ async def got_phone(event: MessageEvent, state: T_State, phone: str = ArgStr()):
6063
if response and response.json().get("code", 0) == 200:
6164
await ncm_login_cmd.send("验证码已发送,请查收短信。")
6265
else:
63-
await ncm_login_cmd.send("验证码发送失败,但仍可尝试输入验证码进行登录。")
66+
await ncm_login_cmd.send("验证码发送失败")
6467

6568
except Exception:
66-
await ncm_login_cmd.send("验证码发送失败,但仍可尝试输入验证码进行登录。") # 强硬一点塞进去(
67-
69+
await ncm_login_cmd.send("验证码发送失败")
6870
state["need_captcha"] = True
6971

7072

@@ -107,8 +109,15 @@ async def handle_logout(event: MessageEvent):
107109
await ncm_logout_cmd.finish("已成功退出网易云音乐账号。")
108110
else:
109111
await ncm_logout_cmd.finish("登出失败,请稍后重试。")
110-
except Exception:
111-
await ncm_logout_cmd.finish("登出过程中出现错误,请稍后重试。")
112+
except FinishedException:
113+
raise
114+
except httpx.TimeoutException:
115+
await ncm_logout_cmd.finish("登出请求超时,请稍后重试。")
116+
except httpx.ConnectError:
117+
await ncm_logout_cmd.finish("无法连接到服务器,请检查网络或服务器状态。")
118+
except Exception as e:
119+
logger.error(f"网易云登出时发生未预期错误: {e}", exc_info=True)
120+
await ncm_logout_cmd.finish(f"登出过程中出现错误: {str(e)},请稍后重试。")
112121

113122

114123
async def is_ncm_logged_in():

0 commit comments

Comments
 (0)