未解决 mirai-api-http 是否考虑增加isOnline判断?
-
场景
我需要通过Docker Compose自动化启动mcl,和mah实现的bot
遇到的问题
mcl刚启动时,autologin的用户还未成功登录,但此时已经mah已打开,甚至
HTTPAdapter
下的/verify
api可以正常调用。而
HTTPAdapter
下的/bind
,以及WebsocketAdapter
下的/verify
则可能会不确定性地出现两种情况:- 此API调用直接返回机器人不存在
- 此API正常调用,但是后续API依然无法正确响应,直到登陆成功
暂时解决方案
循环调用登录api,直到返回正确结果
期望的解决方案
我看到mirai-core中确实有对bot是否在线的判断
/** * 判断 Bot 是否在线 (可正常收发消息) */ @SinceMirai("1.0.1") abstract val isOnline: Boolean
所以mirai-api-http能增加一个api来判断此状态
对
BotOnlineEvent
的思考感觉
BotOnlineEvent
事件有点鸡肋,正常情况下mah连接到mcl时,账号早已登录完成,mah根本收不到此事件。而上述情况中,bot的启动阶段是希望阻塞式地判断是否登陆成功的,用事件的方式似乎又不太优雅。 -
此回复已被删除! -
所以,你在webhock上报中检测不就好了
-
确实,这样也可以用来给uptime里做是否存活的检测。我现在用get_status,但是即使bot已经寄了(各种原因)但是这个接口似乎还是在反回正常