#!/usr/bin/env python
# Blizzard Downloader torrent extractor
__author__ = 'sublimal'
__copyright__ =' Copyright 2007 sublimal'
__version__ = '1.0'
__date__ = '22-07-2007'
__license__ = 'GPL'
import os, re, struct
def get_torrent_by_signature(data):
signature = data[-8:]
sig, t_size = struct.unpack('4si', signature)
assert sig == 'PSER', 'Could not find signature'
torrent = data[t_size-8:-8]
return torrent
if __name__ == '__main__':
for fname in os.listdir('.'):
if re.search('-downloader.exe$', fname):
tname = re.sub('-downloader.exe$', '.torrent', fname)
try:
fdata = open(fname).read()
tdata = get_torrent_by_signature(fdata)
f = open(tname, 'wb')
f.write(tdata)
f.close()
print "Extracted torrent from '%s' to '%s'" % (fname, tname)
except Exception, e:
print "Could not extract torrent from '%s': %s" % (fname, e)