mirror of
https://github.com/nonebot/nonebot2.git
synced 2024-11-24 17:15:05 +08:00
192 lines
9.1 KiB
Markdown
192 lines
9.1 KiB
Markdown
---
|
||
sidebar_position: 0
|
||
description: 开源软件供应链点亮计划 - 暑期 2021
|
||
---
|
||
|
||
# 暑期 2021
|
||
|
||
**开源软件供应链点亮计划 - 暑期 2021** 是**中国科学院软件研究所**与 **openEuler 社区**共同举办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。关于具体的活动规划、报名方式,请查看该活动的 [官网](https://summer.iscas.ac.cn/) 和 [帮助文档](https://summer.iscas.ac.cn/help/)。
|
||
|
||
NoneBot 社区有幸作为开源社区参与了本次活动,下面列出了目前我们已经发布的项目,欢迎感兴趣的同学在上面给出的活动官网报名,或通过 <contact@nonebot.dev> 联系我们。
|
||
|
||
## NoneBot v1
|
||
|
||
### 更新 NoneBot v1 文档中的“指南”部分
|
||
|
||
由于 NoneBot v1 和 aiocqhttp 最初基于的 QQ 机器人平台不再提供服务,CQHTTP 接口也转型且改名为 OneBot 标准,目前 NoneBot v1 文档的“指南”部分和 aiocqhttp 文档有部分过时内容需要更新。我们希望将其中与旧的机器人平台相关的内容改为基于 go-cqhttp 或通用的 OneBot 表述,同时对 NoneBot v1 的 awesome-bot 示例做一次全面检查,修改其中可能已经不可用的部分。
|
||
|
||
**难度**:低
|
||
|
||
**导师**:[@cleoold](https://github.com/cleoold)
|
||
|
||
**产出要求**
|
||
|
||
- 修改“指南”文档和 aiocqhttp 文档中与旧的 QQ 机器人平台相关的部分
|
||
- 检查 awesome-bot 示例是否有已经过时/不可用的地方,并更新/修复
|
||
- 修改“图灵机器人”案例,使用其它 AI 聊天 API 提供商(需先做简单调研)
|
||
|
||
**技术要求**
|
||
|
||
- 熟悉 Python 编程语言及 asyncio 机制
|
||
- 了解 Git 基本用法
|
||
- 了解聊天机器人基本开发过程
|
||
- 了解 VuePress 更佳
|
||
|
||
### NoneBot v1 API 文档自动生成
|
||
|
||
目前 NoneBot v1 的文档中“API”部分是手动编写的,在更新代码接口的同时需要手动更新文档,可能造成文档与代码不匹配,形成额外的维护成本。我们希望将 API 文档改为直接编写在 Python docstring 中,通过工具自动生成 API 文档。
|
||
|
||
**难度**:中
|
||
|
||
**导师**:[@cleoold](https://github.com/cleoold)
|
||
|
||
**产出要求**
|
||
|
||
- 调研市面上常见的 Python API 文档生成工具
|
||
- 在代码中补充 API 文档
|
||
- 编写或应用开源工具自动生成 API 文档
|
||
- 配置 GitHub Actions 或其它 CI 自动化构建和部署 API 文档
|
||
|
||
**技术要求**
|
||
|
||
- 熟悉 Python 编程语言及 asyncio 和 Type Hints
|
||
- 了解 Git 基本用法
|
||
- 了解 Sphinx 等文档生成工具更佳
|
||
- 了解 GitHub Actions 等 CI 工具更佳
|
||
|
||
## NoneBot v2
|
||
|
||
### NoneBot v2 自动化测试框架“NoneBug”
|
||
|
||
在聊天机器人的开发过程中,一套自动化的测试机制是非常重要的,特别是对于 NoneBot 2 这类为大型机器人开发而设计的项目来说,需要手动测试每一个边际条件是非常痛苦的。我们希望能够开发一款基于 NoneBot 2 插件机制的自动化测试框架,为 NoneBot 2 用户提供一套易用便捷、高度灵活的自动化测试框架。
|
||
|
||
**难度**:高
|
||
|
||
**导师**:[@yanyongyu](https://github.com/yanyongyu)
|
||
|
||
**产出要求**
|
||
|
||
- 调研现有的 Python 和其它语言集成测试框架
|
||
- 设计 NoneBug 的用户 API 和实现方式
|
||
- 实现 NoneBug 自动化测试框架
|
||
- 编写详细的使用文档
|
||
|
||
**技术要求**
|
||
|
||
- 熟悉 Python 编程语言及 asyncio 和 Type Hints
|
||
- 了解 Git 基本用法
|
||
- 了解 NoneBot v2 的基本原理和使用方式
|
||
- 了解主流的 Python 自动化测试框架
|
||
|
||
### NoneBot v2 Telegram 适配器
|
||
|
||
目前 NoneBot v2 已支持 OneBot、Mirai HTTP API、钉钉协议,社区反馈有更多的平台需求,希望能在 NoneBot v2 获得更多的跨平台支持,提高机器人的便携性。同时,我们也希望随着新平台加入,提升现有 NoneBot v2 核心代码的平台通用性。Telegram 是一款较为广泛使用的安全即时聊天软件,同时其官方提供了丰富的聊天机器人 API,因此我们希望为 NoneBot v2 编写一个 Telegram 适配器来支持 Telegram 机器人的开发。
|
||
|
||
**难度**:中
|
||
|
||
**导师**:[@yanyongyu](https://github.com/yanyongyu)
|
||
|
||
**产出要求**
|
||
|
||
- 调研 Telegram Bot API 以及 WebHook 等官方接口
|
||
- 编写 Telegram 适配器并能够使用
|
||
- 代码遵守项目 Contributing 规范
|
||
|
||
**技术要求**
|
||
|
||
- 熟悉 Python 编程语言及 asyncio 和 Type Hints
|
||
- 了解 Git 基本用法
|
||
- 了解 Web 开发相关知识
|
||
- 了解 Sphinx 等文档生成工具更佳
|
||
|
||
### NoneBot v2 飞书适配器
|
||
|
||
目前 NoneBot v2 已支持 OneBot、Mirai HTTP API、钉钉协议,社区反馈有更多的平台需求,希望能在 NoneBot v2 获得更多的跨平台支持,提高机器人的便携性。同时,我们也希望随着新平台加入,提升现有 NoneBot v2 核心代码的平台通用性。飞书是目前企业用户广泛使用的即时聊天和协作软件,其官方提供了丰富的聊天机器人 API,因此我们希望为 NoneBot v2 编写一个飞书适配器来支持飞书机器人的开发。
|
||
|
||
**难度**:中
|
||
|
||
**导师**:[@yanyongyu](https://github.com/yanyongyu)
|
||
|
||
**产出要求**
|
||
|
||
- 调研飞书机器人 API 以及 WebHook 等官方接口
|
||
- 编写飞书适配器并能够使用
|
||
- 代码遵守项目 Contributing 规范
|
||
|
||
**技术要求**
|
||
|
||
- 熟悉 Python 编程语言及 asyncio 和 Type Hints
|
||
- 了解 Git 基本用法
|
||
- 了解 Web 开发相关知识
|
||
- 了解 Sphinx 等文档生成工具更佳
|
||
|
||
## OneBot
|
||
|
||
### 设计 OneBot v12 接口标准
|
||
|
||
目前的 OneBot 标准的 v11 版本仍然与 QQ 平台有较多耦合,我们希望在 v12 去掉与 QQ 耦合的历史包袱,形成一个通用的、可扩展的、易于使用的同时易于实现的聊天机器人接口标准。
|
||
|
||
**难度**:中
|
||
|
||
**导师**:[@richardchien](https://github.com/richardchien)
|
||
|
||
**产出要求**
|
||
|
||
- 调研各聊天机器人平台的官方/非官方接口特点
|
||
- 通用化 OneBot 核心 API,分离 QQ 特定的 API,去掉无用 API
|
||
- 优化现有的通信、消息表示机制
|
||
- 补充 QQ 特定的缺失 API
|
||
- 文档需符合风格指南
|
||
|
||
**技术要求**
|
||
|
||
- 熟悉至少两个聊天平台的聊天机器人开发
|
||
- 了解 Git 基本用法
|
||
- 了解使用不同语言编写聊天机器人时的常用实践
|
||
- 对文档的优雅性与美观性有追求更佳
|
||
|
||
### 实现 Rust 版 libonebot
|
||
|
||
目前最常用的 OneBot 实现包括 go-cqhttp、onebot-kotlin、node-onebot 等,这些实现都各自重复实现了 Web 通信、消息解析、配置读写等功能,当社区中的开发者想针对一个新的聊天平台实现 OneBot 时,他们往往同样需要再次实现类似逻辑。我们希望使用 Rust 编写一个 libonebot 模块,该模块实现所有 OneBot 实现所共享的功能,从而方便其他开发者们使用 Rust 快速编写具体的 OneBot 实现。同时,我们希望借此项目在聊天机器人社区中推广 Rust 编程语言。
|
||
|
||
> 注:这里的逻辑是 libonebot + 针对某聊天平台的对接代码 = 某聊天平台的 OneBot 实现,libonebot 要做的是让 OneBot 实现的开发者只需编写针对特定聊天平台的对接代码,而无需关心 OneBot 标准定义的通信方式、消息格式等。
|
||
|
||
**难度**:高
|
||
|
||
**导师**:[@richardchien](https://github.com/richardchien)
|
||
|
||
**产出要求**
|
||
|
||
- 实现所有 OneBot 实现所共享的功能,包括 Web 通信、消息解析、配置读写等
|
||
- 充分考虑同时兼容 OneBot v11 和 v12 接口
|
||
- 能够根据用户(OneBot 实现的开发者)所实现的接口自动实现类似 get_available_apis 等接口
|
||
- 编写详细的使用文档
|
||
- 如果可能,与 v12 设计项目联动,实现第一手 v12 支持
|
||
|
||
**技术要求**
|
||
|
||
- 熟悉聊天机器人开发
|
||
- 熟悉 Rust Web 开发
|
||
|
||
### 实现自选语言版 libonebot
|
||
|
||
目前最常用的 OneBot 实现包括 go-cqhttp、onebot-kotlin、node-onebot 等,这些实现都各自重复实现了 Web 通信、消息解析、配置读写等功能,当社区中的开发者想针对一个新的聊天平台实现 OneBot 时,他们往往同样需要再次实现类似逻辑。我们希望使用 Python、Go、Kotlin、Node、PHP、C#.NET 等主流语言(任选一个)编写 libonebot 模块,该模块实现所有 OneBot 实现所共享的功能,从而方便其他开发者们使用对应语言快速编写具体的 OneBot 实现。
|
||
|
||
> 注:这里的逻辑是 libonebot + 针对某聊天平台的对接代码 = 某聊天平台的 OneBot 实现,libonebot 要做的是让 OneBot 实现的开发者只需编写针对特定聊天平台的对接代码,而无需关心 OneBot 标准定义的通信方式、消息格式等。
|
||
|
||
**难度**:中
|
||
|
||
**导师**:[@richardchien](https://github.com/richardchien)
|
||
|
||
**产出要求**
|
||
|
||
- 实现所有 OneBot 实现所共享的功能,包括 Web 通信、消息解析、配置读写等
|
||
- 充分考虑同时兼容 OneBot v11 和 v12 接口
|
||
- 编写详细的使用文档
|
||
- 如果可能,实现更多附加特性,如根据用户(OneBot 实现的开发者)所实现的接口自动实现类似 get_available_apis 等接口、实现第一手 v12 支持等
|
||
|
||
**技术要求**
|
||
|
||
- 熟悉聊天机器人开发
|
||
- 熟悉所选语言的 Web 开发
|