MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. tuyunlei
    • 资料
    • 关注 1
    • 粉丝 0
    • 主题 1
    • 帖子 1
    • 最佳 1
    • 有争议的 0
    • 群组 0

    tuyunlei

    @tuyunlei

    1
    声望
    1
    资料浏览
    1
    帖子
    0
    粉丝
    1
    关注
    注册时间 最后登录

    tuyunlei 取消关注 关注

    tuyunlei 发布的最佳帖子

    • mirai-api-http 是否考虑增加isOnline判断?

      场景

      我需要通过Docker Compose自动化启动mcl,和mah实现的bot

      遇到的问题

      mcl刚启动时,autologin的用户还未成功登录,但此时已经mah已打开,甚至HTTPAdapter下的/verifyapi可以正常调用。

      而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的启动阶段是希望阻塞式地判断是否登陆成功的,用事件的方式似乎又不太优雅。

      发布在 HTTP API和第三方SDK
      tuyunlei
      tuyunlei

    tuyunlei 发布的最新帖子

    • mirai-api-http 是否考虑增加isOnline判断?

      场景

      我需要通过Docker Compose自动化启动mcl,和mah实现的bot

      遇到的问题

      mcl刚启动时,autologin的用户还未成功登录,但此时已经mah已打开,甚至HTTPAdapter下的/verifyapi可以正常调用。

      而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的启动阶段是希望阻塞式地判断是否登陆成功的,用事件的方式似乎又不太优雅。

      发布在 HTTP API和第三方SDK
      tuyunlei
      tuyunlei