/chocho

QQ 机器人快速开发框架

Primary LanguageRustMozilla Public License 2.0MPL-2.0

chocho

渐进式 QQ 机器人快速开发框架,基于 ricq

Examples

use chocho::prelude::*;

use async_trait::async_trait;
use chocho::ricq::handler::PartlyHandler;

struct Handler;
#[async_trait]
impl PartlyHandler for Handler {
    async fn handle_login(&self, uin: i64) {
        tracing::info!("登录成功: {}", uin);
    }
}

#[chocho::main(handler = Handler)]
async fn main(client: RQClient) -> anyhow::Result<()> {
    let account_info = client.account_info.read().await;
    tracing::info!("{:?}", account_info);

    client.group(12345678).send("Hello, world!").await?;
}

已完成功能/开发计划

点击展开

模块

  • chocho: 统一入口点
  • chocho_login: 用户登录
  • chocho_client: 客户端操作接口
  • chocho_event: 事件处理
  • chocho_msg: 消息处理
  • chocho_macros: 过程宏支持

登录

  • 账号密码登录
  • 二维码登录
  • 验证码提交
  • 设备锁验证
  • 错误信息解析

消息类型

  • 文本
  • 表情
  • At
  • 回复
  • 匿名
  • 骰子
  • 石头剪刀布
  • 图片
  • 语音
  • 长消息(仅支持群聊发送)
  • 合并转发(仅支持群聊发送)
  • 链接分享
  • 小程序(暂只支持RAW)
  • 短视频
  • 群文件(上传与接收信息)

事件

支持使用 ricq 的事件处理(Handler)处理事件,以下为 chocho_event 的实现进度

  • 群消息
  • 好友消息
  • 新好友请求
  • 收到其他用户进群请求
  • 新好友
  • 群禁言
  • 好友消息撤回
  • 群消息撤回
  • 收到邀请进群请求
  • 群名称变更
  • 好友删除
  • 群成员权限变更
  • 新成员进群/退群
  • 登录号加群
  • 临时会话消息
  • 群解散
  • 登录号退群(包含T出)
  • 客户端离线
  • 群提示 (戳一戳/运气王等)

主动操作

通用

  • 修改昵称
  • 设置在线状态
  • 修改个人资料
  • 修改个性签名

好友操作

  • 发送好友消息
  • 获取好友列表/分组
  • 添加/删除/重命名好友分组
  • 获取好友个性签名
  • 戳一戳好友
  • 发送好友语音
  • 下载好友语音
  • 好友链接分享
  • 好友音乐分享
  • 撤回好友消息
  • 处理好友请求
  • 删除好友
  • 获取陌生人信息

群操作

为防止滥用,将不支持主动邀请新成员进群

  • 发送群消息
  • 获取群列表
  • 获取群成员列表
  • 获取群管理员列表
  • 群成员禁言/解除禁言
  • 踢出群成员
  • 戳一戳群友
  • 发送群语音
  • 下载群语音
  • 群链接分享
  • 群音乐分享
  • 群匿名消息
  • 群打卡
  • 设置/取消群管理员
  • 设置群公告
  • 设置群名称
  • 全员禁言
  • 获取群@全体剩余次数
  • 修改群成员头衔
  • 获取群成员信息。
  • 设置群精华消息
  • 发送临时会话消息
  • 修改群成员名片
  • 撤回群消息
  • 处理被邀请加群请求
  • 处理加群请求
  • 获取群荣誉 (龙王/群聊火焰等)
  • 获取群文件下载链接
  • 群成员邀请

其他

  • 翻译
  • OCR