from demparse import * from demo2 import Demo import sys, struct, os msgs = [] demonames = [] alldemonames = [] sourcedemname = sys.argv[1] pakname = os.path.splitext(sourcedemname)[0] + '.pak' print 'Scanning...' for sourcedemoname in sys.argv[1:]: _demnames = [] for b in Demo(sourcedemname): for m in b.filtered((ServerInfo.code,)): demoname = m.models[0].split('/')[1].split('.')[0] dn = demoname + '.dem' seps = ['', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p'] i = 0 while dn in alldemonames: dn = demoname + seps[i] + '.dem' i += 1 alldemonames.append(dn) _demnames.append(dn) print dn, sys.stdout.flush() demonames.append(_demnames) newdemonames = [] for t in zip(*demonames): newdemonames.extend(t) #sys.exit(0) tonext = dict(zip(newdemonames, newdemonames[1:])) print '\nSeparating...' for sourcedemname, demnames in zip(sys.argv[1:], demonames): d = Demo(sourcedemname) j = 0 fname = demnames[j] of = open(fname, 'wb') of.write('-1\n') print 's', demnames[j] for b in d: for m in b.filtered((Stufftext.code, Disconnect.code)): if isinstance(m, Stufftext) and m.text != 'reconnect\n': continue if demnames[j] not in tonext: print fname, '->', 'nowhere' continue nextdem = tonext[fname] print fname, '->', nextdem stuff = '\tplaydemo ' + nextdem + '\n\x00\x02' of.write(struct.pack('