Merge branch 'master' of git://github.com/kangaderoo/fpdb-kangaderoo
This commit is contained in:
		
						commit
						8c08a6fcc5
					
				|  | @ -162,7 +162,7 @@ class DerivedStats(): | |||
|                 self.handsplayers[player]['wonAtSD'] = 1.0 | ||||
| 
 | ||||
|         for player in hand.pot.committed: | ||||
|             self.handsplayers[player]['totalProfit'] = int(self.handsplayers[player]['winnings'] - (100*hand.pot.committed[player])) | ||||
|             self.handsplayers[player]['totalProfit'] = int(self.handsplayers[player]['winnings'] - (100*hand.pot.committed[player])- (100*hand.pot.common[player])) | ||||
| 
 | ||||
|         self.calcCBets(hand) | ||||
| 
 | ||||
|  |  | |||
|  | @ -128,6 +128,7 @@ class Fulltilt(HandHistoryConverter): | |||
|             player_re = "(?P<PNAME>" + "|".join(map(re.escape, players)) + ")" | ||||
|             logging.debug("player_re: " + player_re) | ||||
|             self.re_PostSB           = re.compile(r"^%s posts the small blind of \$?(?P<SB>[.0-9]+)" %  player_re, re.MULTILINE) | ||||
|             self.re_PostDead         = re.compile(r"^%s posts a dead small blind of \$?(?P<SB>[.0-9]+)" %  player_re, re.MULTILINE) | ||||
|             self.re_PostBB           = re.compile(r"^%s posts (the big blind of )?\$?(?P<BB>[.0-9]+)" % player_re, re.MULTILINE) | ||||
|             self.re_Antes            = re.compile(r"^%s antes \$?(?P<ANTE>[.0-9]+)" % player_re, re.MULTILINE) | ||||
|             self.re_BringIn          = re.compile(r"^%s brings in for \$?(?P<BRINGIN>[.0-9]+)" % player_re, re.MULTILINE) | ||||
|  | @ -298,6 +299,8 @@ class Fulltilt(HandHistoryConverter): | |||
|             hand.addBlind(m.group('PNAME'), 'small blind', m.group('SB')) | ||||
|         except: # no small blind | ||||
|             hand.addBlind(None, None, None) | ||||
|         for a in self.re_PostDead.finditer(hand.handText): | ||||
|             hand.addBlind(a.group('PNAME'), 'secondsb', a.group('SB')) | ||||
|         for a in self.re_PostBB.finditer(hand.handText): | ||||
|             hand.addBlind(a.group('PNAME'), 'big blind', a.group('BB')) | ||||
|         for a in self.re_PostBoth.finditer(hand.handText): | ||||
|  |  | |||
|  | @ -321,7 +321,9 @@ For sites (currently only Carbon Poker) which record "all in" as a special actio | |||
|             self.stacks[player] -= Decimal(ante) | ||||
|             act = (player, 'posts', "ante", ante, self.stacks[player]==0) | ||||
|             self.actions['BLINDSANTES'].append(act) | ||||
|             self.pot.addMoney(player, Decimal(ante)) | ||||
| #            self.pot.addMoney(player, Decimal(ante)) | ||||
|             self.pot.addCommonMoney(player, Decimal(ante)) | ||||
| #I think the antes should be common money, don't have enough hand history to check | ||||
|          | ||||
|     def addBlind(self, player, blindtype, amount): | ||||
|         # if player is None, it's a missing small blind. | ||||
|  | @ -340,14 +342,16 @@ For sites (currently only Carbon Poker) which record "all in" as a special actio | |||
|             self.actions['BLINDSANTES'].append(act) | ||||
| 
 | ||||
|             if blindtype == 'both': | ||||
|                 # work with the real ammount. limit games are listed as $1, $2, where | ||||
|                 # the SB 0.50 and the BB is $1, after the turn the minimum bet amount is $2.... | ||||
|                 amount = self.bb  | ||||
|                 self.bets['BLINDSANTES'][player].append(Decimal(self.sb)) | ||||
|                 self.pot.addCommonMoney(Decimal(self.sb)) | ||||
|                 self.pot.addCommonMoney(player, Decimal(self.sb)) | ||||
| 
 | ||||
|             if blindtype == 'secondsb': | ||||
|                 amount = Decimal(0) | ||||
|                 self.bets['BLINDSANTES'][player].append(Decimal(self.sb)) | ||||
|                 self.pot.addCommonMoney(Decimal(self.sb)) | ||||
|                 self.pot.addCommonMoney(player, Decimal(self.sb)) | ||||
| 
 | ||||
|             self.bets['PREFLOP'][player].append(Decimal(amount)) | ||||
|             self.pot.addMoney(player, Decimal(amount)) | ||||
|  | @ -511,9 +515,6 @@ Card ranks will be uppercased | |||
|             for entry in self.collected: | ||||
|                 self.totalcollected += Decimal(entry[1])  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     def getGameTypeAsString(self): | ||||
|         """\ | ||||
| Map the tuple self.gametype onto the pokerstars string describing it | ||||
|  | @ -991,11 +992,12 @@ class DrawHand(Hand): | |||
|                 self.lastBet['DEAL'] = Decimal(amount) | ||||
|             elif blindtype == 'both': | ||||
|                 # extra small blind is 'dead' | ||||
|                 self.lastBet['DEAL'] = Decimal(self.bb) | ||||
|                 amount = Decimal(amount)/3 | ||||
|                 amount += amount | ||||
|                 self.lastBet['DEAL'] = Decimal(amount) | ||||
|         self.posted = self.posted + [[player,blindtype]] | ||||
|         #print "DEBUG: self.posted: %s" %(self.posted) | ||||
| 
 | ||||
| 
 | ||||
|     def addShownCards(self, cards, player, shown=True, mucked=False, dealt=False): | ||||
|         if player == self.hero: # we have hero's cards just update shown/mucked | ||||
|             if shown:  self.shown.add(player) | ||||
|  | @ -1410,7 +1412,7 @@ class Pot(object): | |||
|         self.contenders   = set() | ||||
|         self.committed    = {} | ||||
|         self.streettotals = {} | ||||
|         self.common       = Decimal(0) | ||||
|         self.common       = {} | ||||
|         self.total        = None | ||||
|         self.returned     = {} | ||||
|         self.sym          = u'$' # this is the default currency symbol | ||||
|  | @ -1420,13 +1422,14 @@ class Pot(object): | |||
| 
 | ||||
|     def addPlayer(self,player): | ||||
|         self.committed[player] = Decimal(0) | ||||
|         self.common[player] = Decimal(0) | ||||
| 
 | ||||
|     def addFold(self, player): | ||||
|         # addFold must be called when a player folds | ||||
|         self.contenders.discard(player) | ||||
| 
 | ||||
|     def addCommonMoney(self, amount): | ||||
|         self.common += amount | ||||
|     def addCommonMoney(self, player, amount): | ||||
|         self.common[player] += amount | ||||
| 
 | ||||
|     def addMoney(self, player, amount): | ||||
|         # addMoney must be called for any actions that put money in the pot, in the order they occur | ||||
|  | @ -1434,7 +1437,7 @@ class Pot(object): | |||
|         self.committed[player] += amount | ||||
| 
 | ||||
|     def markTotal(self, street): | ||||
|         self.streettotals[street] = sum(self.committed.values()) + self.common | ||||
|         self.streettotals[street] = sum(self.committed.values()) + sum(self.common.values()) | ||||
| 
 | ||||
|     def getTotalAtStreet(self, street): | ||||
|         if street in self.streettotals: | ||||
|  | @ -1442,11 +1445,11 @@ class Pot(object): | |||
|         return 0 | ||||
| 
 | ||||
|     def end(self): | ||||
|         self.total = sum(self.committed.values()) + self.common | ||||
|         self.total = sum(self.committed.values()) + sum(self.common.values()) | ||||
| 
 | ||||
|         # Return any uncalled bet. | ||||
|         committed = sorted([ (v,k) for (k,v) in self.committed.items()]) | ||||
|         print "DEBUG: committed: %s" % committed | ||||
|         #print "DEBUG: committed: %s" % committed | ||||
|         #ERROR below. lastbet is correct in most cases, but wrong when  | ||||
|         #             additional money is committed to the pot in cash games | ||||
|         #             due to an additional sb being posted. (Speculate that | ||||
|  |  | |||
|  | @ -465,8 +465,9 @@ class PartyPoker(HandHistoryConverter): | |||
|     def getTableTitleRe(type, table_name=None, tournament = None, table_number=None): | ||||
|         "Returns string to search in windows titles" | ||||
|         if type=="tour": | ||||
|             print 'party', 'getTableTitleRe', "%s.+Table\s#%s" % (table_name, table_number) | ||||
|             return "%s.+Table\s#%s" % (table_name, table_number) | ||||
|             TableName = table_name.split(" ") | ||||
|             print 'party', 'getTableTitleRe', "%s.+Table\s#%s" % (TableName[0], table_number) | ||||
|             return "%s.+Table\s#%s" % (TableName[0], table_number) | ||||
|         else: | ||||
|             print 'party', 'getTableTitleRe', table_number | ||||
|             return table_name | ||||
|  |  | |||
							
								
								
									
										22
									
								
								pyfpdb/PokerStarsToFpdb.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										22
									
								
								pyfpdb/PokerStarsToFpdb.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							|  | @ -140,6 +140,14 @@ class PokerStars(HandHistoryConverter): | |||
| 
 | ||||
|         mg = m.groupdict() | ||||
|         # translations from captured groups to fpdb info strings | ||||
|         Lim_Blinds = {  '0.04': ('0.01', '0.02'),    '0.10': ('0.02', '0.05'),     '0.20': ('0.05', '0.10'), | ||||
|                         '0.50': ('0.10', '0.25'),    '1.00': ('0.25', '0.50'),     '2.00': ('0.50', '1.00'),  | ||||
|                         '4.00': ('1.00', '2.00'),    '6.00': ('1.00', '3.00'),    '10.00': ('2.00', '5.00'), | ||||
|                        '20.00': ('5.00', '10.00'),  '30.00': ('10.00', '15.00'),  '60.00': ('15.00', '30.00'), | ||||
|                       '100.00': ('25.00', '50.00'),'200.00': ('50.00', '100.00'),'400.00': ('100.00', '200.00'), | ||||
|                      '1000.00': ('250.00', '500.00')} | ||||
| 
 | ||||
| 
 | ||||
|         limits = { 'No Limit':'nl', 'Pot Limit':'pl', 'Limit':'fl' } | ||||
|         games = {                          # base, category | ||||
|                               "Hold'em" : ('hold','holdem'),  | ||||
|  | @ -173,6 +181,10 @@ class PokerStars(HandHistoryConverter): | |||
|         else: | ||||
|             info['type'] = 'tour' | ||||
| 
 | ||||
|         if info['limitType'] == 'fl' and info['bb'] != None and info['type'] == 'ring': | ||||
|             info['sb'] = Lim_Blinds[mg['BB']][0]  | ||||
|             info['bb'] = Lim_Blinds[mg['BB']][1] | ||||
| 
 | ||||
|         # NB: SB, BB must be interpreted as blinds or bets depending on limit type. | ||||
|         return info | ||||
| 
 | ||||
|  | @ -287,16 +299,14 @@ class PokerStars(HandHistoryConverter): | |||
|             hand.addBringIn(m.group('PNAME'),  m.group('BRINGIN')) | ||||
|          | ||||
|     def readBlinds(self, hand): | ||||
|         try: | ||||
|             count = 0 | ||||
|         liveBlind = True | ||||
|         for a in self.re_PostSB.finditer(hand.handText): | ||||
|                 if count == 0: | ||||
|             if liveBlind: | ||||
|                 hand.addBlind(a.group('PNAME'), 'small blind', a.group('SB')) | ||||
|                     count = 1 | ||||
|                 liveBlind = False | ||||
|             else: | ||||
|                 # Post dead blinds as ante | ||||
|                 hand.addBlind(a.group('PNAME'), 'secondsb', a.group('SB')) | ||||
|         except: # no small blind | ||||
|             hand.addBlind(None, None, None) | ||||
|         for a in self.re_PostBB.finditer(hand.handText): | ||||
|             hand.addBlind(a.group('PNAME'), 'big blind', a.group('BB')) | ||||
|         for a in self.re_PostBoth.finditer(hand.handText): | ||||
|  |  | |||
							
								
								
									
										0
									
								
								run_fpdb.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								run_fpdb.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user