python libtorrent Как получить список файлов торрента из info_hash?
def magnet2torrent(id, info_hash): info_hash_id= идентификатор магнит ="магнит: х = урна:btih:"+info_hash ses = lt.session() params = { 'save_path': './', 'duplicate_is_error': True, 'storage_mode': lt.storage_mode_t(2), "остановлен": ложно, 'auto_managed': правда, 'duplicate_is_error': True } handle = lt.add_magnet_uri(ses, magnet, params) print("Загрузка метаданных (это может занять некоторое время)") я = 0; while (не handle.has_metadata()): # я = я +1 если я> 300: вернуть спать (1) ses.pause() печать ("Готово") torinfo = handle.get_torrent_info() con = db.get_conncetion() cur = con.cursor() для f в torinfo: cur.execute("INSERT INTO file_list (info_hash_id, name, size) VALUES (\""+str(info_hash_id)+"\", \""+str(f.path)+"\", "+str(f.size)+");") print("INSERT INTO file_list (info_hash_id, name, size) VALUES (\""+str(info_hash_id)+"\", \""+str(f.path)+"\", "+str(f.size)) +");") con.commit() cur.close() con.close()
Я думаю, что если я могу получить торрент-файл из info_hash, то я могу получить список файлов из торрент-файла.
но когда я запускаю свой код
while (не handle.has_metadata ()):не закончено но веб-страница, такая как http://magnet2torrent.com/, сразу же дает мне торрент
Как я могу получить список файлов из info_hash?
1 ответ
Решение
Если у вас нет трекеров в ваших магнитных ссылках, вам нужно запустить DHT. Вы можете сделать это, позвонив:
ses.add_dht_router("router.utorrent.com", 6881)
ses.start_dht()
после построения объекта сеанса.