AliceBot 是一个简单的 Python 异步多后端机器人框架,支持多种协议适配,可以轻松地编写易于学习和使用的插件来拓展其功能。
本项目受到了 NoneBot 项目的启发,您可以在对比小节中查看这两个项目的异同,以便您选择更适合自己的机器人框架。
- 简单:AliceBot 使用了非常灵活且易于使用的插件编写方式,您只需要编写两个方法即可实现一个功能强大的插件。
- 灵活:AliceBot 的适配协议并不与任何一种库或网络协议绑定,您可以自由选择或编写适合您的适配器。
- 高效:AliceBot 基于 Python 的异步 I/O,轻松处理大量请求。较少的封装,在保持易用的同时追求最好的性能。
目前 AliceBot 官方维护了以下协议适配:
- OneBot (CQHTTP) 协议 (支持 QQ 等) ws 和 ws-reverse 连接方式
- OneBot v12 协议的 ws 和 ws-reverse 连接方式
- mirai-api-http 协议 2.0+ ws 和 reverse-ws 连接方式
- 钉钉企业机器人的 outgoing (回调) 连接方式
- Telegram 机器人的 polling 和 webhook 连接方式
更多协议正在适配中 ...
更多信息:简介 - AliceBot 文档
-
安装:
pip install alicebot[all]
-
第一个 AliceBot 项目:
from alicebot import Bot bot = Bot() bot.load_adapters("alicebot.adapter.cqhttp") bot.run()
-
第一个 AliceBot 插件:
from alicebot import Plugin class Echo(Plugin): async def handle(self) -> None: await self.event.reply(self.event.message.replace("echo ", "")) async def rule(self) -> bool: if self.event.adapter.name != "cqhttp": return False if self.event.type != "message": return False return self.event.message.startswith("echo ")
更多信息请参阅 AliceBot 文档。
本项目受到了 NoneBot 项目的启发,以下简单介绍两者的异同。
相同点:
- 两者都是使用 Python 编写的,使用了协程异步的高性能机器人框架。
- 两者都支持多种协议。
- 两者都会对机器人收到的事件进行解析和处理,并按优先级分发给插件 (事件响应器) 来完成具体的功能。
- 两者都基于 MIT 协议开源,这意味着您可以在遵循协议的前提下任意使用本项目。
不同点:
- 总的来说,NoneBot 是一个较为全面的机器人框架,而 AliceBot 是一个小巧简洁的机器人框架,它不包含一些复杂的高级特性,但更加灵活且易于学习。
- AliceBot 的插件编写风格和 NoneBot 不同,相对而言,AliceBot 更加注重于易于入门和“渐进式框架”,这意味着 AliceBot 大部分的功能都是可选的,您只需要了解很少的知识即可开始使用,随着项目规模的扩大和复杂性的增加,您可以继续深入需要的特性,而不需要一开始就掌握全部的特性。“它是一个可以与你共同成长、适应你不同需求的框架。”
- NoneBot 在实现上与 HTTP / WebSocket 通讯协议深度绑定,它需要一个支持 ASGI 服务器协议的“驱动器”,而 AliceBot 并不与任何协议绑定,它甚至可以用来驱动您的树莓派智能音箱。当然,如果您只需要一个支持常见网络聊天工具的机器人框架的话,它们并没有什么区别。
- NoneBot 拥有相对庞大的用户基数和社区规模,也拥有数量众多的插件,而 AliceBot 则是一个新生项目,这意味着如果您使用 NoneBot 您可能会更加容易找到已经编写完毕的您感兴趣的插件,并且您当您遇到问题时也能够更快地查找到相关资料或者获得解答。
总而言之,两者有着各自的特点,您可以根据需要选用。
AliceBot 采用 MIT 许可证开放源代码。
本项目的图标由迷糊小梦神绘制,作为本项目的一部分,使用与本项目相同的许可证开放使用。