前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mirai QQ机器人初探 - wuuconix's blog

mirai QQ机器人初探 - wuuconix's blog

作者头像
wuuconix
发布2023-03-16 15:55:24
1.8K0
发布2023-03-16 15:55:24
举报
文章被收录于专栏:wuuconixwuuconixwuuconix

背景

vaala的机器人小vaala已经做好很久了,功能也十分丰富。当时看了vaala的仓库,了解到qq机器人是用mirai这个框架实现的。

寒假放假后,7att1ce也很快写了一个机器人,主要实现了setu模块(

以下图片节选至530开车群。

7att1ceのBot
7att1ceのBot

我便也着手准备起来。

成果

在昨晚搞了一会儿MCL以及今天用Ariadne写了几个小功能后,我的机器人大概是这样的。

help & hi
help & hi
setu & dice
setu & dice
secret
secret

当输入#help 时就会调用 https://api.ixiaowai.cn/api/api.php 接口随机获得一张setu。

至于#secret实际上就是把setu以闪照的形式发出来233。

如何实现

mirai相关资料较少,建议仔细研读官方的文档和手册。以下为相关项目地址。

  1. mamoe/mirai: 高效率 QQ 机器人支持库 (github.com) 这是mirai主仓库,你需要按照它的用户手册下载Mirai Console Loader(即Mirai 控制台 加载器) 它有交互式终端,提供了一些命令,但是实际上的主要功能就是自动登录qq(
mcl
mcl

登录qq是个大坑,建议看这篇 mirai官方论坛的文章 无法登录的临时处理方案 | MiraiForum (mamoe.net) 大概步骤就是先用MiraiAndroid 登录上qq,然后复制device.json到服务器。然后服务器就能够登录了。

  1. 登录上qq了你便完成了一大半了。接下来就是如何对bot进行控制。Mirai官方提供了project-mirai/mirai-api-http: Mirai HTTP API (console) plugin (github.com) 这款插件,它通过在机器本地开设http服务,让我们通过访问api接口的方式对机器人进行控制。这样有一个好处,无论你是什么语言,只要你可以去访问api,对api进行请求,你就实现对bot的操作。 下载插件十分简单,进入 plugins目录,然后把插件的jar包放进去,下次开启mcl的时候就会自动加载插件了。
mirai-api-http
mirai-api-http

我这里下载了v2.4.0 即最新版本。 注意 mirai主仓库提供的安装插件命令 ./mcl --update-package net.mamoe:mirai-api-http --type plugin --channel stable 下载的是插件的稳定版,实际上是v1. 的版本,不建议使用。

  1. 接下来我找了一个mirai python框架 GraiaProject/Ariadne: Another elegant framework for Mirai and mirai-api-http v2. Powered by GraiaProject. (github.com) 用来编写bot功能。 在仔细阅读它的文档之后,我们很快就能实现一个简单的机器人。以下是我当前项目的代码。
bot
bot

由于该框架封装的比较好,用起来还是比较方便的。

结尾

一个QQ机器人还是非常有趣的,虽然用的频率可能不多。

但是它可能会给使群热闹起来。

注入
注入
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年1月4日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 成果
  • 如何实现
  • 结尾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档