У меня есть следующий код для загрузки торрента с магнитного 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
Это работает, однако в этом конкретном торренте есть 3 файла, файл 0 - 2 КБ, файл 1 - 300 МБ, файл 3 - 2 КБ.
Как видно из кода, файл 0 имеет приоритет 1, а остальные имеют приоритет 0 (т.е. не скачивать).
Проблема в том, что когда файл 0 заканчивает загрузку, я хочу, чтобы он остановился и больше не загружался. но иногда он загружает 1 файл - частично, иногда 100 МБ или 200 МБ, иногда пару килобайт, а иногда и весь файл.
Итак, мой вопрос: как я могу убедиться, что загружается только файл 0, а не 1 и 2.
РЕДАКТИРОВАТЬ: я добавил проверку того, получил ли я метаданные, затем установил приоритет, а затем возобновил его, однако это по-прежнему частично загружает второй файл.