MiraiForum

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

    rebuild

    @rebuild

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

    rebuild 取消关注 关注

    rebuild 发布的最佳帖子

    • Myrai - 用 Python 直接基于 mirai-core 写机器人!

      项目地址:https://github.com/Shimogawa/myrai

      build
      PyPI

      注意:还在测试阶段,很多功能还未实现,仅供测试使用,请多指正

      简介

      为了用 Python 连接 mirai-core,现在需要经过 mirai-api-http。通用方法是使用 mirai-console-loader 进行启动,这样可能对于某些开发者比较麻烦(需要额外的软件与插件)。为了节省这些麻烦,直接通过 py4j 利用 socket 实现了 Python 与 mirai-core 的交互,节省了中间使用 HTTP 的环节,让你更快的部署你的机器人。

      由于用到了 py4j,在 mirai-core 上使用的接口都是 Java 版的。

      使用方法

      例子:https://github.com/Shimogawa/myrai/blob/master/examples/a.py

      要求

      • Python 3.9+
      • Java 11+

      安装

      pip install myrai
      

      初始化

      from myrai import mirai
      
      mirai.init()
      # ========
      bot = mirai.start_bot(114514, "password")  # qq 和 password
      # -------- 或者
      import hashlib
      bot = mirai.start_bot(
          114514,
          hashlib.md5("password".encode("utf-8")).digest()  # 用 MD5
      )
      # ========
      bot.login()
      

      初始化完成后

      使用方式与 mirai-core 一模一样。在 mirai_types 包中提供了大部分(以后会补全)在 mirai-core 中有的类。在 java 包中提供了一部分会经常使用的 Java 类。

      这些类大多用作代码提示,因为运行时它们的类型都不一样,都是 py4j 的 JavaClass,JavaObject 等。

      使用 .new 可以创建它的 Java 对象,使用 .static 能获取到它的类对象。所以想要调用静态方法和其它的方法可以这样:

      def listener(e: MessageEvent):
          e.getSender().sendMessage(
              MessageUtils.static.newChain(
                  [
                      QuoteReply.new(e.getMessage()),
                      PlainText.new("hi"),
                  ]
              )
          )
      

      注意:有些 Java 静态方法 / 成员为了方便使用,可以在 Python 类上直接调用静态方法 / 变量 (实际使用了 classmethod 和 property),而某些不常用的方法没有实现。这些能直接调用的方法会有代码提示。没有代码提示的静态方法请使用 .static。如果你没有代码提示或不放心一直报错,那就使用 .static 调用静态成员。例如:

      MessageUtils.newChain(...)  # OK
      MessageUtils.static.newChain(...)  # OK
      MessageUtils.static.buildMessageChain(...)  # OK
      
      MessageUtils.buildMessageChain(...)  # 不OK
      

      收尾

      import atexit
      from myrai import mirai
      
      atexit.register(mirai.close)
      
      发布在 其他项目发布
      rebuild
      rebuild

    rebuild 发布的最新帖子

    • Myrai - 用 Python 直接基于 mirai-core 写机器人!

      项目地址:https://github.com/Shimogawa/myrai

      build
      PyPI

      注意:还在测试阶段,很多功能还未实现,仅供测试使用,请多指正

      简介

      为了用 Python 连接 mirai-core,现在需要经过 mirai-api-http。通用方法是使用 mirai-console-loader 进行启动,这样可能对于某些开发者比较麻烦(需要额外的软件与插件)。为了节省这些麻烦,直接通过 py4j 利用 socket 实现了 Python 与 mirai-core 的交互,节省了中间使用 HTTP 的环节,让你更快的部署你的机器人。

      由于用到了 py4j,在 mirai-core 上使用的接口都是 Java 版的。

      使用方法

      例子:https://github.com/Shimogawa/myrai/blob/master/examples/a.py

      要求

      • Python 3.9+
      • Java 11+

      安装

      pip install myrai
      

      初始化

      from myrai import mirai
      
      mirai.init()
      # ========
      bot = mirai.start_bot(114514, "password")  # qq 和 password
      # -------- 或者
      import hashlib
      bot = mirai.start_bot(
          114514,
          hashlib.md5("password".encode("utf-8")).digest()  # 用 MD5
      )
      # ========
      bot.login()
      

      初始化完成后

      使用方式与 mirai-core 一模一样。在 mirai_types 包中提供了大部分(以后会补全)在 mirai-core 中有的类。在 java 包中提供了一部分会经常使用的 Java 类。

      这些类大多用作代码提示,因为运行时它们的类型都不一样,都是 py4j 的 JavaClass,JavaObject 等。

      使用 .new 可以创建它的 Java 对象,使用 .static 能获取到它的类对象。所以想要调用静态方法和其它的方法可以这样:

      def listener(e: MessageEvent):
          e.getSender().sendMessage(
              MessageUtils.static.newChain(
                  [
                      QuoteReply.new(e.getMessage()),
                      PlainText.new("hi"),
                  ]
              )
          )
      

      注意:有些 Java 静态方法 / 成员为了方便使用,可以在 Python 类上直接调用静态方法 / 变量 (实际使用了 classmethod 和 property),而某些不常用的方法没有实现。这些能直接调用的方法会有代码提示。没有代码提示的静态方法请使用 .static。如果你没有代码提示或不放心一直报错,那就使用 .static 调用静态成员。例如:

      MessageUtils.newChain(...)  # OK
      MessageUtils.static.newChain(...)  # OK
      MessageUtils.static.buildMessageChain(...)  # OK
      
      MessageUtils.buildMessageChain(...)  # 不OK
      

      收尾

      import atexit
      from myrai import mirai
      
      atexit.register(mirai.close)
      
      发布在 其他项目发布
      rebuild
      rebuild
    • RE: rubirai - 一个 mirai-api-http 的轻量级 Ruby 封装

      @rainchan 已经发啦

      发布在 其他项目发布
      rebuild
      rebuild
    • rubirai - 一个 mirai-api-http 的轻量级 Ruby 封装

      Rubirai 是一个 mirai-api-http 插件的 Ruby 封装,提供了大多数接口、事件、消息类型,以及可阻塞的事件监听机制(通过每一段时间调用获取消息的接口)。

      项目与文档

      https://github.com/Shimogawa/rubirai

      Gem Version

      • RubyDocs
      • 教程
      发布在 其他项目发布
      rebuild
      rebuild