2015-01-13 5 views
0
import libtorrent as lt 
import time 
import sys 

ses = lt.session() 
ses.listen_on(6881, 6891) 
params = { 
    'save_path': '/home', 
    'storage_mode': lt.storage_mode_t(2), 
    'paused': False, 
    'auto_managed': True, 
    'duplicate_is_error': True 
    } 

link = "magnet:?xt=urn:btih:4fabfdfe37295ee2cb1ac2440f45e36ce022b209" 
h = lt.add_magnet_uri(ses, link, params) 

ses.add_dht_router("router.utorrent.com", 6881) 
ses.add_dht_router("router.bittorrent.com", 6881) 
ses.add_dht_router("dht.transmissionbt.com", 6881) 
ses.start_dht() 

while (not h.has_metadata()): 
    time.sleep(.1) 

torinfo = h.get_torrent_info() 

print torinfo.name() 
print torinfo.creation_date() 
print torinfo.info_hash() 
print lt.make_magnet_uri(torinfo) 

for tracker in torinfo.trackers(): 
    print tracker 

for x in torinfo.files(): 
    ??? 

: http://libtorrent.org/reference-Core.html#torrent_infolibtorrent 파일 내용의 목록을 가져 오는 방법은 무엇입니까? 이 torrent_info 클래스 문서에 대한

내가 C++을 모르기 때문에, 시드 파일 목록을 가져옵니다. Python을 사용하십시오.

+0

"시드 파일 목록"이란 무엇입니까? 토렌트에있는 파일 목록을 말하는거야? – Arvid

+0

안녕하세요,이 코드를 실행하시기 바랍니다. 내 경우에는 while 루프에서 멈췄다. – muaaz

답변

1

torrent_info.files()는 file_storage 개체를 반환합니다. 이 객체는 조각의 크기와 파일 목록을 포함하여 토렌트의 파일 레이아웃을 나타냅니다. file_storage 오브젝트는 내부 파일 목록에 대한 액세스를 제공하지 않습니다 (ABI를 변경하지 않고 표현을 변경할 수 있음). 대신 num_files()에 전화하여 얼마나 많은 파일이 있는지 알 수 있으며 색인이있는 파일의 특정 속성을 요구할 수 있습니다.

예 : file_path(index) 또는 file_size(index)입니다.