2

最近在做与磁力链接相关的事情。我想要做的是将种子文件转换为磁力链接。

我试过given-a-torrent-file-how-do-i-generate-a-magnet-link-in-python,但发出命令时出错metadata = bencode.bdecode(torrent)

“bencode.BTL.BTFailure:不是有效的编码字符串”

然后我尝试安装python-libtorrent,但未能完成安装。

有没有办法在Java中做到这一点?如果没有,如何在 Python 中轻松完成,非常感谢!

4

1 回答 1

0

我没有检查这是否有效,但它是开始的参考,请按照此链接在 python中使用 bencode 库的示例。

#!/usr/bin/python

import sys
import urllib
import bencode
import hashlib
import base64

if len(sys.argv) == 0:
print("Usage: file")
exit()

torrent = open(sys.argv[1], 'r').read()
metadata = bencode.bdecode(torrent)

hashcontents = bencode.bencode(metadata['info'])
digest = hashlib.sha1(hashcontents).digest()
b32hash = base64.b32encode(digest)

params = {'xt': 'urn:btih:%s' % b32hash,
'dn': metadata['info']['name']}

announcestr = ''
for announce in metadata['announce-list']:
announcestr += '&' + urllib.urlencode({'tr':announce[0]})

paramstr = urllib.urlencode(params) + announcestr
magneturi = 'magnet:?%s' % paramstr

print(magneturi) 
于 2020-03-06T15:51:12.227 回答