ffe: File/Folder Extensible manipulator
可轻松地用 Python 来写插件的文件操作工具
最开始,我只是想写一个 "调换两个文件名" 的脚本,写好了又想写 "压缩加密上传一条龙" 的脚本,然后我就想,写一大堆脚本看起来一盘散沙,不整齐,而且对命令行的处理、对 TOML 文件的处理又有很多可以共用的代码。
于是我就想把这些脚本集合起来变成一个多功能软件,很自然就想到采用插件的方式比较合理,就这样做出了一个命令行插件工具,第一版是用 Go 语言做的 (看这里 https://v2ex.com/t/820116 ), 后来觉得还是用 Python 做比较合理,就有了这个项目。
在日常使用电脑的过程中,总有一些关于文件 /文件夹的操作是有规律、有重复性的,比如:
ffe 本身不解决任何具体问题,比如对文件进行改名、复制、移动等操作全部交给插件去做。
ffe 为你提供以下服务:
ffe run -f <recipe.toml>
命令即可一次性按顺序执行多个任务。对于插件作者来说,只需要专注于具体的业务逻辑即可,按照套路填写一些信息后就能获得以上全部功能。
对于用户来说,可以在安装前查看插件简介,可批量安装插件,不同的插件可以组合使用。
另外, CLI 与 TOML 的配合效果很不错, TOML 很直观,容易编辑,比纯 CLI 更直观,又比 GUI 更容易编程开发。(参考: toml.io)
最近我发现了一个神奇的网站 anonfiles.com, 它的优点是:
1.免费 2.容量大 3.保存时间长 4.国内可直接访问 5.有API 6.匿名
其中有 API 是我最看重的优点,而且它的 API 非常简单易用。
我做了一个名为 anon 的插件,可使用以下命令安装该插件
ffe install -i https://github.com/ahui2016/ffe/raw/main/recipes/anon.py
安装后,使用命令 ffe run -r anon <file>
即可匿名上传文件,上传成功后会自动复制分享地址到剪贴板。
使用命令 ffe info -r anon
可查看使用说明。
有时,我希望先压缩文件,再加密文件,最后上传到 AnonFile, 本来可以把这些功能全都做到一个插件里,但为了作为一个“任务组合”的例子,我把这些功能拆分为几个插件了。
拆分也有好处,因为有时候只想加密,有时只想压缩打包,而且拆分后程序代码也变得更好理解。
可逐个单独安装,也可以使用以下命令一次性安装我提供的全部插件:
ffe install -i https://github.com/ahui2016/ffe/raw/main/recipes/recipes.toml
安装后,使用 dump 命令可以生成 TOML 文件,比如 ffe dump -r mimi <file>
把多个任务的 TOML 内容复制到一个文件里,就可以形成一个组合,比如:
[[tasks]]
recipe = "mimi" # 第一个任务:加密
names = [
'file.txt',
]
[tasks.options]
suffix = ".mimi"
overwrite = false
[[tasks]]
recipe = "anon" # 第二个任务:匿名上传
names = [
'file.txt.mimi',
]
[tasks.options]
auto_copy = true
key = ""
然后使用命令 ffe run -f mimi-anon.toml
即可依次执行任务。如果有一个文件需要经常加密上传,这个任务组合就很方便了。还可以把打包压缩、删除文件等任务都添加进去,这甚至比 GUI 工具更灵活,编辑 TOML 文件也很直观。