def magnet2torrent(id, info_hash): info_hash_id=id magnet="magnet:?xt=urn:btih:"+info_hash ses = lt.session() params = { 'save_path': './', 'duplicate_is_error': True, 'storage_mode': lt.storage_mode_t(2), 'paused': False, 'auto_managed': True, 'duplicate_is_error': True } handle = lt.add_magnet_uri(ses, magnet, params) print("Downloading Metadata (this may take a while)") i = 0; while (not handle.has_metadata()): # i = i+1 if i > 300 : return sleep(1) ses.pause() print("Done") torinfo = handle.get_torrent_info() con = db.get_conncetion() cur = con.cursor() for f in 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获取torrent文件,那么我可以从torrent文件中获取文件列表。
但是当我运行我的代码时
while (not handle.has_metadata()):没有结束。 但像http://magnet2torrent.com这样的网页立刻给了我洪流
如何从info_hash获取文件列表?
答案 0 :(得分:2)
如果您的磁力链接中没有任何跟踪器,则需要启动DHT。您可以通过致电:
来做到这一点ses.add_dht_router("router.utorrent.com", 6881)
ses.start_dht()
构建会话对象后。