这是一个用于屏蔽群聊中广告的插件,诞生于一个朋友的需求。
通用匹配所有群聊消息,提取文本并对图片OCR,与预定义词库和用户定义词库进行模糊匹配。 会自动撤回并禁言,禁言时间可配置。 如你是管理员或群主,可以私聊bot订阅禁言通知,以防误禁言和扯皮。
Tip
主要针对 QQ 群聊环境进行开发和测试,其他平台不保证可用。
DONE:
- 对图片进行 OCR 识别
- 对文本进行模糊匹配
- 排除字符对识别影响,如"代.理"
- 支持自定义屏蔽词
- 支持管理员/群主私聊订阅禁言通知
- 支持自定义禁言时间
- 支持分群可选是否启用插件(仅data)
TODO:
- 支持自定义屏蔽词文件路径
- 支持拆分字,近形字,拼音判断
- 支持分群可选是否禁言,撤回,仅通知管理
- 支持二维码识别
- 用户自定义屏蔽词文件路径读取
- 管理员/群主私聊调整插件配置
以下提到的方法 任选其一 即可
[推荐] 使用 nb-cli 安装
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装nb plugin install nonebot-plugin-noadpls使用包管理器安装
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令pip
pip install nonebot-plugin-noadplspdm
pdm add nonebot-plugin-noadplspoetry
poetry add nonebot-plugin-noadplsconda
conda install nonebot-plugin-noadpls打开 nonebot2 项目根目录下的 pyproject.toml 文件, 在 [tool.nonebot] 部分的 plugins 项里追加写入
[tool.nonebot]
plugins = [
# ...
"nonebot_plugin_noadpls"
]在 nonebot2 项目的 .env 文件中的可选配置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| noadpls__enable | Bool | True | 是否启用插件 |
| noadpls__priority | Int | 10 | 插件优先级 |
| *noadpls__ban_pre_text | List[str] | ["advertisement"] | 启用的预定义屏蔽词词库 |
- *详细内容请参见 TelechaBot/cleanse-speech
TL;DR 太长不看版
advertisement:默认中文广告词库pornographic:默认中文色情词库politics: 默认中文敏感词库general: 默认中文通用词库netease: 网易屏蔽词库
插件同时使用 nonebot-plugin-localstore 插件存储 可变配置,插件数据和缓存文件,具体配置方法请参见 nonebot-plugin-localstore 存储路径 和 nonebot-plugin-localstore 配置项
将会存储在 localstore 定义的配置存储文件中的配置项
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| ban_time | List[int] | [60, 300, 1800, 3600, 86400] | 禁言时间列表 |
| ban_text | List[str] | [ ] | 用户自定义屏蔽词 |
| ban_text_path | List[str] | [ ] | 用户自定义屏蔽词文件路径(还没写好) |
Warning
不推荐用户自行更改可变配置文件
推荐使用私聊指令进行更新 指令更新还没写好()
| 指令 | 权限 | 需要@ | 范围 | 说明 |
|---|---|---|---|---|
| 所有人 | 否 | 群聊 | 通用匹配所有消息 | |
| *接收通知 群号 | 管理以上 | 否 | 私聊 | 开启接收禁言通知 |
| *关闭通知 群号 | 管理以上 | 否 | 私聊 | 取消接收禁言通知 |
| *nap_on **群号 | 管理以上 | 否 | 私聊 | 开启群检测 |
| *nap_off **群号 | 管理以上 | 否 | 私聊 | 关闭群检测 |
- *非管理以上权限也可私聊,但是会提示无权限
- **当在群聊环境中使用时,
群号会自动填充为当前群号
QQ:3214528055
Discord:@洛初
Telegram:@Furinature
吹水群:611124274
邮箱:[email protected]
感谢帮忙测试的各位群友~
感谢以下项目:
- nonebot-plugin-localstore 提供了本地文件存储支持
- TelechaBot/cleanse-speech 使用了基础屏蔽机制和预定义词库
- nonebot_paddle_ocr 参考了图片处理部分逻辑并且使用了其在线OCR
- PaddleOCR 图片部分的OCR支持
- Nonebot 本插件运行的框架
以及,使用这个插件的你~
感谢大家的赞助!你们的赞助将是我继续创作的动力!
本项目采用 MIT License 许可证,详情请参阅 LICENSE 文件。
- Release 0.2.1 - v0.2.1 - 2025-06-28
- 修正管理和订阅指令超级用户不可用的问题 a659c208de76d7b520cffe1a17d72b578603c0c4
更多Release请见 Releases
完整更新日志请见 CHANGELOG.md




