An intuitive multi-platform bot framework, easily forward messages among platforms, support QQ, WeChat, Telegram. 一个符合直觉的跨社交平台机器人框架,轻松地在平台间传递消息,支持QQ、微信、Telegram
Project description
PepperBot
一个符合直觉的跨社交平台机器人框架,轻松地在平台间传递消息,支持QQ、微信、Telegram
生而跨平台
- QQ 基于
Onebot
,Mirai
(待实现)、OPQ
(待实现) - 微信基于
可爱猫
- Telegram基于
Pyrogram
- 提供了跨平台、易用的消息类型(片段)
- 通用事件,比如群消息、私聊消息等,提供了统一的接口,只需要写一次代码,就可以无缝应用到各个平台上,跨平台的消息传递从未如此轻松随意
- 可以跨群、跨平台共享指令(的状态),或者全局锁定用户(不管用户是通过群聊还是私聊)
性能也够用
- 底层基于异步的 Sanic 框架,目前有一定生态的 python web 框架中,性能最好的
- 轻量,主要处理消息,对于其他功能,暴露底层接口,方便实现深度定制
- 几行代码,即可实现多进程负载均衡
自带全家桶
- 支持
Django
或starlette
风格的集中化路由,或者flask
或fastAPI
风格的装饰器式路由 - 非常灵活的权限系统,支持路由、class、method级别的权限控制
- Django 类视图风格或Vue 生命周期风格的指令系统
- 定时任务
- 日志支持
- 基于
ormar
的异步数据库支持(ormar基于sqlalchemy
+pydantic
) - 自带插件市场,可以安装社区指令
- 提供cli工具,快速创建项目
- 类似
Selenium
的事件等待 -
fastAPI
风格的依赖注入
接口合语义
- API 符合直觉,直观,流畅地把想法映射到代码上
- 基于 python3.6 之后的类型注解,提供了完全的类型提示
- 大部分可以自动获取的参数,都会自动获取,不需要每次手动提供了
- 只会动态注入用到的参数,没必要每次写一长串用不到的参数了!
- 文档中,均有可直接复制使用的代码片段,快速开发
测试文档全
- 通过元编程(AST 之类)手段,对编写的各种代码进行规则检查,并输出易于理解的错误信息,将问题消灭在框架启动之前
- 文档比较全
- 测试覆盖比较全面
- 大量官方示例/指令
- 来自作者的 QA(加群以获取)
安装
目前只能3.10及以上,因为用了点新特性,之后会恢复对3.8的支持
pip install pepperbot
使用
示例
六行代码实现消息互转
class WhateverNameYouWant:
async def group_message(self, bot: UniversalGroupBot, chain: MessageChain):
if bot.onebot: # 转发qq消息至微信、TG
await bot.arbitrary.keaimao.group_message("19521241254@chatroom", *chain.segments)
await bot.arbitrary.telegram.group_message("bot_father", *chain.segments)
if bot.keaimao: # 转发微信消息至qq、TG
await bot.arbitrary.onebot.group_message("1041902989", *chain.segments)
await bot.arbitrary.telegram.group_message("bot_father", *chain.segments)
只需要非常少的代码,就可以实现跨平台的群消息的响应
@register()
class WhateverNameYouWant:
# 注册跨平台群事件
async def group_message(self, bot: GroupBot, chain: MessageChain, sender: Sender):
# chain即为消息链,pure_text是消息中的纯文本,不包含表情、图片等
if "撤回我" == chain.pure_text:
await chain.withdraw() # 可以直接“撤回消息”,符合直觉
if "踢出我" == chain.pure_text:
await sender.kickout() # 可以直接踢出发言群员
# 也可以对消息链进行in操作,相当于in chain.pure_text
if "禁言我" in chain:
await sender.ban(10) # 可以直接禁言发言群员
if chain.regex("有人(在|吗|嘛|在吗).?"):
# 发送一条群消息
# 接受任意个参数,必须是合法的消息片段,比如Text,Face,Image
await bot.group_message(
Text("没人"),
Image("http://123.jpg"),
)
生态
可以记忆上下文的GPT群聊机器人
通过GPT,自动检测群聊中的广告信息
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pepperbot-0.3.5.tar.gz
(98.4 kB
view details)
Built Distribution
pepperbot-0.3.5-py3-none-any.whl
(112.4 kB
view details)
File details
Details for the file pepperbot-0.3.5.tar.gz
.
File metadata
- Download URL: pepperbot-0.3.5.tar.gz
- Upload date:
- Size: 98.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.4.9 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 460c5416a8113977a0c97b42e40a3fd228b08521a06a89f6c331684bc28d240e |
|
MD5 | 45d1b70baaf2ffc6749374fd2b0db727 |
|
BLAKE2b-256 | 5771b629f17f7185a54f28b396039471d7246e99f315e4e0f7de0ff2787210e5 |
File details
Details for the file pepperbot-0.3.5-py3-none-any.whl
.
File metadata
- Download URL: pepperbot-0.3.5-py3-none-any.whl
- Upload date:
- Size: 112.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.4.9 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aac4218aaac8ba7998874212019818071506a6f9d73f78d822d32951e45510ba |
|
MD5 | b2cbab228f6c0a509cbd00eaef2c9e40 |
|
BLAKE2b-256 | dfd3fcda84e96c1f4d235e36031a5fd959d8ea18f3501fabc6d4844bdd2c8739 |