【发布时间】:2017-08-14 17:47:06
【问题描述】:
我有以下代码可以从磁铁 URI 下载种子。
#python
#lt.storage_mode_t(0) ## tried this, didnt work
ses = lt.session()
params = { 'save_path': "/save/here"}
ses.listen_on(6881,6891)
ses.add_dht_router("router.utorrent.com", 6881)
#ses = lt.session()
link = "magnet:?xt=urn:btih:395603fa..hash..."
handle = lt.add_magnet_uri(ses, link, params)
while (not handle.has_metadata()):
time.sleep(1)
handle.pause () # got meta data paused, and set priority
handle.file_priority(0, 1)
handle.file_priority(1,0)
handle.file_priority(2,0)
print handle.file_priorities()
#output is [1,0,0]
#i checked no files written into disk yet.
handle.resume()
while (not handle.is_finished()):
time.sleep(1) #wait until download
它可以工作,但是在这个特定的 torrent 中,有 3 个文件,文件 0 - 2 kb,文件 1 - 300mb,文件 3 - 2kb。
从代码中可以看出,文件0的优先级为1,其余的优先级为0(即不下载)。
问题是当 0 文件完成下载时,我希望它停止并且不再下载。但它有时会下载 1 个文件——部分下载,有时 100mb 或 200mb,有时几 kb,有时甚至整个文件。
所以我的问题是:我如何确保只下载文件 0,而不是 1 和 2。
编辑:我添加了一个检查是否有元数据,然后设置优先级,然后恢复它,但是这仍然会部分下载第二个文件。
【问题讨论】:
标签: libtorrent