koishi-plugin-revoke-image
v0.0.6
Published
通过图片对比撤回某些图片消息
Downloads
52
Readme
koishi-plugin-revoke-image
通过图片对比撤回某些图片消息
功能特性
- ✅ 自动监听QQ群组中的图片消息
- ✅ 使用感知哈希算法(dHash)进行图片相似度对比
- ✅ 当相似度达到95%以上时自动撤回消息
- ✅ 支持黑名单图片管理(添加、删除、列表、清空)
- ✅ 提供命令行和Web界面两种管理方式
- ✅ 可配置相似度阈值和启用/禁用功能
安装
npm install koishi-plugin-revoke-image配置
在 Koishi 配置文件中添加:
plugins:
revoke-image:
similarityThreshold: 0.95 # 相似度阈值(0-1之间,默认0.95)
enabled: true # 是否启用自动撤回功能(默认true)
allowedUserIds: # 允许使用插件命令的QQ号列表(必填)
- '283213563'
# - '另一个QQ号' # 可以添加多个QQ号使用方法
命令行管理
查看黑名单统计
revoke-image
# 或简写
ri添加图片到黑名单
# 方式1:提供图片URL
revoke-image.add <图片URL> [-d 描述]
# 或简写
ri.add <图片URL> [-d 描述]
# 方式2:发送图片消息后使用命令(不带参数)
ri.add [-d 描述]
# 示例
ri.add https://example.com/image.jpg -d "违规图片"
# 或者:发送图片消息,然后输入 "ri.add -d 违规图片"列出所有黑名单图片
revoke-image.list
# 或简写
ri.list从黑名单移除图片
revoke-image.remove <图片ID>
# 或简写
ri.remove <图片ID>清空黑名单
revoke-image.clear
# 或简写
ri.clearWeb界面管理
- 启动 Koishi 后,访问控制台
- 在侧边栏找到"图片撤回黑名单"页面
- 在Web界面中可以:
- 查看所有黑名单图片(带预览)
- 添加新图片到黑名单
- 删除黑名单中的图片
- 清空整个黑名单
工作原理
- 图片监听:插件监听所有QQ群组消息,检测是否包含图片
- 图片下载:下载用户发送的图片
- 哈希计算:使用差异哈希(dHash)算法计算图片的感知哈希值
- 相似度对比:将用户图片的哈希值与黑名单中所有图片的哈希值进行对比
- 自动撤回:如果相似度达到配置的阈值(默认95%),自动撤回该消息
技术细节
- 图片哈希算法:使用差异哈希(dHash)算法,将图片调整为9x8大小,计算相邻像素的差异
- 相似度计算:使用汉明距离计算两个哈希值的差异,相似度 = 1 - 汉明距离 / 哈希长度
- 数据存储:黑名单数据存储在
data/revoke-image/blacklist.json文件中
注意事项
- 确保机器人具有撤回消息的权限
- 图片下载和处理可能需要一些时间,建议在网络良好的环境下使用
- 相似度阈值设置过高可能导致误判,设置过低可能漏检
- 黑名单图片数量过多可能影响处理速度
开发
# 安装依赖
npm install
# 构建
npm run build
# 开发模式
npm run devLicense
MIT
