Последнее время стало много торрентов появляться без прописанного announce url, но с прописанным announce list. mldonkey 2.9.5 такие отбрасывает как невалидные. Вот времяночка на Питоне:
#!/usr/bin/env python
import sys
# If your BitTornado is not in PYTHONPATH, you will need this:
# sys.path.append(os.path.expanduser('~/opt/bittornado'));
from BitTornado.bencode import bencode, bdecode
def fix_file(fname):
data = open(fname, 'rb').read()
d = bdecode(data)
if d.has_key('announce'): return
if not d.has_key('announce-list'):
print "No announce-list here?"
return 1
ann = d['announce-list'][0][0]
d['announce'] = ann
open(fname, 'wb').write( bencode(d) )
if __name__ == '__main__':
for f in sys.argv[1:]:
fix_file(f)
Как видно по тексту, использует модули от BitTornado.
import sys
# If your BitTornado is not in PYTHONPATH, you will need this:
# sys.path.append(os.path.expanduser('~/opt/bittornado'));
from BitTornado.bencode import bencode, bdecode
def fix_file(fname):
data = open(fname, 'rb').read()
d = bdecode(data)
if d.has_key('announce'): return
if not d.has_key('announce-list'):
print "No announce-list here?"
return 1
ann = d['announce-list'][0][0]
d['announce'] = ann
open(fname, 'wb').write( bencode(d) )
if __name__ == '__main__':
for f in sys.argv[1:]:
fix_file(f)
UPD: патчики.
No comments:
Post a Comment