bot

我曾使用 nonebot2 + cqhttp 的方式搭建 bot。这种方案使用 python 语言,并且需要自己写比较底层的代码。在此感谢 yaowan233 学长的指导。

而现在我选择 koishi 框架。该框架基于 node.js,具有图形化的操作界面和高度预设,可以接入多个平台,也有成熟的 npm 包管理。文档虽说不算优秀,但至少比曾经的 nonebot2 强数倍。同时也有论坛以供交流。但是代价就是 node.js 的高运行时内存占用了。(常态 600M)

comp: 这两个平台都通过 Adapter 适配不同的平台,比较泛用;都有数据库的抽象层,比较易用;2023 开源之夏 nonebot2 也新增了图形界面。我感觉还是看写 python 还是写 ts 舒服来选平台比较合适。

我建的 bot 有两个实例:一个是之前一直在用的 QQ bot atri(2433269451),另一个是后来使用 koishi 的 Telegram bot atri bot。 这两个 bot 现在都不再运行了;不过后文的 serverless bot 还可以使用。

查看 atri(QQ) 的信息

她的功能:

请加为好友(联系绝对值_x 同意好友)后发送 help 获取详细指令。你也可以在这里得到她的实现上述功能的 python 源码。关于环境:

  1. 使用 conda 创建出所需环境(此处环境名为 atri):conda create -n atri python=3.9

    nonebot2 需要在 python>=3.8 环境下运行

  2. 使用 pip 安装依赖:
    sh
    pip install nb-cli
    pip install nonebot-adapter-onebot
  3. 参考随笔中的启动脚本

koishi

install

这里推荐使用 pnpm/npm 安装,而不是官方推荐的下载安装包。使用 pnpm/npm 安装对 bot 功能没有影响,而且方便开发。

sh
pnpm i -g create-koishi@latest
pnpm create koishi  # 选择是否 install and start 的时候选择 否
pnpm i --shamefully-hoist   # 需要添加此后缀
pnpm dev
sh
npm i -g create-koishi@latest
npm init koishi

关于 pnpm 安装后缀,详见 nodejs

使用

开发

我写了一个小玩具(koishi-plugin-peek),大致涵盖了基本的开发指令。推荐在 github 上搜索其他源码广泛学习。

Telegram Bot on Cloudflare Workers

之后我的重心转到了 Telegram 上,而 Telegram 对 bot 的大力支持程度是国内平台根本比不了的。

2024 年底 Asuka Minato 写了一个 serverless 的 telegram-summary-bot,这个 bot 使用 Cloudflare Workers 运行,Cloudflare d1 数据库做持久化存储。我看到了 Telegram bot 的新曙光,这样我就不需要使用专门的服务器来跑 bot 了,因为我的 VPS 稳定性和数据安全性都挺差的。

于是抄他的源码,结合我第一次使用 Cursor,糊了一个 Telegram-RSS-Bot-on-Cloudflare-Workers,满足了我一直以来的愿望,也就是在聊天软件里接收 RSS 通知。(此前我一直使用 iovxw/rssbot,但它并不好用。我也经历了几次数据丢失,非常难受)

后来就一发不可收拾,又写了: