#symlink #file #regex #torrent

app tormov

TORrent MOVer,一个简单的工具,用于移动(或链接)没有不完整文件的正则表达式文件夹

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 次

MIT 许可证

13KB
175

TORMOV

legal

Crate cratedown cratelastdown

tag release commitssince

TORrentMOVer

一个简单的脚本程序,用于将完成的种子移动到特定文件夹。

有时很容易让种子下载文件到通用目录,然后之后移动它。此程序通过

  1. 在文件夹中查找正则表达式模式来自动化此任务。您可以指定要处理的精确文件夹/文件。
  2. 检查下载是否完成。每个文件(如果有一个以上)都必须完成。
  3. 将文件/文件夹移动或链接到指定目录。

该程序是用 Rust 编写的,因此它非常快速且系统占用很小。源代码非常小,因此您可以快速检查它的功能。

安装

  1. 请确保已安装 Rust。如果您还没有,请从这里获取它 https://rust-lang.net.cn/en-US/。此程序已使用 rustc 夜间版本进行测试,但它应该也可以使用其他版本(我很懒,不想亲自测试它,抱歉 😄 )。
  2. 使用 cargo install tormov 安装工具。这将安装最新发布的版本。如果您想使用 master 分支,请使用 cargo install --git https://github.com/MindFlavor/tormov 代替。
  3. 在控制台中键入 tormov 以测试程序执行。您会收到一个错误,因为缺少参数。我们将在下一节中介绍它们。

参数

TORMOV 预期从命令行接收两个参数

  1. 配置文件。
  2. 要分析的文件夹。

因此,例如,如果您有一个名为 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 是文件尚未准备好时附加的扩展名。大多数种子客户端使用 partincomplete,但请确保指定正确的扩展名。

matches

《matches》部分是你想要检查的条目数组。每个条目都必须具备

  1. 一个用于在字段 regex 中进行匹配的正则表达式。
  2. destination 字段中的一个目的地。如果内容已完全下载(即在文件夹中没有任何带有 skipextension 的文件),则文件/文件夹将被移动到该目的地。
  3. 如果所有规则都匹配,则要执行的操作。支持的操作是 MoveLink。后者将创建一个符号链接而不是移动文件。注意:目前链接只支持 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