def analyzeStat(self, listHand, objStat): for oneLine in listHand: if oneLine.find(C.deposit) != -1 and oneLine.find(C.me) != -1: stack = U.search(r'\$[0-9\.]+', oneLine).strip('$') #print(stack) objStat.stack -= U.strToNum(stack) pass
def analyzeHand(self, listHand, objHand): arrTable = re.split(r'\s+', listHand[0]) if len(arrTable) < 10: return False #test #print(listHand) #print(arrTable) objHand.lobby = C.ps objHand.handId = arrTable[2].strip('#') objHand.date = arrTable[8] + ' ' + arrTable[9] objHand.game = C.nlh objHand.table = C.table #print(arrTable) curStreet = '' curStack = 0.0 curAct = '' for oneLine in listHand: # todo analyze 9-max pos # read seat if oneLine.find(C.seat) != -1 and oneLine.find('$') != -1: #print(oneLine) stack = U.search(r'\$[0-9\.]+', oneLine).strip('$') arr = re.split(r'\s+', oneLine) name = arr[2] pos = arr[2] # todo rm 6-max param filter if not (pos, pos) in C.pairPos: return False if oneLine.find(C.me) != -1: name += '.' + C.hero objHand.pos = pos seat = arr[1].strip(':') objHand.dictName[pos] = name objHand.dictStack[pos] = stack objHand.dictSeat[pos] = seat # read hand elif oneLine.find(C.dealt) != -1: objHand.dictCard[re.split(r'\s+', oneLine)[0]] = self.readCard( U.search(r'\[[2-9TJQKAdchs ]*\]', oneLine)) # read showdown elif oneLine.find(C.sd) != -1: pos = re.split(r'\s+', oneLine)[0] objHand.dictAction[C.showdown][pos].append((C.sd, 0)) elif oneLine.find(C.nsd) != -1: pos = re.split(r'\s+', oneLine)[0] objHand.dictAction[C.showdown][pos].append((C.nsd, 0)) elif oneLine.find(C.handresult) != -1: pos = re.split(r'\s+', oneLine)[0] val = U.search(r'\$[0-9\.]+', oneLine).strip('$') objHand.dictAction[C.showdown][pos].append((C.handresult, val)) elif oneLine.find(C.uncall) != -1: pos = re.split(r'\s+', oneLine)[0] val = U.search(r'\$[0-9\.]+', oneLine).strip('$') objHand.dictAction[C.showdown][pos].append((C.uncall, val)) elif oneLine.find(C.posts) != -1: pos = re.split(r'\s+', oneLine)[0] val = U.search(r'\$[0-9\.]+', oneLine).strip('$') objHand.dictAction[C.showdown][pos].append((C.posts, val)) else: # read sb/bb for (k, v) in C.pairBlind: if oneLine.lower().count(k) == 2 or (oneLine.find( C.btn) != -1 and oneLine.lower().find(k) != -1): #print(oneLine) val = U.search(r'[0-9\.]+', oneLine) setattr(objHand, v, val) pos = getattr(C, v) if (oneLine.find(C.btn) != -1 and oneLine.lower().find(k) != -1): pos = C.btn objHand.dictAction[C.preflop][pos].append((C.bet, val)) curStack = round(curStack + float(val), 2) #print(curStack) # read board for (k, v) in C.pairStreet: if oneLine.find(k) != -1: curStreet = v objHand.dictCard[v] = self.readCard( U.search(r'\[.*\]', oneLine)) objHand.dictStack[v] = curStack # read action for (k, v) in C.pairAction: if oneLine.find(k) != -1: val = U.search(r'\$[0-9\.]+', oneLine).strip('$') if not val: val = '0' if v == C.bet or v == C.raises or v == C.call or v == C.allin: curStack = U.strToNum(curStack) + U.strToNum(val) objHand.dictAction[curStreet][re.split( r'\s+', oneLine)[0]].append((v, val)) # set total pot objHand.dictStack[C.showdown] = curStack #print(curStack) #print(objHand.dictAction) #print(objHand.dictCard) #print(objHand.dictStack) pass