高级语言程序设计课程用机器人
该项目主要负责构建QQ机器人,从而帮忙完成同济大学高级语言程序设计课程群的管理工作,仅供学习用途。
该项目基于QQ机器人库mirai
以及配套的python sdk库graia
开发。
mirai
:一个在全平台下运行,提供 QQ Android 协议支持的高效率机器人库mirai-console
:一个基于mirai开发的插件式可扩展开发平台mirai-api-http
:提供与mirai交互方式的mirai-console插件graia-application
:提供python sdk以便进行机器人开发mirai-console-loader
:模块化、轻量级且支持完全自定义的mirai加载器saya_plugins_collection
:一个Graia-Saya的插件仓库
环境的配置请参考docs/环境基本配置.md
本项目基于graia-application
进行开发,相关的版本要求见examples
目录下的环境配置文档
下面是graia
提供的一些相关开发文档与api文档:
- https://graia-document.vercel.app/docs/intro
- https://graiaproject.github.io/Application/graia/application/index.html
另外graia
的开发样例以及插件的开发样例可以参考saya_plugins_collection
该项目中的实现
注意你的所有文件都应该使用UTF-8编码
请注意你的命名方式应该优先使用蛇形命名法,以匹配我们的整个编码风格
提交Pr时应该提交到dev分支
注意如果你安装了第三方库,请一定要在插件的readme文档中注明库名以及相应的版本,否则我们无法运行
本项目使用Saya插件化的方法进行组织,即将自己完成的功能封装为一个插件,供main函数调用使用,插件将会统一存放在modules
文件夹下,以供main.py
调用
插件可以是单独的文件形式,亦可是包的形式(多文件情况下)
整个项目的结构与相关插件的实现方法可以参考saya_plugins_collection
目前插件库中给出了一个check_alive插件的实现过程,以供参考
注意给出的插件最好应当给予相应的readme.md
文件,以说明插件的功能与用法,因此基本上推荐以文件夹(包)的形式给出
注意你的插件不应该对其他插件造成影响,并且应该注意python模块被调用时的相对路径文件
如果你觉得某些功能很有泛用性,可以提炼出相应的模块放置在utils
文件夹下
请通过提交Pr的形式进行贡献
新开发者可以首先阅读git快速入门
在提交的文档中如需插入图片,建议使用llbbyy的图床
注意根目录下的config.json
文件是被添加在.gitignore
文件中,不会被上传的,因此下载本项目后应该首先自行新建该文件,并且进行相关配置后才可运行
config.json
文件需与main.py
文件同级
config.json
文件的结构与配置说明如下:
{
"host":str形式的主机,例:"http://localhost:8080",
"auth-key":str形式的认证串,
"bot-qq":num形式的qq号
}
我们使用 GNU GPLv3
作为本项目的开源许可证