编写自定义脚本
准备脚本信息
在 Seer 中添加脚本时,程序会先读取变量 SCRIPT_INFO。
- 如果不存在
SCRIPT_INFO,则会尝试调用script_info()函数。 - 两者都不存在,或者返回值不是字典类型时,添加会失败。
必填字段
name:脚本名称type:脚本类型extensions:匹配的后缀名列表arguments:命令行参数,不包含python.exe和py文件名本身
type 目前有三个值:
0:预览1:控制栏2:属性列表
extensions 必须是列表类型。
- 当你需要匹配文件夹时,使用
${type_folder}。
示例:
SCRIPT_INFO = {
"name": "unzip",
"type": 1,
"extensions": ["zip", "rar", "7z"],
"arguments": ["-e", "${7z}", "-i", "${input_file}", "-o", __save_path, "-w"],
# optional below
"author": "Corey",
"version": "1.0.1",
"description": "unzip archive file here",
# Controls only
"icon_path": "icon.png",
}
编写功能
预览
转换类型脚本会先读取输入文件,再把结果转换为 Seer 内置支持的格式,例如 PDF、图片或 HTML。
- 例如 epub 脚本,就是把输入文件转换成 HTML 再交给 Seer 预览。
控制栏
当预览加载成功后,Seer 会在控制栏左侧显示一个对应按钮。
- 点击按钮后,就会执行该脚本。
- 例如 zipfolder 会把当前预览的文件夹压缩成 zip,并保存到当前目录。
属性列表
当预览成功后,Seer 会自动调用属性脚本。
- 脚本负责解析输入文件。
- 然后把用于显示的数据保存为指定位置的 json 文件。
- Seer 再读取这个 json 并显示到属性面板里。
- 例如 sha512 用于计算 exe 和 dll 文件的 sha512 值。
变量说明
这些占位符会在运行前被替换成真实值,并作为参数传给脚本。
${7z}:Seer 附带的7z.exe绝对路径
C:/Program Files (x86)/Seer/plugins/7z.exe
${seer_exe}:Seer.exe的绝对路径
C:/Program Files (x86)/Seer/Seer.exe
${seer_dir}:Seer.exe所在目录
C:/Program Files (x86)/Seer/
${input_file}:当前目标文件路径,可以是文件,也可以是文件夹
/file/to/the_preview_file
${output_file}:输出文件路径,一般是临时目录加随机文件名,且不带扩展名
/path/to/temp_folder/random_str
- 当脚本类型是 `Property` 时,这个值是必须的。
- 当脚本类型是 `Preview`,且脚本要把未知格式转换成内置格式时,这个值也是必须的。
-
${no_cache}:仅用于Preview- 用来通知 Seer 在预览关闭后删除临时文件。
- 这是给 Seer 的标记,不会作为命令行参数传给脚本。
-
${type_folder}:仅用于Controls- 由于文件夹没有后缀名,所以用它来匹配文件夹类型。
-
${use_backslash}- 用反斜杠
\代替正斜杠/。
- 用反斜杠