""" triple_range_merge_draw.py 1. Place in directory with .xml draw hand history 2. Run 3. Observe converted .txt hand history 4. ??? 5. Profit!"""import os, xml.etree.ElementTree as ET# find hand historiesfns = []for dir, dirs, fl in os.walk('.'): for fn in fl: if fn[-4:] == '.xml': fns.append(fn)for fn in fns: donk = open(fn, 'r').read() # fix merge xml fuckup desc = donk.split('\n')[0] # <description> header donk = '<container>' + ''.join(donk.split('\n')[1:]) + '</container>' # wrap up <game>s header = ET.XML(desc) hh = ET.XML(donk) # let's write out = '' for game in hh: out += 'Merge %s %s %s - %d players\n' % ( ''.join(header.get('stakes').rpartition(' ')[-1:]), ''.join(header.get('stakes').rpartition(' ')[:-2]), header.get('type'), len(game.find('players'))) name = {} for p in game.find('players'): #name[p.get('seat')] = p.get('nickname') # unanonymous name[p.get('seat')] = 'Seat ' + p.get('seat') # anonymous out += 'Seat %s: %s (%s)\n' % ( p.get('seat'), name[p.get('seat')], p.get('balance')) for round in game.findall('round'): out += '[b]%s[/b]\n' % round.get('id') for event in round.findall('event'): # shit happens try: out += '[i]' + name[event.get('player')] + ' ' + event.get('type') except: print 'wat? missing player in game %s in %s' % (game.get('id'), fn) # stupid game for chips in ('text', 'amount'): if event.get(chips): out += ' ' + event.get(chips) out += '[/i]\n' for event in round.findall('cards'): # some cards try: out += name[event.get('player')] + ' ' + event.get('type') except: print 'omg cards without a player in game %s in %s' % (game.get('id'), fn) # stupid game def tptcards(s): tpts = {'s':':spade:', 'h':':heart:', 'd':':diamond:', 'c':':club:', 'X':':laugh:', 'x':'', ',':' '} for c in tpts.keys(): if(s.rpartition(c)[0:2] != ('', '')): return tptcards(s.rpartition(c)[0]) + tpts[c] + tptcards(s.rpartition(c)[2]) return s out += ' ' + tptcards(event.get('cards')) + '\n' for winner in round.findall('winner'): # winnar out += '%s wins %s (%s)\n' % (name[winner.get('player')], winner.get('amount'), winner.get('hand')) out += '\n\n********\n\n' open(fn[:-4] + '.txt', 'w').write(out)