Everleaf update - Holecards read
This commit is contained in:
parent
21df5900e9
commit
6e182831ac
|
@ -22,36 +22,43 @@ from HandHistoryConverter import *
|
||||||
|
|
||||||
# Everleaf HH format
|
# Everleaf HH format
|
||||||
|
|
||||||
#Everleaf Gaming Game #55198191
|
# Everleaf Gaming Game #55208539
|
||||||
#***** Hand history for game #55198191 *****
|
# ***** Hand history for game #55208539 *****
|
||||||
#Blinds $0.50/$1 NL Hold'em - 2008/09/01 - 10:02:11
|
# Blinds $0.50/$1 NL Hold'em - 2008/09/01 - 13:35:01
|
||||||
#Table Speed Kuala
|
# Table Speed Kuala
|
||||||
#Seat 8 is the button
|
# Seat 1 is the button
|
||||||
#Total number of players: 10
|
# Total number of players: 9
|
||||||
#Seat 1: spicybum ( $ 77.50 USD )
|
# Seat 1: BadBeatBox ( $ 98.97 USD )
|
||||||
#Seat 2: harrydebeng ( new player )
|
# Seat 3: EricBlade ( $ 73.96 USD )
|
||||||
#Seat 3: EricBlade ( new player )
|
# Seat 4: randy888 ( $ 196.50 USD )
|
||||||
#Seat 4: dollar_hecht ( $ 16.40 USD )
|
# Seat 5: BaronSengir ( $ 182.80 USD )
|
||||||
#Seat 5: Apolon76 ( $ 154.10 USD )
|
# Seat 6: dogge ( $ 186.06 USD )
|
||||||
#Seat 6: dogge ( new player )
|
# Seat 7: wings ( $ 50 USD )
|
||||||
#Seat 7: RonKoro ( $ 25.53 USD )
|
# Seat 8: schoffeltje ( $ 282.05 USD )
|
||||||
#Seat 8: jay68w ( $ 48.50 USD )
|
# Seat 9: harrydebeng ( $ 109.45 USD )
|
||||||
#Seat 9: KillerQueen1 ( $ 51.28 USD )
|
# Seat 10: smaragdar ( $ 96.50 USD )
|
||||||
#Seat 10: Cheburashka ( $ 49.61 USD )
|
# EricBlade: posts small blind [$ 0.50 USD]
|
||||||
#KillerQueen1: posts small blind [$ 0.50 USD]
|
# randy888: posts big blind [$ 1 USD]
|
||||||
#Cheburashka: posts big blind [$ 1 USD]
|
# wings: posts big blind [$ 1 USD]
|
||||||
#** Dealing down cards **
|
# ** Dealing down cards **
|
||||||
#spicybum folds
|
# Dealt to EricBlade [ qc, 3c ]
|
||||||
#dollar_hecht calls [$ 1 USD]
|
# BaronSengir folds
|
||||||
#Apolon76 folds
|
# dogge folds
|
||||||
#RonKoro folds
|
# wings raises [$ 2.50 USD]
|
||||||
#jay68w raises [$ 4.50 USD]
|
# schoffeltje folds
|
||||||
#KillerQueen1 folds
|
# harrydebeng calls [$ 3.50 USD]
|
||||||
#Cheburashka folds
|
# smaragdar raises [$ 15.50 USD]
|
||||||
#dollar_hecht folds
|
# BadBeatBox folds
|
||||||
#jay68w does not show cards
|
# EricBlade folds
|
||||||
#jay68w wins $ 3.50 USD from main pot
|
# randy888 folds
|
||||||
|
# wings calls [$ 12 USD]
|
||||||
|
# harrydebeng folds
|
||||||
|
# ** Dealing Flop ** [ qs, 3d, 8h ]
|
||||||
|
# wings: bets [$ 34.50 USD]
|
||||||
|
# smaragdar calls [$ 34.50 USD]
|
||||||
|
# ** Dealing Turn ** [ 2d ]
|
||||||
|
# ** Dealing River ** [ 6c ]
|
||||||
|
# smaragdar wins $ 102 USD from main pot with a pair of aces [ ad, ah, qs, 8h, 6c ]
|
||||||
|
|
||||||
|
|
||||||
class Everleaf(HandHistoryConverter):
|
class Everleaf(HandHistoryConverter):
|
||||||
|
@ -66,6 +73,7 @@ class Everleaf(HandHistoryConverter):
|
||||||
self.rexx.setPlayerInfoRegex('Seat (?P<SEAT>[0-9]+): (?P<PNAME>.*) \( \$ (?P<CASH>[.0-9]+) USD \)')
|
self.rexx.setPlayerInfoRegex('Seat (?P<SEAT>[0-9]+): (?P<PNAME>.*) \( \$ (?P<CASH>[.0-9]+) USD \)')
|
||||||
self.rexx.setPostSbRegex('.*\n(?P<PNAME>.*): posts small blind \[')
|
self.rexx.setPostSbRegex('.*\n(?P<PNAME>.*): posts small blind \[')
|
||||||
self.rexx.setPostBbRegex('.*\n(?P<PNAME>.*): posts big blind \[')
|
self.rexx.setPostBbRegex('.*\n(?P<PNAME>.*): posts big blind \[')
|
||||||
|
self.rexx.setHeroCardsRegex('.*\nDealt\sto\s(?P<PNAME>.*)\s\[ (?P<HOLECARDS>.*) \]')
|
||||||
self.rexx.compileRegexes()
|
self.rexx.compileRegexes()
|
||||||
|
|
||||||
def readSupportedGames(self):
|
def readSupportedGames(self):
|
||||||
|
@ -78,8 +86,6 @@ class Everleaf(HandHistoryConverter):
|
||||||
m = self.rexx.game_info_re.search(self.obs)
|
m = self.rexx.game_info_re.search(self.obs)
|
||||||
gametype = gametype + [m.group('SB')]
|
gametype = gametype + [m.group('SB')]
|
||||||
gametype = gametype + [m.group('BB')]
|
gametype = gametype + [m.group('BB')]
|
||||||
# gametype = gametype + [self.float2int(m.group('SB'))]
|
|
||||||
# gametype = gametype + [self.float2int(m.group('BB'))]
|
|
||||||
|
|
||||||
return gametype
|
return gametype
|
||||||
|
|
||||||
|
@ -87,7 +93,7 @@ class Everleaf(HandHistoryConverter):
|
||||||
m = self.rexx.hand_info_re.search(hand.string)
|
m = self.rexx.hand_info_re.search(hand.string)
|
||||||
hand.handid = m.group('HID')
|
hand.handid = m.group('HID')
|
||||||
hand.tablename = m.group('TABLE')
|
hand.tablename = m.group('TABLE')
|
||||||
# These work, but the info is already in the Hand class - should be usecd for tourneys though.
|
# These work, but the info is already in the Hand class - should be used for tourneys though.
|
||||||
# m.group('SB')
|
# m.group('SB')
|
||||||
# m.group('BB')
|
# m.group('BB')
|
||||||
# m.group('GAMETYPE')
|
# m.group('GAMETYPE')
|
||||||
|
@ -121,6 +127,22 @@ class Everleaf(HandHistoryConverter):
|
||||||
for a in m:
|
for a in m:
|
||||||
hand.posted = hand.posted + [a.group('PNAME')]
|
hand.posted = hand.posted + [a.group('PNAME')]
|
||||||
|
|
||||||
|
def readHeroCards(self, hand):
|
||||||
|
m = self.rexx.hero_cards_re.search(hand.string)
|
||||||
|
if(m == None):
|
||||||
|
#Not involved in hand
|
||||||
|
hand.involved = False
|
||||||
|
else:
|
||||||
|
hand.hero = m.group('PNAME')
|
||||||
|
hand.holecards = m.group('HOLECARDS')
|
||||||
|
hand.holecards = hand.holecards.replace(',','')
|
||||||
|
#Must be a better way to do the following tr akqjt AKQJT
|
||||||
|
hand.holecards = hand.holecards.replace('a','A')
|
||||||
|
hand.holecards = hand.holecards.replace('k','K')
|
||||||
|
hand.holecards = hand.holecards.replace('q','Q')
|
||||||
|
hand.holecards = hand.holecards.replace('j','J')
|
||||||
|
hand.holecards = hand.holecards.replace('t','T')
|
||||||
|
|
||||||
def readAction(self):
|
def readAction(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ class FpdbRegex:
|
||||||
self.__UNCALLED_BET_REGEX='^Uncalled bet \(\$([.\d]+)\) returned to (.*)'
|
self.__UNCALLED_BET_REGEX='^Uncalled bet \(\$([.\d]+)\) returned to (.*)'
|
||||||
self.__POT_AND_RAKE_REGEX='^Total\spot\s\$([.\d]+).*\|\sRake\s\$([.\d]+)'
|
self.__POT_AND_RAKE_REGEX='^Total\spot\s\$([.\d]+).*\|\sRake\s\$([.\d]+)'
|
||||||
self.__COLLECT_POT_REGEX='^(.*)\scollected\s\$([.\d]+)\sfrom\s((main|side)\s)?pot'
|
self.__COLLECT_POT_REGEX='^(.*)\scollected\s\$([.\d]+)\sfrom\s((main|side)\s)?pot'
|
||||||
self.__POCKET_CARDS_REGEX='^Dealt\sto\s(.*)\s\[(\S{2})\s(\S{2})\]'
|
self.__HERO_CARDS_REGEX='^Dealt\sto\s(.*)\s\[(\S{2})\s(\S{2})\]'
|
||||||
self.__SHOWN_CARDS_REGEX='^(.*):\sshows\s\[(\S{2})\s(\S{2})\]'
|
self.__SHOWN_CARDS_REGEX='^(.*):\sshows\s\[(\S{2})\s(\S{2})\]'
|
||||||
self.__ACTION_STEP_REGEX='^(.*):\s(bets|checks|raises|calls|folds)((\s\$([.\d]+))?(\sto\s\$([.\d]+))?)?'
|
self.__ACTION_STEP_REGEX='^(.*):\s(bets|checks|raises|calls|folds)((\s\$([.\d]+))?(\sto\s\$([.\d]+))?)?'
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ class FpdbRegex:
|
||||||
self.summary_re = re.compile(self.__SUMMARY_REGEX)
|
self.summary_re = re.compile(self.__SUMMARY_REGEX)
|
||||||
self.uncalled_bet_re = re.compile(self.__UNCALLED_BET_REGEX)
|
self.uncalled_bet_re = re.compile(self.__UNCALLED_BET_REGEX)
|
||||||
self.collect_pot_re = re.compile(self.__COLLECT_POT_REGEX)
|
self.collect_pot_re = re.compile(self.__COLLECT_POT_REGEX)
|
||||||
self.pocket_cards_re = re.compile(self.__POCKET_CARDS_REGEX)
|
self.hero_cards_re = re.compile(self.__HERO_CARDS_REGEX)
|
||||||
self.cards_shown_re = re.compile(self.__SHOWN_CARDS_REGEX)
|
self.cards_shown_re = re.compile(self.__SHOWN_CARDS_REGEX)
|
||||||
self.summary_cards_re = re.compile(self.__SUMMARY_CARDS_REGEX)
|
self.summary_cards_re = re.compile(self.__SUMMARY_CARDS_REGEX)
|
||||||
self.summary_cards_extra_re = re.compile(self.__SUMMARY_CARDS_EXTRA_REGEX)
|
self.summary_cards_extra_re = re.compile(self.__SUMMARY_CARDS_EXTRA_REGEX)
|
||||||
|
@ -138,8 +138,8 @@ class FpdbRegex:
|
||||||
def setCollectPotRegex(self, string):
|
def setCollectPotRegex(self, string):
|
||||||
self.__COLLECT_POT_REGEX = string
|
self.__COLLECT_POT_REGEX = string
|
||||||
|
|
||||||
def setPocketCardsRegex(self, string):
|
def setHeroCardsRegex(self, string):
|
||||||
self.__POCKET_CARDS_REGEX = string
|
self.__HERO_CARDS_REGEX = string
|
||||||
|
|
||||||
def setShownCardsRegex(self, string):
|
def setShownCardsRegex(self, string):
|
||||||
self.__SHOWN_CARDS_REGEX = string
|
self.__SHOWN_CARDS_REGEX = string
|
||||||
|
|
|
@ -65,7 +65,11 @@ class HandHistoryConverter:
|
||||||
self.readHandInfo(hand)
|
self.readHandInfo(hand)
|
||||||
self.readPlayerStacks(hand)
|
self.readPlayerStacks(hand)
|
||||||
self.readBlinds(hand)
|
self.readBlinds(hand)
|
||||||
|
self.readHeroCards(hand)
|
||||||
|
if(hand.involved == True):
|
||||||
self.writeHand("output file", hand)
|
self.writeHand("output file", hand)
|
||||||
|
else:
|
||||||
|
pass #Don't write out observed hands
|
||||||
|
|
||||||
# Functions to be implemented in the inheriting class
|
# Functions to be implemented in the inheriting class
|
||||||
def readSupportedGames(self): abstract
|
def readSupportedGames(self): abstract
|
||||||
|
@ -87,6 +91,7 @@ class HandHistoryConverter:
|
||||||
# ['player1name', 'player2name', ...] where player1name is the sb and player2name is bb,
|
# ['player1name', 'player2name', ...] where player1name is the sb and player2name is bb,
|
||||||
# addtional players are assumed to post a bb oop
|
# addtional players are assumed to post a bb oop
|
||||||
def readBlinds(self, hand): abstract
|
def readBlinds(self, hand): abstract
|
||||||
|
def readHeroCards(self, hand): abstract
|
||||||
def readAction(self): abstract
|
def readAction(self): abstract
|
||||||
|
|
||||||
def sanityCheck(self):
|
def sanityCheck(self):
|
||||||
|
@ -157,7 +162,7 @@ class HandHistoryConverter:
|
||||||
print "XXXXXXXXX FIXME XXXXXXXX"
|
print "XXXXXXXXX FIXME XXXXXXXX"
|
||||||
|
|
||||||
print "*** HOLE CARDS ***"
|
print "*** HOLE CARDS ***"
|
||||||
# print "Dealt to " + hero + " [" + holecards + "]"
|
print "Dealt to %s [%s]" %(hand.hero ,hand.holecards)
|
||||||
#
|
#
|
||||||
## ACTION STUFF
|
## ACTION STUFF
|
||||||
#
|
#
|
||||||
|
@ -200,6 +205,9 @@ class Hand:
|
||||||
self.seating = []
|
self.seating = []
|
||||||
self.players = []
|
self.players = []
|
||||||
self.posted = []
|
self.posted = []
|
||||||
|
self.involved = True
|
||||||
|
self.hero = "Hiro"
|
||||||
|
self.holecards = "Xx Xx"
|
||||||
self.action = []
|
self.action = []
|
||||||
|
|
||||||
def printHand(self):
|
def printHand(self):
|
||||||
|
@ -217,3 +225,4 @@ class Hand:
|
||||||
print self.players
|
print self.players
|
||||||
print self.posted
|
print self.posted
|
||||||
print self.action
|
print self.action
|
||||||
|
print self.involved
|
||||||
|
|
Loading…
Reference in New Issue
Block a user