转换类型
这是目前大部分插件的运行方式。简单来说就是插件程序接收两个参数,把输入文件解析后以内置格式的形式保存。
- 假设你需要预览一个安卓安装包文件,但 Seer 还不支持。在添加 ApkMetaInfo2Json 插件后对 weixin.apk 文件进行预览
- Seer 响应时会先根据设置里的插件配置对文件后缀名进行匹配,找到 apk 后,运行对应的插件程序 ApkMetaInfo2Json.exe ,并对命令行的参数进行替换
${input_file}会被替换为 weixin.apk 的完整路径${output_file}为 Seer 的临时目录加上指定文件名,通常临时目录为 %TEMP%/Seer,指定文件名为触发文件的 md5 值(不含后缀名)- 对于 ApkMetaInfo2Json 插件来说,最后的运行命令为
"/path/to/ApkMetaInfo2Json.exe" "/path/to/weixin.apk" "%TEMP%/Seer/__md5value__.json"
- 在 ApkMetaInfo2Json 程序运行完成退出后,Seer 会去寻找
${output_file}文件,然后对其进行加载显示。
- 插件可为任何可执行文件
- CMD 脚本:https://github.com/ccseer/Seer-plugins/tree/master/cmd_rename
- BAT 脚本:https://github.com/ccseer/Seer-plugins/tree/master/bat_epub
- 任何提供转换功能的第三方程序
- dll_lib_exports: 这是从 Windows 系统的不知名角落找到的
- ImageMagick:https://imagemagick.org/index.php
- exiftool: https://exiftool.org/
- 自定义程序
- Torrent2Json:https://github.com/ccseer/Seer-plugins/tree/master/Qt_Torrent2Json
- ApkMetaInfo2Json: https://github.com/ccseer/Seer-plugins/tree/master/Qt_ApkMetaInfo2Json
- 通常转换类型的插件都会生成一个临时文件,也就是转换后的文件
- Seer 会自动删除超过 20 天的临时文件
- 在命令行里添加
${no_cache}会让 Seer 在预览结束时删掉临时文件 - 优点是没有硬盘占用
- 缺点是遇到了同样的文件,每次都需要调用插件进行转换
- 此参数是通知 Seer 的,不会当成命令行参数传给插件。适用于那些文件内容会频繁被修改的文件类型。
DLL 类型
通过 Qt/C++ 编写插件编译成动态库。
- 运行效率上有优势,it's cpp
- 发布时由于共享主程序的运行环境,所以分发插件时依赖更少,包更小
Reference Projects
You can refer to the following example plugins:
- F3DViewer - 3D file viewer plugin
- OfficeViewer - Office document viewer plugin
- FontViewer - Font preview plugin
- JsonTreeViewer - JSON structure viewer plugin