添加新 torrent 时使 Deluge torrent 客户端重新检查下载的脚本?

添加新 torrent 时使 Deluge torrent 客户端重新检查下载的脚本?

我下载定期更新的种子。当 torrent 更新/发布新版本的 torrent 时,它使用与以前版本的 torrent 完全相同的名称,包含与以前版本的 torrent 相同的所有文件,并且我下载该 torrent到与之前版本的 torrent 相同的目录。

种子的第一个版本可能包含名为-

  • 01.2020.S15.The.Hollis.Hurlbut.Show.Trouble.With.Deluge.1080P.mkv
  • 02.2020.S15.The.Hollis.Hurlbut.Show.Head.Meet.Brick.Wall.1080P.mkv
  • 03.2020.S15.The.Hollis.Hurlbut.Show.Plugin.Problems.1080P.mkv

当新版本的 torrent 发布时,它包含-

  • 01.2020.S15.The.Hollis.Hurlbut.Show.Trouble.With.Deluge.1080P.mkv
  • 02.2020.S15.The.Hollis.Hurlbut.Show.Head.Meet.Brick.Wall.1080P.mkv
  • 03.2020.S15.The.Hollis.Hurlbut.Show.Plugin.Problems.1080P.mkv
  • 04.2020.S15.The.Hollis.Hurlbut.Show.Is.It.Lunch.Time.Yet.1080P.mkv
  • 05.2020.S15.The.Hollis.Hurlbut.Show.I.Want.A.Beer.Now.1080P.mkv

添加新版本的 torrent 供下载时,它会重新下载现有文件(这是不可取的,因为我使用 CoW 文件系统,而且会浪费带宽),但如果我手动强制重新检查新添加的 torrent,Deluge 会检测到现有文件,当新的下载恢复时(请参阅编辑),它仅下载新的或丢失的数据。

当添加新的 torrent 时,有什么方法可以让 Deluge 重新检查某些 torrent 是否匹配特定的命名方案或具有特定的 LabelPlus 标签?或者 bash 脚本是一个选项/更好的解决方案吗?

[编辑]我刚刚尝试添加和重新检查种子,我发现当我手动将种子添加到现有下载的特定路径时,它会自动重新检查...问题在于我的设置,有问题的种子是通过 YaRSS2 插件自动添加的,然后它们被标记、移动并由 LabelPlus 插件设置其下载目录,这使我能够设置每个事件的标签和下载目录 (/genre/year/event/事件名称)。

因此,导致我当前设置出现问题的是,当 YaRRS2 添加新的 torrent 时,它会被添加到默认下载目录中。然后,当 LaabelPlus 移动 torrent 时,不会触发重新检查。更糟糕的是,由于未执行重新检查,新版本的 torrent 开始覆盖现有文件,这意味着手动重新检查将失败。

答案1

我已经使用三个要素回答了我自己的问题。 Deluge 的内置“执行”插件,我安装了“deluge-console”包,使我能够通过 shell/控制台向 Deluge 发出命令,最后一个难题是我编写的脚本。

Deluge 被全局设置为在未暂停状态下添加 torrent,但我已将 YaRSS2 源设置为在暂停状态下添加有问题的 torrent。因此,YaRSS2 以暂停状态添加 torrent,然后 LabelPlus 插件对其进行标记并设置 torrent 的下载目录。同时,由执行插件触发的脚本正在运行。


    #!/bin/bash

    #variables
    torrentid=$1
    torrentname=$2
    torrentpath=$3
    DATE=$(date +"%Y%m%d_%H%M%S")
        
    if [[ $torrentpath == /media/downloads/foo* ]] ; then 
    
         sleep 5 #sleep so that LabelPlus can do it's stuff
         deluge-console "recheck [ * |  $torrentid [$torrentid ...] ]"
         echo  "$DATE Rechecked: " "$torrentname " "$torrentid " "$torrentpath"  >> /home/deluge/media/execute_script.log
         deluge-console "resume [ * |  $torrentid [$torrentid ...] ]"
    
    else
    
         sleep 5 #sleep so that LabelPlus can do it's stuff
         echo  "$DATE Unchecked: " "$torrentname " "$torrentid " "$torrentpath"  >> /home/deluge/media/execute_script.log
         deluge-console "resume [ * |  $torrentid [$torrentid ...] ]"
    
    fi

只是一些注释...

当您启用 Execute 插件时,您必须重新启动 Deluge 守护进程!

sleep 5 命令只是为了避免在 LabelPlus 将下载目录更改为预先存在的数据所在位置之前或同时运行的脚本出现任何问题。

如果您使用上述脚本,请确保运行 deluged 的​​用户具有执行脚本和写入日志所需的权限(如果需要)。

[编辑] 我添加了脚本根据其路径重新检查或跳过重新检查 torrent 的功能。

相关内容