基于nonebot2和go-cqhttp的Asoul-bot聊天QQ群机器人开源项目

Asoul-bot

一个基于nonebot2和go-cqhttp的Asoul-bot开源项目,包含了一系列的小功能,可以轻量化的部署在本地从而实现一个有关Asoul的群聊bot。
作者:ZamoniaTargaryen
项目链接:https://github.com/ZamoniaTargaryen/Asoul-bot
本人修改后的项目链接(已和原项目合并):
https://github.com/JackFishxxx/Asoul-bot



配置运行

  1. 首先配置go-cqhttp客户端,按照说明编辑 config.yml 文件。输入账号密码,以及反向WS设置的universal地址,并且监控地址和端口应与 .env 文件中的HOSTPORT项匹配;
  2. 配置bot的 global.json.env 文件, global.json 中包含了使用的一些全局变量,test_group 为测试通知群群号,输入后bot会向其中发送表情包本地数据更新等的消息,all 为发送包含Asoul和七海消息的群号,no_shark 为发送仅包含Asoul消息的群号,其余参数可不修改。
  3. 使用指令 nb run --file=bot.py 启动bot;
  4. 运行go-cqhttp客户端,第一次可能需要扫码登陆;
  5. bot运行完毕,即刻享受Asoul-bot的各项功能吧!

功能实现

  1. 使用方法:@bot然后输入命令,如 @bot help 即可唤出帮助菜单;
  • 输入关键词:指@bot然后输入的语句中带有关键词即可,如@bot 有什么功能 也可以唤出帮助菜单;
  • 输入指令:指@bot后必须以“命令+参数”的形式才能触发,如@bot 冷笑话才可以获取随机冷笑话, @bot 来点冷笑话 并不可以达到这个效果;
  1. 已实现功能:
  • 输入关键词 “帮助/help/功能” 获取帮助菜单

回复一个文字形式的帮助菜单

  • 输入指令 “冷笑话/笑话” 获取随机冷笑话

回复一个冷笑话

  • 输入指令 “人品/运势+空格+版本强势CP名/人物” 获取该人物/CP今日运势

回复一个0-100之间的数字,数字越高运势越好,特定人物的不同名称的运势会统一,如“晚晚”和“晚”和“向晚”等所求运势统一

  • 输入关键词 “日程表” 获取本周日程表

回复一张本周日程表的图片

  • 输入指令 “实时粉丝数/粉丝数” 获取AS五人+阿草+海子姐实时粉丝数

回复的粉丝数精确到个位数
警告:该功能应当尽可能少地被使用!

  • 输入指令 “人品/运势” 获取你今日的运势

回复一个0-100之间的数字,数字越高运势越好

  • 输入指令 “remake/重开” 获取重开结果

回复重开后的结果,如嘉然小姐的狗

  • 输入关键词 “QA/qa” 获取本周QA

回复一个链接,指向本周的QA

  • 输入关键词 “午饭/晚饭/夜宵/吃”等 获取你到底吃啥(带学生不吃早饭和下午茶!)

回复一种食物
如果询问的是早饭和下午茶则会有彩蛋

  • 输入指令 “小作文” 获取随机小作文

回复一个小作文链接

  • 输入指令 “狗屁不通”+空格+主题 生成一段狗屁不通的文章

回复一段狗屁不通的文章

  • 输入指令 “概率”+空格+事件 获取某事发生的概率(如果包含有“你”“我”等关键词则与用户或bot绑定,每人不同,否则则为全局概率,与输入者无关,每人不同

回复一个0-100%的概率
如果包含有关键词“我”则与用户绑定,有关键词“你”则与bot绑定。绑定是指,不同的人输入后得到的概率不同。否则则为全局概率,与输入者无关,即不同的人输入后得到的概率一致。

  • 输入指令 “绝绝子”+空格+事件 生成绝绝子小短文

回复一段带emoji表情绝绝子小短文

  • 输入指令 “匹配”+空格+匹配对象 测试你和ta的匹配程度吧

回复一个0-100%之间的数字,数字越高匹配程度越高

  • 输入指令 “表情包” 获取随机表情包

回复一个随机表情包,表情包并不存储在本地,本地只存储表情包链接
感谢洛骑塔的收集

  • 输入指令 “切片” 获取随机切片

回复一个随机切片的链接
感谢贾布加布和珈然今晚吃奶贝两位切片man

  • 输入指令 “识图”+空格+图片 返回百度识图结果

回复一张图片的百度识图结果
有待完善

  1. 推送功能:
  • 开播提醒

查询是否开播,开播即在群内推送直播间链接、标题以及直播间头图

  • 动态发布提醒

查询是否发送动态,若有新动态即在群内推送动态链接、动态截图,需要chromedriver支持,应当与你的Chrome版本相匹配

  • 日程表发布提醒

查询是否有新日程表,若有新日程表即在群内推送日程表图片

  • 抖音小视频发布提醒

查询是否有新抖音视频,若有新抖音视频即在群内推送抖音视频链接

注意事项

  1. 本项目基于AGPL协议开源
  2. 本项目的开源、二次使用都应当遵守中华人民共和国的法律法规
  3. 本项目的开源、二次使用都应当不包含对其他人的诋毁、拉踩

作者及主要贡献者

  1. ZamoniaTargaryen
  2. JackFishxxx

参考链接

  1. go-cqhttp Github
  2. nonebot2 Document
  3. 原版bot (现已合并)
  4. 平台迁移后bot
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
avbot 连通 IRC、XMPP 和 QQ群, 并作为 AVIM 群机器人实现 AVIM 群聊功能. 能实时记录聊天信息。每日自动生成新的日志文件。使用方法和介绍参考 社区维基的avbot介绍编译请参考 社区维基的avbot编译指导For Windows 编译注意windows 版本有自动编译版,请到 ftp://ci.avplayer.org 下载。想了解 avbot 最重要的子模块 libwebqq 请点开 libwebqq 目录查看其 README.md支持的系统cmake >= 3.0GCC 系centos >= 7ubuntu >= 14.04debian >= 7和其他一些 gcc >= 4.8 的系统。MSVC 系VisutalStudio 2013 (支持 Vista 以上系统)VisutalStudio 2013 - vc120_xp toolset (支持 Windows XP 以上系统)启用步骤cmake -G "VisualStudio 12 2013 Win64" -T "vc120_xp"icc 系icc >= 14clang 系clang >= 3.4编译注意事项请不要在源码文件夹里直接执行 cmake. 务必创建一个专用的文件夹存放编译中间文件,如建立个 build 文件夹。 然后在 build 文件夹里执行 cmake PATH_TO_AVBOT因为 cmake 有很多时候,需要删除 build 文件夹重新执行,而在源码内部直接 cmake ,则因为文件夹混乱,不好清除中间文件boost 相关boost 需要至少 1.57 版本。boost 请静态编译, gentoo 用户注意 USE=static-libs emerge boostwin 下, boost 请使用 link=static runtime-link=static 执行静态编译 (包括 mingw 下)。linux 下如果必须自己编译 boost 的话,请使用参数 link=static runtime-link=shared --layout=system variant=release --prefix=/usr 执行编译。link=static 表示编译为静态库, runtime-link=static 则表示,应用程序最终会使用静态链接的 C 运行时。这个在 windows 平台是必须的要求。因为 VC 的 C 和 C 运行时打包起来非常麻烦。(mingw 的也一样)linux 那边 runtime-link=shared 表示使用动态链接的 libstdc .so, libstdc .so 无需静态链接,不是么 ;)添加 --layout=system variant=release 才能编译出 libbosot_context.a 这样的不带各种后缀的库版本。MSVC 相关理论上 2012 版本也是支持的,不过没有测试过。cmake 生成好 VC 工程然后打开 avbot.sln 即可。如果 boost 在 c:/boost 则无需额外设置 如果不是,需要设定 BOOST_ROOT, 可以在 cmake-gui 里点 configure 按钮前,通过 "Add Enytry" 按钮添加。关于历史avbot 的历史剧烈膨胀, 达到 127MB 之巨, 已经严重影响到国内用户执行 git clone 了. 正好 avbot 经历了一次重构, 因此重构后 avbot 丢弃全部历史轻装上阵. 当然历史并非真的丢弃, 已经有一份完整的历史在 https://github.com/microcai/avbot 备份了.关于商业开发avbot 提供一份商业授权. 因为 avbot 对 XMPP 协议的支持是使用的 gloox, gloox 是个GPL授权的库. 因此 xmpp 支持会被禁用. 除非你同时购买了 gloox 的商业授权.购买商业授权后, 您可以:1. 修改avbot的代码并无需公开自己的修改 2. 获得为期一年的技术支持 (可续) 3. 将 avbot 集成到自己的商业产品中 标签:avbot  聊天机器人  avplayer
### 回答1: 要用 Python 写一个基于 go-cqhttpQQ 机器人,你可以使用第三方库,如 CoolQ HTTP API 插件的 Python SDK,它封装了 go-cqhttp 提供的 HTTP API,使用起来更方便。 以下是一个简单的示例: ``` from cqhttp import CQHttp bot = CQHttp(api_root='http://127.0.0.1:5700/') @bot.on_message() def handle_msg(context): # 实现你的机器人逻辑 return {'reply': '你好,我是机器人!'} bot.run() ``` 这段代码中,我们定义了一个 handle_msg 函数来处理消息,并返回一个回复。运行这段代码后,你的机器人就会自动对收到的消息进行回复。 当然,你还可以根据需要添加更多的处理逻辑,例如:处理私聊消息,实现智能问答等。 ### 回答2: 基于go-cqhttp,使用Python编写QQ机器人可以通过与go-cqhttp插件的HTTP API进行交互来实现。 首先,将Python的requests库导入项目中,以便发送HTTP请求。 接下来,我们需要处理机器人收到的消息。通过模拟用户发送消息时,go-cqhttp发送的HTTP POST请求,我们可以使用Python的Flask框架来接收和处理这些消息。 在接收消息的路由上,我们可以使用Flask的`@app.route('/message')`来定义一个路由函数。在这个函数中,我们可以提取出消息中的关键信息,例如发送者QQ号码、发送的消息内容等。 接下来,我们可以使用条件语句对接收到的消息进行分类处理。例如,我们可以根据关键字回复不同的内容,或者调用外部API来进行一些其他操作。可以根据情况,编写不同的函数作为消息处理器。 在处理完消息后,我们需要将最终的回复发送给发送者。我们可以通过构造一个回复消息的字典,并将其转化为JSON格式,然后使用requests库发送POST请求到你自己的go-cqhttp插件上的HTTP API。 最后,我们可以利用go-cqhttp插件的事件上报功能,来处理一些其他的事件。例如好友申请、群聊消息等。 总结起来,基于go-cqhttp,用Python写一个QQ机器人可以通过与go-cqhttp插件的HTTP API进行交互,处理接收的消息和事件,并根据需要编写不同的函数作为消息处理器、事件处理器。最后,将回复消息发送给发送者。通过这些步骤,我们可以实现一个简单的QQ机器人。 ### 回答3: 基于go-cqhttp,我们可以使用Python来编写一个QQ机器人。首先,我们需要使用Python的 requests 库与go-cqhttp建立通信。 首先,我们需要在go-cqhttp的配置文件中开启HTTP、WS(WebSocket)接口。然后,我们可以使用python的requests库向go-cqhttp发送HTTP请求来完成一些操作,例如发送私聊消息: ```python import requests url = "http://127.0.0.1:5700/send_private_msg" data = { "user_id": 你的QQ号, "message": "Hello, World!" } response = requests.post(url, json=data) ``` 这将向你的QQ号发送私聊消息"Hello, World!"。 然后,我们可以使用Python来监听go-cqhttp发送给QQ机器人的消息,这里我们可以使用WebSocket连接进行实时通信。我们可以使用Python的websocket库来实现WebSocket通信: ```python import websocket def on_message(ws, message): print(message) def on_error(ws, error): print(error) def on_close(ws): print("连接已关闭") def on_open(ws): print("连接已打开") # 创建WebSocket连接对象 ws = websocket.WebSocketApp("ws://127.0.0.1:6700") # 绑定回调函数 ws.on_message = on_message ws.on_error = on_error ws.on_close = on_close ws.on_open = on_open # 开始监听消息 ws.run_forever() ``` 这将打开一个WebSocket连接,接收go-cqhttp发送给QQ机器人的消息,并将其打印出来。 当然,以上只是一个简单的例子,对于一个完整的QQ机器人,我们还可以做很多其他的操作,例如发送群聊消息、处理命令、响应事件等等。这些操作都可以通过向go-cqhttp发送HTTP请求来实现。 综上所述,使用Python编写一个基于go-cqhttpQQ机器人是十分可行的,我们可以利用Python提供的各种库与go-cqhttp进行通信,实现丰富的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值