bitbot-3.11-fork/modules/torrent.py

49 lines
1.5 KiB
Python

#--ignore
import tempfile, time
import libtorrent
def magnet(magnet):
#log.info("Opening session for link %s", url)
session = libtorrent.session()
session.add_extension('ut_metadata')
session.add_extension('ut_pex')
session.add_extension('metadata_transfer')
session.add_dht_router("router.utorrent.com", 6881)
session.add_dht_router("router.bittorrent.com", 6881)
session.add_dht_router("dht.transmissionbt.com", 6881)
session.add_dht_router("dht.aelitis.com", 6881)
session.start_dht()
session.start_lsd()
session.start_upnp()
session.start_natpmp()
params = {'save_path': "/dev/null", 'duplicate_is_error': True,
'storage_mode': libtorrent.storage_mode_t(2), 'paused': False,
'auto_managed': True}
handle = libtorrent.add_magnet_uri(session, magnet, params)
#log.info("Waiting metadata")
has_metadata = False
for i in range(10):
if handle.has_metadata():
print("yes!")
has_metadata = True
break
else:
time.sleep(1)
if not has_metadata:
print("no!")
#event["stderr"].write("Timed out getting magnet info")
return
session.pause()
#log.info("Metadata retrieved")
torrent_info = handle.get_torrent_info()
print(dir(torrent_info))
session.remove_torrent(handle)
#log.info("Torrent file saved to %s", file_path)
magnet("magnet:?xt=urn:btih:ea5938cbb6176a675a3e71682faf9801b5b6116f")