Name | nonebot-adapter-efchat JSON |
Version |
0.1.8
JSON |
| download |
home_page | None |
Summary | A NoneBot adapter for EFChat |
upload_time | 2025-08-04 14:31:03 |
maintainer | None |
docs_url | None |
author | molanp |
requires_python | <4.0,>=3.9 |
license | MIT |
keywords |
bot
efchat
wtek
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<p align="center">
<a href="https://nonebot.dev/"><img src="https://nonebot.dev/logo.png" width="200" height="200" alt="nonebot"></a>
</p>
<div align="center">
# NoneBot-Adapter-EFChat
_✨ NoneBot2 EFChat 协议适配 / EFChat Protocol Adapter for NoneBot2 ✨_
</div>
## EFChat适配器简述
EFChat Adapter 是一个适用于 **[EFChat聊天室](https://efchat.melon.fish)** 的 **NoneBot 适配器**,可以轻松地在 EFChat 聊天室中开发机器人,并使用 NoneBot 生态来构建聊天机器人。
> [!IMPORTANT]
>
> 为了避免造成不必要的麻烦,本适配器不会支持以下功能:
> 1. **其他有可能危害聊天室安全的功能**
---
## 🚀 特性
- 🔌 **NoneBot 适配**,可直接集成到 NoneBot 插件系统,实现灵活的机器人开发
- 📡 **自动处理 EFChat 事件**,支持房间消息、私聊、系统通知等
- ✨ **支持多Bot**, 支持同时运行并管理多个bot
---
## 📦 安装
```bash
pip install nonebot-adapter-efchat
```
---
## 🔧 配置
在 `bot.py` 中启用 EFChat 适配器:
```python
from nonebot import get_driver
from nonebot.adapters.efchat import Adapter
driver = get_driver()
driver.register_adapter(Adapter)
```
在 `.env` 文件中添加:
```ini
DRIVER=~websockets+~httpx
EFCHAT_BOTS = '
[
{
"nick": "EFChatBot",
"password": "", // 可选配置
"channel": "PublicR",
"head": "https://efchat.melon.fish/imgs/ava.png", // 可选,为空使用默认头像
"token": "",
"ignore_self": true // 默认忽略自身消息
}
]
'
```
* 配置项`token`是必填项;[获取TOKEN](get_token.md)
* 如果Bot将会拥有管理员权限,请提供`password`字段以确保账号安全
- `nick`是bot账号,同时也是在聊天室里显示的昵称
- `channel`是Bot活跃的房间名称
- `head`是Bot的头像url地址
> ⚠️ **暂不支持一个bot同时连接多个房间**
---
## [📖 API 参考](api.md)
---
## 💬 使用示例
### **消息回显**
在 `plugins/echo.py` 中创建一个简单的回显插件:
```python
from nonebot import on_message
from nonebot.adapters.efchat import MessageEvent
echo = on_message()
@echo.handle()
async def handle_echo(event: MessageEvent):
await echo.send(f"你发送的消息是: {event.get_message()}")
```
机器人发送的消息默认不保存到聊天记录,如果需要保存,请在发送消息时传入`show=True`
例如
```py
await matcher.send("xxx", show=True)
```
---
## 🔨 开发与贡献
欢迎贡献代码!请遵循以下流程:
1. **Fork 本仓库** 并克隆代码。
2. **提交 Pull Request**,描述你的改动。
---
## 📜 许可证
本项目基于 **MIT 许可证** 开源,你可以自由使用和修改。
Raw data
{
"_id": null,
"home_page": null,
"name": "nonebot-adapter-efchat",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "bot, efchat, wtek",
"author": "molanp",
"author_email": "molanpp@outlook.com",
"download_url": "https://files.pythonhosted.org/packages/34/bc/e48b345628eae36f09c529c1251ffb13eba509e54024caadac291de848e4/nonebot_adapter_efchat-0.1.8.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <a href=\"https://nonebot.dev/\"><img src=\"https://nonebot.dev/logo.png\" width=\"200\" height=\"200\" alt=\"nonebot\"></a>\n</p>\n\n<div align=\"center\">\n\n# NoneBot-Adapter-EFChat\n\n_\u2728 NoneBot2 EFChat \u534f\u8bae\u9002\u914d / EFChat Protocol Adapter for NoneBot2 \u2728_\n\n</div>\n\n## EFChat\u9002\u914d\u5668\u7b80\u8ff0\n\nEFChat Adapter \u662f\u4e00\u4e2a\u9002\u7528\u4e8e **[EFChat\u804a\u5929\u5ba4](https://efchat.melon.fish)** \u7684 **NoneBot \u9002\u914d\u5668**\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u5728 EFChat \u804a\u5929\u5ba4\u4e2d\u5f00\u53d1\u673a\u5668\u4eba\uff0c\u5e76\u4f7f\u7528 NoneBot \u751f\u6001\u6765\u6784\u5efa\u804a\u5929\u673a\u5668\u4eba\u3002\n\n> [!IMPORTANT]\n>\n> \u4e3a\u4e86\u907f\u514d\u9020\u6210\u4e0d\u5fc5\u8981\u7684\u9ebb\u70e6\uff0c\u672c\u9002\u914d\u5668\u4e0d\u4f1a\u652f\u6301\u4ee5\u4e0b\u529f\u80fd\uff1a\n> 1. **\u5176\u4ed6\u6709\u53ef\u80fd\u5371\u5bb3\u804a\u5929\u5ba4\u5b89\u5168\u7684\u529f\u80fd**\n\n---\n\n## \ud83d\ude80 \u7279\u6027\n- \ud83d\udd0c **NoneBot \u9002\u914d**\uff0c\u53ef\u76f4\u63a5\u96c6\u6210\u5230 NoneBot \u63d2\u4ef6\u7cfb\u7edf\uff0c\u5b9e\u73b0\u7075\u6d3b\u7684\u673a\u5668\u4eba\u5f00\u53d1\n- \ud83d\udce1 **\u81ea\u52a8\u5904\u7406 EFChat \u4e8b\u4ef6**\uff0c\u652f\u6301\u623f\u95f4\u6d88\u606f\u3001\u79c1\u804a\u3001\u7cfb\u7edf\u901a\u77e5\u7b49\n- \u2728 **\u652f\u6301\u591aBot**\uff0c \u652f\u6301\u540c\u65f6\u8fd0\u884c\u5e76\u7ba1\u7406\u591a\u4e2abot\n\n---\n\n## \ud83d\udce6 \u5b89\u88c5\n```bash\npip install nonebot-adapter-efchat\n```\n---\n\n## \ud83d\udd27 \u914d\u7f6e\n\u5728 `bot.py` \u4e2d\u542f\u7528 EFChat \u9002\u914d\u5668\uff1a\n```python\nfrom nonebot import get_driver\nfrom nonebot.adapters.efchat import Adapter\n\ndriver = get_driver()\ndriver.register_adapter(Adapter)\n```\n\n\u5728 `.env` \u6587\u4ef6\u4e2d\u6dfb\u52a0\uff1a\n```ini\nDRIVER=~websockets+~httpx\n\nEFCHAT_BOTS = '\n[\n {\n \"nick\": \"EFChatBot\",\n \"password\": \"\", // \u53ef\u9009\u914d\u7f6e\n \"channel\": \"PublicR\",\n \"head\": \"https://efchat.melon.fish/imgs/ava.png\", // \u53ef\u9009\uff0c\u4e3a\u7a7a\u4f7f\u7528\u9ed8\u8ba4\u5934\u50cf\n \"token\": \"\",\n \"ignore_self\": true // \u9ed8\u8ba4\u5ffd\u7565\u81ea\u8eab\u6d88\u606f\n }\n]\n'\n```\n* \u914d\u7f6e\u9879`token`\u662f\u5fc5\u586b\u9879;[\u83b7\u53d6TOKEN](get_token.md)\n* \u5982\u679cBot\u5c06\u4f1a\u62e5\u6709\u7ba1\u7406\u5458\u6743\u9650\uff0c\u8bf7\u63d0\u4f9b`password`\u5b57\u6bb5\u4ee5\u786e\u4fdd\u8d26\u53f7\u5b89\u5168\n- `nick`\u662fbot\u8d26\u53f7\uff0c\u540c\u65f6\u4e5f\u662f\u5728\u804a\u5929\u5ba4\u91cc\u663e\u793a\u7684\u6635\u79f0\n- `channel`\u662fBot\u6d3b\u8dc3\u7684\u623f\u95f4\u540d\u79f0\n- `head`\u662fBot\u7684\u5934\u50cfurl\u5730\u5740\n\n> \u26a0\ufe0f **\u6682\u4e0d\u652f\u6301\u4e00\u4e2abot\u540c\u65f6\u8fde\u63a5\u591a\u4e2a\u623f\u95f4**\n\n---\n\n## [\ud83d\udcd6 API \u53c2\u8003](api.md)\n\n---\n\n## \ud83d\udcac \u4f7f\u7528\u793a\u4f8b\n\n### **\u6d88\u606f\u56de\u663e**\n\u5728 `plugins/echo.py` \u4e2d\u521b\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u56de\u663e\u63d2\u4ef6\uff1a\n```python\nfrom nonebot import on_message\nfrom nonebot.adapters.efchat import MessageEvent\n\necho = on_message()\n\n@echo.handle()\nasync def handle_echo(event: MessageEvent):\n await echo.send(f\"\u4f60\u53d1\u9001\u7684\u6d88\u606f\u662f: {event.get_message()}\")\n```\n\n\u673a\u5668\u4eba\u53d1\u9001\u7684\u6d88\u606f\u9ed8\u8ba4\u4e0d\u4fdd\u5b58\u5230\u804a\u5929\u8bb0\u5f55\uff0c\u5982\u679c\u9700\u8981\u4fdd\u5b58\uff0c\u8bf7\u5728\u53d1\u9001\u6d88\u606f\u65f6\u4f20\u5165`show=True`\n\n\u4f8b\u5982\n```py\nawait matcher.send(\"xxx\", show=True)\n```\n---\n\n## \ud83d\udd28 \u5f00\u53d1\u4e0e\u8d21\u732e\n\u6b22\u8fce\u8d21\u732e\u4ee3\u7801\uff01\u8bf7\u9075\u5faa\u4ee5\u4e0b\u6d41\u7a0b\uff1a\n1. **Fork \u672c\u4ed3\u5e93** \u5e76\u514b\u9686\u4ee3\u7801\u3002\n2. **\u63d0\u4ea4 Pull Request**\uff0c\u63cf\u8ff0\u4f60\u7684\u6539\u52a8\u3002\n\n---\n\n## \ud83d\udcdc \u8bb8\u53ef\u8bc1\n\u672c\u9879\u76ee\u57fa\u4e8e **MIT \u8bb8\u53ef\u8bc1** \u5f00\u6e90\uff0c\u4f60\u53ef\u4ee5\u81ea\u7531\u4f7f\u7528\u548c\u4fee\u6539\u3002\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A NoneBot adapter for EFChat",
"version": "0.1.8",
"project_urls": {
"Homepage": "https://github.com/molanp/nonebot_adapter_efchat",
"Repository": "https://github.com/molanp/nonebot_adapter_efchat"
},
"split_keywords": [
"bot",
" efchat",
" wtek"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "68959c8af41c1ee2d29254bbf2e5f086cc61db3aa38d663144d6fc5262093d6e",
"md5": "f5c414611874b391022a77a1d09d7378",
"sha256": "dc05db46d640fdf15fab533d168274c1f16c4a8ac7c510ddb02d4033981134ee"
},
"downloads": -1,
"filename": "nonebot_adapter_efchat-0.1.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f5c414611874b391022a77a1d09d7378",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 17511,
"upload_time": "2025-08-04T14:31:02",
"upload_time_iso_8601": "2025-08-04T14:31:02.835993Z",
"url": "https://files.pythonhosted.org/packages/68/95/9c8af41c1ee2d29254bbf2e5f086cc61db3aa38d663144d6fc5262093d6e/nonebot_adapter_efchat-0.1.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "34bce48b345628eae36f09c529c1251ffb13eba509e54024caadac291de848e4",
"md5": "eeb68679886eefd021bf87dbad79caaf",
"sha256": "79912b8a9fe355102cb31ea4d4b05dd2660c08354d9d4ef0f4b769d0915e4ea9"
},
"downloads": -1,
"filename": "nonebot_adapter_efchat-0.1.8.tar.gz",
"has_sig": false,
"md5_digest": "eeb68679886eefd021bf87dbad79caaf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 14788,
"upload_time": "2025-08-04T14:31:03",
"upload_time_iso_8601": "2025-08-04T14:31:03.966897Z",
"url": "https://files.pythonhosted.org/packages/34/bc/e48b345628eae36f09c529c1251ffb13eba509e54024caadac291de848e4/nonebot_adapter_efchat-0.1.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-04 14:31:03",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "molanp",
"github_project": "nonebot_adapter_efchat",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "nonebot-adapter-efchat"
}