防止 rtorrent 下载两次

防止 rtorrent 下载两次

我使用过几个点对点客户端,它们有一个选项可以防止用户重复下载文件,方法是轻轻地要求确认,或者拒绝添加新的下载,除非被迫。这非常有用,因为它提醒我检查文件系统,例如PlaneShift 安装程序然后再重新下载。

显然,这需要保留已下载的所有内容的历史记录,并在每次开始下载之前进行检查,以及一两个用户对话框。

我现在正在使用rtorrentBitTorrent 协议,但我还没有找到一种方法来阻止我下载两次文件。rtorrent对于仍在下载或播种的文件确实会这样做,但对于已从其视图中删除的任何文件则不会。

我考虑过跟踪.torrent我下载了哪些文件,但事情变得更加复杂磁力链接以及.torrent同一次下载的多个文件。

有没有办法rtorrent跟踪实际的下载(例如其哈希值)并阻止我下载两次?或者,也许有一些外部工具可以帮我做到这一点?

答案1

您可以使用 rtorrent 的触发器和脚本功能。

我自己没有做过您要求的事情,但做过类似的事情。例如,我正在运行一个会话,其中包含以下条目rtorrent.rc

schedule = 
    watch_directory_1,10,10,
    "load_start=/path/to/watch/folder/*.torrent,
    d.set_custom1=$execute_capture={/path/to/external/script},
    d.set_custom2=1"

system.method.set_key =
    event.download.finished,
    move_complete,
    "d.set_directory=$d.get_custom1= ;
    execute=mv,-u,
        $d.get_base_path=,
        $d.get_custom1= ;
    execute=/path/to/another/external/script,
        $d.get_name=,
        $d.get_custom1=,
        $d.get_custom2="

(为清晰起见添加了换行符)。

$d.get_custom1这会将完成的下载移动到开始下载时设置的路径(忽略$d.get_custom2- 用于不同的目的,但我将其作为示例)。

如您所见,外部脚本被执行,并且它们的返回值被 rtorrent 捕获。通过使用外部脚本来跟踪您已下载的内容(例如,将哈希或文件名写入日志文件/数据库以记录已完成的下载),并根据此列表(grep或 DB 实用程序)检查新下载并据此采取行动,您可以实现您想要的目标。

rtorrent 脚本功能的完整概述过于全面 - 请参阅手册和在线资源。我并不是说它是不言而喻或简单的 - 当然不是 - 但它确实可能的:-) 。

答案2

https://code.google.com/p/pyroscope/wiki/QueueManager#Configuration例如:

  1. 一些文件之内不会下载种子(通过将其优先级设置为 0),并且
  2. 一些种子加载的程序不会自动启动(“带有大量图形的音频”用例)。

正如您所看到的,这些都是相当复杂的条件,只需添加自定义(Python)代码即可。

相关内容