MiraiForum

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

    Michael1015198808 创建的主题

    • M

      已解决 求问如何使用Python的requests库mirai-api-http中上传图片
      使用交流 • • Michael1015198808

      4
      0
      赞同
      4
      帖子
      240
      浏览

      M

      查阅文档之后看到需要以 multipart/form-data 格式上传,然后查了一下怎么用requests上传这种格式,写出了如下代码

      with open("/tmp/c_exam.png", "rb") as f: res = requests.post( "http://localhost:9999/uploadImage", headers={ "sessionKey":session_key, "type":"friend", }, files = { "img": ("/tmp/c_exam.png", f.read()) # "img": ("/tmp/c_exam.png", b"") } )

      然而res.text内容为{"code":400,"msg":"无效参数"}
      实在想不出如何解决,用Google搜索mirai-api-http + requests + 图片也没找到合适的解法orz

    • M

      机器人编码异常
      BUG反馈 • • Michael1015198808

      1
      0
      赞同
      1
      帖子
      190
      浏览

      M

      在接收到某个含有特殊编码的群后,mcl-2.1.1的输出开始出现乱码,之前使用mcl-1.2.2的时候没遇到过这个问题。

      QQ图片1145141919810.png

      附触发bug的群名

      LUG@NJU<$ǿĀD>

    • M

      在mirai-console输入exit后自动发消息
      开发交流 • • Michael1015198808

      5
      0
      赞同
      5
      帖子
      429
      浏览

      M

      由于有时候机器人需要频繁重启以更新插件,所以想实现开关mcl时都在群里发送消息的功能。

      上线发送消息的功能可以通过

      eventChannel.subscribeAlways<BotOnlineEvent>{ for ((group, message) in GreetingConfig.OnlineMessages) { bot.getGroup(group)?.sendMessage(if (message != "") message else "机器人已上线!") } }

      实现,但是将BotOnlineEvent改为BotOfflineEvent之后,并不能发送消息(可能是因为已经下线了?)。而在插件的onDisable里通过Bot.instances访问Bot实例时,发现已经清空了。
      所以我估计mcl对机器人和插件的顺序应该是

      注册插件 登录机器人 登出机器人 解除插件

      那么,如何在mirai-console输入exit之后,让bot发送下线消息呢?

    • M

      已解决 关于AutoSavePluginData存储大数据的方案
      开发交流 • • Michael1015198808

      6
      0
      赞同
      6
      帖子
      524
      浏览

      M

      如题,我目前在开发一个Mirai斗地主插件,打算支持数据持久化。对于每个人,打算用PlayerInfo来记录积分、胜场、负场等数据。如果使用AutoSavePluginData的话,当使用人数很多时,对数据的存取开销都会变大,并且对内存的要求也会变高。而实际上,我们在组织一个牌桌时,只需要知道牌桌上的三个人的数据即可。
      所以,想请教一下有没有什么代码层面的奇技淫巧能够规避这个问题,即既能使用AutoSavePluginData提供的自动存取的便利,又能够防止过高的时空开销?(不太想用MySQL之类的数据库,感觉那样会增加复杂度)

    • 1 / 1