🔍 File Checker - 群文件有效性检查
一个为 AstrBot 设计的、功能强大的文件检查插件。它可以精准检查文件是否有效,并能立即提供内容预览,在一段时间后对有效文件进行二次复核,以确保文件的可用性。
✨ 功能
- 延时失效复核: 对初步检查完全有效的文件,在用户设定的延时后,进行第二次检查,专门捕获一段时间后失效的文件。
- 静默成功,失败提醒: 延时复核成功后会保持沉默,避免打扰;只在文件确认已失效时,才会发送通知。
- 媒体文件自动转换: 可自动检测上传的视频(MP4)和图片(JPG/PNG)文件,并以媒体形式重新发送。转换成功后 30 分钟删除群文件和本地缓存。
- 合并转发: 当文本预览或回复消息过长时,自动将内容转为合并转发形式发送,避免刷屏,优化群聊体验。
- 文本识别: 集成
chardet库,能自动识别并正确处理包括UTF-8,GBK,Big5(繁體中文) 在内的多种文本编码格式。 - 压缩文件处理: 对于已失效的文件,插件会自动将其加密压缩为
.zip格式并重新发送。这个新文件将接替原文件,进入延时复核队列。同时,插件也具备解压多种格式压缩包(ZIP/7Z/TAR/GZ/BZ2/XZ 等)并预览其中文本文件(支持30+种格式)的能力,若压缩包内无文本文件,则自动展示文件结构列表。 - 重复文件检测: 具有重复文件检测功能,能自动识别已上传过的文件,并提供文件的历史检查记录,避免重复上传。
🚀 安装
进入容器安装依赖:如果你的 AstrBot 运行在 Docker 容器中,请先进入容器内部。
docker ps # 找到你的 AstrBot 容器ID docker exec -it <容器ID> bash # 或者 sh然后在容器内安装
zip依赖库:# 对于 Debian/Ubuntu 系统 apt-get update && apt-get install zip p7zip-full # 对于 Alpine Linux 系统 apk add zip p7zip下载本仓库。
将整个
astrbot_plugin_file_checker文件夹放入astrbot的plugins目录中。重启 AstrBot。
⚙️ 配置
首次加载后,请在 AstrBot 后台 -> 插件 页面找到本插件进行设置。所有配置项都有详细的说明和提示。
💡 使用
本插件采用两阶段工作模式:
阶段一:即时预览与诊断
当白名单内的群聊有成员发送文件时,插件会在等待“预检延时”后,立即进行一次检查。
- 如果文件已存在: 插件将直接回复已有的历史记录,并结束流程。
- 如果文件在群文件中有效:
- 机器人会引用回复一条成功通知。
- 如果文件是文本或压缩包(ZIP/7Z/TAR 等),通知中还会附带内容预览或文件结构。
- 同时,此文件会被加入延时复核队列。
- 如果文件在群文件中失效:
- 机器人会引用回复一条特殊警告,例如:“⚠️ 您发送的文件已失效”。
- 如果失效文件的后缀包含于
repack_file_extensions,会将其重新打包成加密 ZIP 并发送。这个新文件将接替原文件,进入延时复核队列。
阶段二:延时复核
- 只有在第一阶段完全成功的文件,或者被重新打包的新文件,才会进入此阶段。
- 等待“复核延时”结束后,插件会再次通过群文件系统API检查该文件。
- 如果此时文件依然有效,机器人会保持沉默,不发送任何消息。
- 如果此时文件已经失效,机器人会再次引用回复原始消息,并发送“经xx秒后复核,已失效”的通知。
📝 版本记录
点击展开版本历史
- v1.7
- 新增 图片文件自动转换 。
- 新增 多格式压缩包支持。
- 优化 文本文件预览。
- v1.6
- 新增 视频文件自动转换 。
- 新增 失效文件自动删除 。
- v1.5
- 新增
file_size_threshold_mb配置项。 - 优化 自动补档功能。
- 优化 ZIP 预览功能。
- 新增
- v1.4
- 新增 重复文件检测 。
- v1.3
- 新增 压缩文件处理 。
- v1.2
- 新增 长消息自动合并转发 。
- 优化 文件识别逻辑。
- v1.1
- 新增 即时内容预览 。
- 新增 阶段一预检延时 和 文本预览长度 的自定义配置项。
- 优化 阶段一检查逻辑。
- v1.0
- 插件首次发布。
- 实现两阶段检查(即时检查 + 延时复核)核心功能。
- 支持群聊白名单、成功通知开关、复核延时等基础配置。
❓ 常见问题
Q: 插件突然不工作了,或者启动时报错,我该怎么办?
A: 在遇到任何插件运行错误或功能异常时,可按照以下步骤尝试解决:
- 重载插件
- 重启 AstrBot
- 重启 NapCat
❤️ 支持
- AstrBot 帮助文档
- 如果您在使用中遇到问题,欢迎在本仓库提交 Issue。