一个无聊的 OneBot 实现,完全使用 python 语言,基于 lagrange-python
本项目处于较早期开发阶段。虽然比较简陋,但核心功能已基本稳定。
- Python >= 3.10
- lagrange-python 1
- Lagrange V2 签名服务(见签名指南)
-
克隆本项目:
git clone https://github.com/HarcicYang/EulerOneBot.git cd EulerOneBot -
安装依赖:
Euler OneBot 使用 uv,您可以如是设置:
uv sync pip install . # 若您不希望使用uv
-
运行,首次启动会自动生成
appconfig.json配置模板:uv run main.py python main.py # 若您不希望使用uv
4.填写配置文件后重启即可。
首次运行会自动生成 appconfig.json,编辑后重启。配置项如下:
{
"log_level": "INFO",
"log_nf": true,
"connections": [
{
"type": "ForwardWebSocket",
"url": "ws://127.0.0.1:5004"
}
],
"login": {
"uin": 0,
"signer_url": "https://sign.lagrangecore.org",
"signer_token": ""
},
"heartbeat": {
"enabled": true,
"interval": 15000
}
}| 字段 | 说明 |
|---|---|
log_level |
日志级别:TRACE / DEBUG / INFO / WARNING / ERROR / CRITICAL |
log_nf |
是否为日志输出启用 NerdFont |
connections |
通信连接列表(见下方连接类型) |
login.uin |
QQ 账号(不要真的写0哦) |
login.signer_url |
签名服务地址 |
login.signer_token |
签名服务 Token |
heartbeat.enabled |
是否启用心跳 |
heartbeat.interval |
心跳间隔(毫秒) |
| 连接类型 | type 值 |
说明 |
|---|---|---|
| 正向 WebSocket | ForwardWebSocket |
主动连接 OneBot 客户端 |
每类连接可能有额外的配置字段(如 ReverseWebSocket 的 api_url、event_url 等),详见 ForwardWebsocketConfig、
ReverseWebsocketConfig 等 Pydantic 模型定义。
Euler OneBot 使用 uv 进行依赖与项目管理:
uv syncAPI 类型
| API 名称 | 支持状态 |
|---|---|
| send_private_msg | ✅ |
| send_group_msg | ✅ |
| send_msg | ✅ |
| delete_msg | ✅ |
| get_msg | ✅ |
| get_forward_msg | ✅ |
| send_like | ✅ |
| send_poke | ✅ |
| send_forward_msg | ✅ |
| set_group_kick | ✅ |
| set_group_ban | ✅ |
| set_group_whole_ban | ✅ |
| set_group_admin | ✅ |
| set_group_card | ✅ |
| set_group_name | ✅ |
| set_group_leave | ✅ |
| set_group_special_title | ✅ |
| set_friend_add_request | ✅ |
| set_group_add_request | ✅ |
| group_reaction | ✅ |
| get_login_info | ✅ |
| get_stranger_info | ✅ |
| get_friend_list | ✅ |
| get_group_info | ✅ |
| get_group_list | ✅ |
| get_group_member_info | ✅ |
| get_group_member_list | ✅ |
| get_cookies | ✅ |
| get_csrf_token | ✅ |
| get_status | ❌ |
| get_version_info | ✅ |
事件类型
| 事件名称 | 支持状态 |
|---|---|
| message.private | ✅ |
| message.group | ✅ |
| notice.group_upload | ✅ |
| notice.friend_upload | ✅ |
| notice.group_admin | ✅ |
| notice.group_decrease | ✅ |
| notice.group_increase | ✅ |
| notice.group_ban | ✅ |
| notice.friend_add | ✅ |
| notice.group_recall | ✅ |
| notice.friend_recall | ✅ |
| notice.notify.poke | ✅ |
| notice.notify.lucky_king | ❌ |
| notice.notify.honor | ❌ |
| notice.reaction | ✅ |
| request.friend | ✅ |
| request.group | ✅ |
| meta_event.lifecycle | ❌ |
| meta_event.heartbeat | ✅ |
消息段类型
| 消息段类型 | 支持状态 |
|---|---|
| text | ✅ |
| at | ✅ |
| reply | ✅ |
| face | ✅ |
| poke | API |
| mface | ✅ |
| node | ✅ |
| forward | ✅ |
| image | ✅ |
| record | ✅ |
| video | 🚧 |
| contact | ❌ |
| location | ❌ |
| music | ❌ |
| custom | ❌ |
| redbag | ❌ |
| rps | ❌ |
| dice | ❌ |
| shake | ❌ |
| json | ✅ |
| xml | ❌ |
| markdown | ❌ |
通信方式
| 通信方式 | 支持状态 |
|---|---|
| HTTP | ❌ |
| HTTP Webhook | ❌ |
| 正向 WebSocket | ✅ |
| 反向 WebSocket | ❌ |
Footnotes
-
尽管这里的连接指向 LagrangeDev ,本仓库的依赖项中该包裹指向 我自己的fork ,这是因为我为了该项目,在fork中照葫芦画瓢做了一些自己的实现。因此,如果您安装了 LagrangeDev 提供的包裹,该项目可能无法正常运行。目前我的pr都跑完了,所以依赖又换回去了(www ↩