6 个版本
使用旧的 Rust 2015
0.3.1 | 2020 年 2 月 17 日 |
---|---|
0.3.0 | 2020 年 2 月 17 日 |
0.2.2 | 2017 年 10 月 16 日 |
0.1.1 | 2017 年 9 月 14 日 |
#1222 在 命令行工具
每月下载 27 次
13KB
175 行
TORMOV
TORrentMOVer
一个简单的脚本程序,用于将完成的种子移动到特定文件夹。
有时很容易让种子下载文件到通用目录,然后之后移动它。此程序通过
- 在文件夹中查找正则表达式模式来自动化此任务。您可以指定要处理的精确文件夹/文件。
- 检查下载是否完成。每个文件(如果有一个以上)都必须完成。
- 将文件/文件夹移动或链接到指定目录。
该程序是用 Rust 编写的,因此它非常快速且系统占用很小。源代码非常小,因此您可以快速检查它的功能。
安装
- 请确保已安装 Rust。如果您还没有,请从这里获取它 https://rust-lang.net.cn/en-US/。此程序已使用 rustc 夜间版本进行测试,但它应该也可以使用其他版本(我很懒,不想亲自测试它,抱歉 😄 )。
- 使用
cargo install tormov
安装工具。这将安装最新发布的版本。如果您想使用 master 分支,请使用cargo install --git https://github.com/MindFlavor/tormov
代替。 - 在控制台中键入
tormov
以测试程序执行。您会收到一个错误,因为缺少参数。我们将在下一节中介绍它们。
参数
TORMOV 预期从命令行接收两个参数
- 配置文件。
- 要分析的文件夹。
因此,例如,如果您有一个名为 tormov_config.json
的配置文件,并且您想检查 /var/lib/transmission-daemon/downloads/
,则可以编写
$ tormov tormov_config.json /var/lib/transmission-daemon/downloads/
配置文件
示例配置文件在此处可用: example_config.json。然而,其格式很简单。
{
"skipextension": "part",
"matches": [
{
"regex": "Arrow",
"destination": "/mnt/shows/Arrow",
"action": "Move"
},
{
"regex": "Big.Bang",
"destination": "/mnt/shows/The.big.bang.theory",
"action": "Move"
},
{
"regex": "Marvels.Agents.of.S.H.I.E.L.D.*",
"destination": "/mnt/shows/agents_of_the_shield",
"action": "Link"
}
]
}
skipextension
skipextension
是文件尚未准备好时附加的扩展名。大多数种子客户端使用 part
或 incomplete
,但请确保指定正确的扩展名。
matches
《matches》部分是你想要检查的条目数组。每个条目都必须具备
- 一个用于在字段
regex
中进行匹配的正则表达式。 - 在
destination
字段中的一个目的地。如果内容已完全下载(即在文件夹中没有任何带有skipextension
的文件),则文件/文件夹将被移动到该目的地。 - 如果所有规则都匹配,则要执行的操作。支持的操作是
Move
或Link
。后者将创建一个符号链接而不是移动文件。注意:目前链接只支持 Linux,如果你需要 Windows,请留言。
计划安排
虽然 TORMOV 没有调度程序,但使用 cron 作业或 systemd 很容易自动化。例如,使用 systemd,你可以通过创建两个文件来安排它。第一个是 tormov.service
,内容如下
[Unit]
Description=TORrent MOVer
[Service]
ExecStart=<full TORMOV bin path> <config> <folder>
另一个名为 tormow.timer
,具有以下计划
[Unit]
Description=Runs tormov every minute
[Timer]
OnBootSec=5min
OnUnitActiveSec=1min
Unit=tormov.service
[Install]
WantedBy=timers.target
现在只需启动并可选地通过以下方式启用计时器
$ sudo systemctl start tormov.timer
$ sudo systemctl enable tormov.timer
然后你可以像平常一样使用以下命令检查输出 sudo systemctl status tormov.service
依赖项
~2.8–4.5MB
~85K SLoC