NPC 开源决定

今天终于完成了一件一直以来都想干的事情,那就是开源 NPC。好了,不想再往下看文章的童鞋,可以直接前往 GitHub 地址 查看使用说明了。

接下来我想说说 NPC 的来源以及是如何一步步走到现在的。

NPC 其实并不是真的“NPC”,只是作为一个 shell,通过调用灰灰大神的 Mojo-Webqq 项目的 openqq 接口来实现各种操作的,并且也只实现了部分功能。所以这个 NPC 其实并不复杂,也就看起来高大上罢了。😂

NPC 原来也并不叫“NPC”,原名叫“Nagios监控告警”,主要用来做 Nagios 监控的通知机器人使用的,详见《nagios 实现 QQ群 告警》Mojo-Webqq 的前身叫 pfqq,当时便对它有所关注,可以说我是 Mojo-Webqq 崛起的见证者,似乎也不为过吧。

刚开始只是简单的使用,通过脚本,调用 openqq 接口来发送告警消息。后来认识了 SmartReply 插件和 KnowledgeBase 插件,便开始走向功能多样化的道路。SmartReply 调用的是图灵机器人的接口,故你们平时所调戏的,其实就是图灵机器人 MM。从这时候开始,NPC 就正式改名为“NPC”。

好用归好用,但是 Mojo-Webqq 的安装却是非常麻烦的,加之各 Linux 发行版默认的依赖及配置也各不相同,故每次迁移,都耗费很大的精力,当时对灰大也是各种叨扰,深感愧疚。所以我便想,为啥不将其虚拟化,封装成 docker 镜像呢?这样只需配置一次,迁移时环境问题就不用再纠结了。恰好当时在研究 dockerfile,所以一鼓作气之下,就将 Mojo-Webqq 给封了,详见《使用 docker 启动 Mojo-Webqq》。不过当时只是将 Mojo-Webqq 封装成镜像,外露 openqq 接口以便调用而已,其他附加功能,并没有一起带进去。

就这样,稳定使用了好久……直到最近,我突然想到,为什么不将各种外接功能,和 Mojo-Webqq 一起,打包成一个 NPC 镜像呢?这样迁移的时候,只需要部署 NPC 镜像,就全都有了,而且数据库也可以进行封装起来,安装时直接创建相关的表,这样一来,对于新安装的环境,只需要下载镜像并启动,就能直接实现简单的功能了。而且我一直都希望将 NPC 开源出来,但是其他功能性的脚本,都是将个人信息写死的,不方便进行公开,以及如果还要将脚本使用方式,数据库创建步骤写出来的话,对于新手来说将有很大的学习成本。即使是熟悉的人,也需要花一定的时间去建库建表以及学习脚本的使用。(其实还是我懒,觉得迁移时建库建表麻烦。😅)

故而前段时间,我一直利用业余时间对 NPC 的脚本进行变量抽取以及 dockerfile 的编写测试,期间还经历了 uid 无法获取导致只能改为通过群名称发送消息的事件,最终将 NPC 以开源代码的方式提交到了 GitHub。

好了,不多说了,更多说明请查看 GitHub 地址:https://github.com/huangzhongzhang/NPC。😎