nonebot2/website/versioned_docs/version-2.0.0/ospp/2021.md

192 lines
9.1 KiB
Markdown
Raw Normal View History

2023-06-01 06:26:07 +00:00
---
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 开发