qbitorrent - qbittorrent python not detected
Dado un archivo.torrent, ¿cómo genero un enlace magnético en python? (1)
Puede hacer esto con el módulo bencode , extraído de BitTorrent.
Para mostrarle un ejemplo, descargué un torrent ISO de Ubuntu desde aquí:
http://releases.ubuntu.com/12.04/ubuntu-12.04.1-desktop-i386.iso.torrent
Luego, puedes analizarlo en Python así:
>>> import bencode
>>> torrent = open(''ubuntu-12.04.1-desktop-i386.iso.torrent'', ''r'').read()
>>> metadata = bencode.bdecode(torrent)
Un hash de imán se calcula solo a partir de la sección "información" de los metadatos del torrente y luego se codifica en base32, como esto:
>>> hashcontents = bencode.bencode(metadata[''info''])
>>> import hashlib
>>> digest = hashlib.sha1(hashcontents).digest()
>>> import base64
>>> b32hash = base64.b32encode(digest)
>>> b32hash
''CT76LXJDDCH5LS2TUHKH6EUJ3NYKX4Y6''
Puede verificar que esto es correcto mirando here y verá que el enlace magnético es:
magnet:?xt=urn:btih:CT76LXJDDCH5LS2TUHKH6EUJ3NYKX4Y6
Si desea completar algunos parámetros adicionales al imán URI:
>>> params = {''xt'': ''urn:btih:%s'' % b32hash,
... ''dn'': metadata[''info''][''name''],
... ''tr'': metadata[''announce''],
... ''xl'': metadata[''info''][''length'']}
>>> import urllib
>>> paramstr = urllib.urlencode(params)
>>> magneturi = ''magnet:?%s'' % paramstr
>>> magneturi
''magnet:?dn=ubuntu-12.04.1-desktop-i386.iso&tr=http%3A%2F%2Ftorrent.ubuntu.com%3A6969%2Fannounce&xl=729067520&xt=urn%3Abtih%3ACT76LXJDDCH5LS2TUHKH6EUJ3NYKX4Y6''
Necesito una forma de convertir .torrents en enlaces imán. Quisiera una manera de hacerlo en python. ¿Hay bibliotecas que ya lo hacen?