# 聊天屏蔽词插件
聊天屏蔽词插件是所有`adapter`的通用的插件,可以对用户发送的词进行检测然后进行自定义操作,例如屏蔽词中加入一些辱骂词汇,检测到辱骂词汇时进行撤回或者禁言等操作,也可以对机器人发送的进行检测,如果存在屏蔽词进行拦截发送或者替换屏蔽词。
- [聊天屏蔽词插件](#聊天屏蔽词插件)
- [如何添加屏蔽词](#如何添加屏蔽词)
- [机器人发送的消息进行屏蔽词检测](#机器人发送的消息进行屏蔽词检测)
- [将机器人发送的屏蔽词进行替换](#将机器人发送的屏蔽词进行替换)
- [接收用户消息屏蔽词检测](#接收用户消息屏蔽词检测)
## 如何添加屏蔽词
1. 配置`env`中的`blockwords`配置项例如
```env
blockwords=["鸡", "垃圾", "废物"]
```
2. 通过导入文件的方式可以配置`env`中的`blockwords_file`
```env
blockwords_file="blockwords.txt"
```
3. 多文件导入方式
```env
blockwords_file=["blockwords1.txt", "blockwords2.txt"]
```
## 机器人发送的消息进行屏蔽词检测
在`env`中配置`blockwords_bot`开启`bot`发送消息检测
```env
blockwords_bot = True # 开启后机器人发送的消息会被进行检测
```
![image-20231003153146954](docs/images/image-20231003153146954.png)
> 上述例子中,因为检测到机器人发送的消息存在屏蔽词,插件会拦截机器人发送的消息,如果不希望进行拦截,可以查看如何[将机器人发送的屏蔽词进行替换](#将机器人发送的屏蔽词进行替换)
### 将机器人发送的屏蔽词进行替换
在`env`中配置`blockwords_replace`配置项,以下是`blockwords_replace`配置项使用例子。
```env
BLOCKWORDS_REPLACE="*" # 将屏蔽词替换为*
```
![image-20231003154251844](docs/images/image-20231003154251844.png)
## 接收用户消息屏蔽词检测
在`env`中配置`blockwords_user`开启接收用户所发送的消息进行检测
```env
blockwords_user = True # 开启后机器人发送的消息会被进行检测
```
在检测到屏蔽词时会触发到`blockwords_matcher`,可以导入`blockwords_matcher`对触发屏蔽词后进行自定义操作
```python
from nonebot.internal.matcher import Matcher
from nonebot_plugin_blockwords import blockwords_matcher
@blockwords_matcher.handle()
async def _(matcher: Matcher):
await matcher.finish("不许说脏话")
```
![image-20231003155210208](docs/images/image-20231003155210208.png)
Raw data
{
"_id": null,
"home_page": "",
"name": "nonebot-plugin-blockwords",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<4.0",
"maintainer_email": "",
"keywords": "bot,nonebot2,nonebot-plugin,blockwords",
"author": "MelodyKnit",
"author_email": "2711402357@qq.com",
"download_url": "https://files.pythonhosted.org/packages/a4/cb/0f5f13cedbfe3db375dc7b49fbfbd7f7062103901c96b4c71790fbc6c555/nonebot_plugin_blockwords-0.2.1.tar.gz",
"platform": null,
"description": "# \u804a\u5929\u5c4f\u853d\u8bcd\u63d2\u4ef6\n\n\u804a\u5929\u5c4f\u853d\u8bcd\u63d2\u4ef6\u662f\u6240\u6709`adapter`\u7684\u901a\u7528\u7684\u63d2\u4ef6\uff0c\u53ef\u4ee5\u5bf9\u7528\u6237\u53d1\u9001\u7684\u8bcd\u8fdb\u884c\u68c0\u6d4b\u7136\u540e\u8fdb\u884c\u81ea\u5b9a\u4e49\u64cd\u4f5c\uff0c\u4f8b\u5982\u5c4f\u853d\u8bcd\u4e2d\u52a0\u5165\u4e00\u4e9b\u8fb1\u9a82\u8bcd\u6c47\uff0c\u68c0\u6d4b\u5230\u8fb1\u9a82\u8bcd\u6c47\u65f6\u8fdb\u884c\u64a4\u56de\u6216\u8005\u7981\u8a00\u7b49\u64cd\u4f5c\uff0c\u4e5f\u53ef\u4ee5\u5bf9\u673a\u5668\u4eba\u53d1\u9001\u7684\u8fdb\u884c\u68c0\u6d4b\uff0c\u5982\u679c\u5b58\u5728\u5c4f\u853d\u8bcd\u8fdb\u884c\u62e6\u622a\u53d1\u9001\u6216\u8005\u66ff\u6362\u5c4f\u853d\u8bcd\u3002\n\n- [\u804a\u5929\u5c4f\u853d\u8bcd\u63d2\u4ef6](#\u804a\u5929\u5c4f\u853d\u8bcd\u63d2\u4ef6)\n - [\u5982\u4f55\u6dfb\u52a0\u5c4f\u853d\u8bcd](#\u5982\u4f55\u6dfb\u52a0\u5c4f\u853d\u8bcd)\n - [\u673a\u5668\u4eba\u53d1\u9001\u7684\u6d88\u606f\u8fdb\u884c\u5c4f\u853d\u8bcd\u68c0\u6d4b](#\u673a\u5668\u4eba\u53d1\u9001\u7684\u6d88\u606f\u8fdb\u884c\u5c4f\u853d\u8bcd\u68c0\u6d4b)\n - [\u5c06\u673a\u5668\u4eba\u53d1\u9001\u7684\u5c4f\u853d\u8bcd\u8fdb\u884c\u66ff\u6362](#\u5c06\u673a\u5668\u4eba\u53d1\u9001\u7684\u5c4f\u853d\u8bcd\u8fdb\u884c\u66ff\u6362)\n - [\u63a5\u6536\u7528\u6237\u6d88\u606f\u5c4f\u853d\u8bcd\u68c0\u6d4b](#\u63a5\u6536\u7528\u6237\u6d88\u606f\u5c4f\u853d\u8bcd\u68c0\u6d4b)\n\n## \u5982\u4f55\u6dfb\u52a0\u5c4f\u853d\u8bcd\n\n1. \u914d\u7f6e`env`\u4e2d\u7684`blockwords`\u914d\u7f6e\u9879\u4f8b\u5982\n\n ```env\n blockwords=[\"\u9e21\", \"\u5783\u573e\", \"\u5e9f\u7269\"]\n ```\n\n2. \u901a\u8fc7\u5bfc\u5165\u6587\u4ef6\u7684\u65b9\u5f0f\u53ef\u4ee5\u914d\u7f6e`env`\u4e2d\u7684`blockwords_file`\n\n ```env\n blockwords_file=\"blockwords.txt\"\n ```\n\n3. \u591a\u6587\u4ef6\u5bfc\u5165\u65b9\u5f0f\n\n ```env\n blockwords_file=[\"blockwords1.txt\", \"blockwords2.txt\"]\n ```\n\n## \u673a\u5668\u4eba\u53d1\u9001\u7684\u6d88\u606f\u8fdb\u884c\u5c4f\u853d\u8bcd\u68c0\u6d4b\n\n\u5728`env`\u4e2d\u914d\u7f6e`blockwords_bot`\u5f00\u542f`bot`\u53d1\u9001\u6d88\u606f\u68c0\u6d4b\n\n```env\nblockwords_bot = True # \u5f00\u542f\u540e\u673a\u5668\u4eba\u53d1\u9001\u7684\u6d88\u606f\u4f1a\u88ab\u8fdb\u884c\u68c0\u6d4b\n```\n\n![image-20231003153146954](docs/images/image-20231003153146954.png)\n\n> \u4e0a\u8ff0\u4f8b\u5b50\u4e2d\uff0c\u56e0\u4e3a\u68c0\u6d4b\u5230\u673a\u5668\u4eba\u53d1\u9001\u7684\u6d88\u606f\u5b58\u5728\u5c4f\u853d\u8bcd\uff0c\u63d2\u4ef6\u4f1a\u62e6\u622a\u673a\u5668\u4eba\u53d1\u9001\u7684\u6d88\u606f\uff0c\u5982\u679c\u4e0d\u5e0c\u671b\u8fdb\u884c\u62e6\u622a\uff0c\u53ef\u4ee5\u67e5\u770b\u5982\u4f55[\u5c06\u673a\u5668\u4eba\u53d1\u9001\u7684\u5c4f\u853d\u8bcd\u8fdb\u884c\u66ff\u6362](#\u5c06\u673a\u5668\u4eba\u53d1\u9001\u7684\u5c4f\u853d\u8bcd\u8fdb\u884c\u66ff\u6362)\n\n### \u5c06\u673a\u5668\u4eba\u53d1\u9001\u7684\u5c4f\u853d\u8bcd\u8fdb\u884c\u66ff\u6362\n\n\u5728`env`\u4e2d\u914d\u7f6e`blockwords_replace`\u914d\u7f6e\u9879\uff0c\u4ee5\u4e0b\u662f`blockwords_replace`\u914d\u7f6e\u9879\u4f7f\u7528\u4f8b\u5b50\u3002\n\n```env\nBLOCKWORDS_REPLACE=\"*\" # \u5c06\u5c4f\u853d\u8bcd\u66ff\u6362\u4e3a*\n```\n\n![image-20231003154251844](docs/images/image-20231003154251844.png)\n\n## \u63a5\u6536\u7528\u6237\u6d88\u606f\u5c4f\u853d\u8bcd\u68c0\u6d4b\n\n\u5728`env`\u4e2d\u914d\u7f6e`blockwords_user`\u5f00\u542f\u63a5\u6536\u7528\u6237\u6240\u53d1\u9001\u7684\u6d88\u606f\u8fdb\u884c\u68c0\u6d4b\n\n```env\nblockwords_user = True # \u5f00\u542f\u540e\u673a\u5668\u4eba\u53d1\u9001\u7684\u6d88\u606f\u4f1a\u88ab\u8fdb\u884c\u68c0\u6d4b\n```\n\n\u5728\u68c0\u6d4b\u5230\u5c4f\u853d\u8bcd\u65f6\u4f1a\u89e6\u53d1\u5230`blockwords_matcher`\uff0c\u53ef\u4ee5\u5bfc\u5165`blockwords_matcher`\u5bf9\u89e6\u53d1\u5c4f\u853d\u8bcd\u540e\u8fdb\u884c\u81ea\u5b9a\u4e49\u64cd\u4f5c\n\n```python\nfrom nonebot.internal.matcher import Matcher\nfrom nonebot_plugin_blockwords import blockwords_matcher\n\n@blockwords_matcher.handle()\nasync def _(matcher: Matcher):\n await matcher.finish(\"\u4e0d\u8bb8\u8bf4\u810f\u8bdd\")\n```\n\n![image-20231003155210208](docs/images/image-20231003155210208.png)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "nonebot\u804a\u5929\u5c4f\u853d\u8bcd\u63d2\u4ef6",
"version": "0.2.1",
"project_urls": null,
"split_keywords": [
"bot",
"nonebot2",
"nonebot-plugin",
"blockwords"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "daea1e345706d0197e6c800500589debab3f20e76911291e13ac7b20e5a1fa9e",
"md5": "a71a8fbdd518dee455fd6b40e4baa2bb",
"sha256": "44c3c07be3c0cfd529ae669a1496b76421582cf7c117632420a47d2944a659be"
},
"downloads": -1,
"filename": "nonebot_plugin_blockwords-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a71a8fbdd518dee455fd6b40e4baa2bb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4.0",
"size": 10207,
"upload_time": "2023-11-17T12:30:39",
"upload_time_iso_8601": "2023-11-17T12:30:39.467239Z",
"url": "https://files.pythonhosted.org/packages/da/ea/1e345706d0197e6c800500589debab3f20e76911291e13ac7b20e5a1fa9e/nonebot_plugin_blockwords-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a4cb0f5f13cedbfe3db375dc7b49fbfbd7f7062103901c96b4c71790fbc6c555",
"md5": "933ea200f5f2a393de0971d629624160",
"sha256": "136bb6f414720a41b64efbb52394b92beb6710910c918371f51854f927247540"
},
"downloads": -1,
"filename": "nonebot_plugin_blockwords-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "933ea200f5f2a393de0971d629624160",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4.0",
"size": 7232,
"upload_time": "2023-11-17T12:30:41",
"upload_time_iso_8601": "2023-11-17T12:30:41.444219Z",
"url": "https://files.pythonhosted.org/packages/a4/cb/0f5f13cedbfe3db375dc7b49fbfbd7f7062103901c96b4c71790fbc6c555/nonebot_plugin_blockwords-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-17 12:30:41",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "nonebot-plugin-blockwords"
}