Merge branch 'master' of git://git.assembla.com/fpdboz.git

This commit is contained in:
Eric Blade 2010-09-18 02:30:01 -04:00
commit 2f585452bd
8 changed files with 503 additions and 35 deletions

View File

@ -85,8 +85,8 @@ class Carbon(HandHistoryConverter):
# The following are also static regexes: there is no need to call # The following are also static regexes: there is no need to call
# compilePlayerRegexes (which does nothing), since players are identified # compilePlayerRegexes (which does nothing), since players are identified
# not by name but by seat number # not by name but by seat number
re_PostSB = re.compile(r'<event sequence="[0-9]+" type="(SMALL_BLIND|RETURN_BLIND)" player="(?P<PSEAT>[0-9])" amount="(?P<SB>[.0-9]+)"/>', re.MULTILINE) re_PostSB = re.compile(r'<event sequence="[0-9]+" type="(SMALL_BLIND|RETURN_BLIND)" (?P<TIMESTAMP>timestamp="[0-9]+" )?player="(?P<PSEAT>[0-9])" amount="(?P<SB>[.0-9]+)"/>', re.MULTILINE)
re_PostBB = re.compile(r'<event sequence="[0-9]+" type="(BIG_BLIND|INITIAL_BLIND)" player="(?P<PSEAT>[0-9])" amount="(?P<BB>[.0-9]+)"/>', re.MULTILINE) re_PostBB = re.compile(r'<event sequence="[0-9]+" type="(BIG_BLIND|INITIAL_BLIND)" (?P<TIMESTAMP>timestamp="[0-9]+" )?player="(?P<PSEAT>[0-9])" amount="(?P<BB>[.0-9]+)"/>', re.MULTILINE)
re_PostBoth = re.compile(r'<event sequence="[0-9]+" type="(RETURN_BLIND)" player="(?P<PSEAT>[0-9])" amount="(?P<SBBB>[.0-9]+)"/>', re.MULTILINE) re_PostBoth = re.compile(r'<event sequence="[0-9]+" type="(RETURN_BLIND)" player="(?P<PSEAT>[0-9])" amount="(?P<SBBB>[.0-9]+)"/>', re.MULTILINE)
#re_Antes = ??? #re_Antes = ???
#re_BringIn = ??? #re_BringIn = ???
@ -170,7 +170,7 @@ or None if we fail to get the info """
if m is None: if m is None:
logging.info(_("Didn't match re_HandInfo")) logging.info(_("Didn't match re_HandInfo"))
logging.info(hand.handText) logging.info(hand.handText)
return None raise FpdbParseError("No match in readHandInfo.")
logging.debug("HID %s-%s, Table %s" % (m.group('HID1'), logging.debug("HID %s-%s, Table %s" % (m.group('HID1'),
m.group('HID2'), m.group('TABLE')[:-1])) m.group('HID2'), m.group('TABLE')[:-1]))
hand.handid = m.group('HID1') + m.group('HID2') hand.handid = m.group('HID1') + m.group('HID2')
@ -181,7 +181,7 @@ or None if we fail to get the info """
# Check that the hand is complete up to the awarding of the pot; if # Check that the hand is complete up to the awarding of the pot; if
# not, the hand is unparseable # not, the hand is unparseable
if self.re_EndOfHand.search(hand.handText) is None: if self.re_EndOfHand.search(hand.handText) is None:
raise FpdbParseError(hid=m.group('HID1') + "-" + m.group('HID2')) raise FpdbParseError("readHandInfo failed: HID: '%s' HID2: '%s'" %(m.group('HID1'), m.group('HID2')))
def readPlayerStacks(self, hand): def readPlayerStacks(self, hand):
m = self.re_PlayerInfo.finditer(hand.handText) m = self.re_PlayerInfo.finditer(hand.handText)
@ -221,15 +221,13 @@ or None if we fail to get the info """
pass # ??? pass # ???
def readBlinds(self, hand): def readBlinds(self, hand):
try: for a in self.re_PostSB.finditer(hand.handText):
m = self.re_PostSB.search(hand.handText) #print "DEBUG: found sb: '%s' '%s'" %(self.playerNameFromSeatNo(a.group('PSEAT'), hand), a.group('SB'))
hand.addBlind(self.playerNameFromSeatNo(m.group('PSEAT'), hand), hand.addBlind(self.playerNameFromSeatNo(a.group('PSEAT'), hand),'small blind', a.group('SB'))
'small blind', m.group('SB'))
except: # no small blind
hand.addBlind(None, None, None)
for a in self.re_PostBB.finditer(hand.handText): for a in self.re_PostBB.finditer(hand.handText):
hand.addBlind(self.playerNameFromSeatNo(a.group('PSEAT'), hand), #print "DEBUG: found bb: '%s' '%s'" %(self.playerNameFromSeatNo(a.group('PSEAT'), hand), a.group('BB'))
'big blind', a.group('BB')) hand.addBlind(self.playerNameFromSeatNo(a.group('PSEAT'), hand), 'big blind', a.group('BB'))
for a in self.re_PostBoth.finditer(hand.handText): for a in self.re_PostBoth.finditer(hand.handText):
bb = Decimal(self.info['bb']) bb = Decimal(self.info['bb'])
amount = Decimal(a.group('SBBB')) amount = Decimal(a.group('SBBB'))

View File

@ -61,7 +61,7 @@ class Fulltilt(HandHistoryConverter):
(?P<LIMIT>(No\sLimit|Pot\sLimit|Limit))?\s (?P<LIMIT>(No\sLimit|Pot\sLimit|Limit))?\s
(?P<GAME>(Hold\'em|Omaha\sHi|Omaha\sH/L|7\sCard\sStud|Stud\sH/L|Razz|Stud\sHi)) (?P<GAME>(Hold\'em|Omaha\sHi|Omaha\sH/L|7\sCard\sStud|Stud\sH/L|Razz|Stud\sHi))
''' % substitutions, re.VERBOSE) ''' % substitutions, re.VERBOSE)
re_SplitHands = re.compile(r"\n\n+") re_SplitHands = re.compile(r"\n\n\n+")
re_TailSplitHands = re.compile(r"(\n\n+)") re_TailSplitHands = re.compile(r"(\n\n+)")
re_HandInfo = re.compile(r'''.*\#(?P<HID>[0-9]+):\s re_HandInfo = re.compile(r'''.*\#(?P<HID>[0-9]+):\s
(?:(?P<TOURNAMENT>.+)\s\((?P<TOURNO>\d+)\),\s)? (?:(?P<TOURNAMENT>.+)\s\((?P<TOURNO>\d+)\),\s)?
@ -186,7 +186,10 @@ class Fulltilt(HandHistoryConverter):
m = self.re_GameInfo.search(handText) m = self.re_GameInfo.search(handText)
if not m: if not m:
return None tmp = handText[0:100]
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
log.error(_("determineGameType: Raising FpdbParseError"))
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
mg = m.groupdict() mg = m.groupdict()
# translations from captured groups to our info strings # translations from captured groups to our info strings

View File

@ -358,6 +358,8 @@ def main(argv=None):
help=_("Print some useful one liners")) help=_("Print some useful one liners"))
parser.add_option("-s", "--starsarchive", action="store_true", dest="starsArchive", default=False, parser.add_option("-s", "--starsarchive", action="store_true", dest="starsArchive", default=False,
help=_("Do the required conversion for Stars Archive format (ie. as provided by support")) help=_("Do the required conversion for Stars Archive format (ie. as provided by support"))
parser.add_option("-F", "--ftparchive", action="store_true", dest="ftpArchive", default=False,
help=_("Do the required conversion for FTP Archive format (ie. as provided by support"))
parser.add_option("-t", "--testdata", action="store_true", dest="testData", default=False, parser.add_option("-t", "--testdata", action="store_true", dest="testData", default=False,
help=_("Output the pprinted version of the HandsPlayer hash for regresion testing")) help=_("Output the pprinted version of the HandsPlayer hash for regresion testing"))
(options, argv) = parser.parse_args(args = argv) (options, argv) = parser.parse_args(args = argv)
@ -404,6 +406,8 @@ def main(argv=None):
importer.setCallHud(False) importer.setCallHud(False)
if options.starsArchive: if options.starsArchive:
importer.setStarsArchive(True) importer.setStarsArchive(True)
if options.ftpArchive:
importer.setFTPArchive(True)
if options.testData: if options.testData:
importer.setPrintTestData(True) importer.setPrintTestData(True)
(stored, dups, partial, errs, ttime) = importer.runImport() (stored, dups, partial, errs, ttime) = importer.runImport()

View File

@ -266,7 +266,8 @@ which it expects to find at self.re_TailSplitHands -- see for e.g. Everleaf.py.
if self.ftpArchive == True: if self.ftpArchive == True:
log.debug(_("Converting ftpArchive format to readable")) log.debug(_("Converting ftpArchive format to readable"))
m = re.compile('^\*\*\*\*\*\*+\s#\s\d+\s\*\*\*\*\*+$', re.MULTILINE) # Remove ******************** # 1 *************************
m = re.compile('\*{20}\s#\s\d+\s\*{25}\s+', re.MULTILINE)
self.obs = m.sub('', self.obs) self.obs = m.sub('', self.obs)
if self.obs is None or self.obs == "": if self.obs is None or self.obs == "":

View File

@ -139,7 +139,8 @@ class OnGame(HandHistoryConverter):
self.re_PostBB = re.compile('(?P<PNAME>.*) posts big blind \((%(CUR)s)?(?P<BB>[\.0-9]+)\)' % subst, re.MULTILINE) self.re_PostBB = re.compile('(?P<PNAME>.*) posts big blind \((%(CUR)s)?(?P<BB>[\.0-9]+)\)' % subst, re.MULTILINE)
self.re_Antes = re.compile(r"^%(PLYR)s: posts the ante (%(CUR)s)?(?P<ANTE>[\.0-9]+)" % subst, re.MULTILINE) self.re_Antes = re.compile(r"^%(PLYR)s: posts the ante (%(CUR)s)?(?P<ANTE>[\.0-9]+)" % subst, re.MULTILINE)
self.re_BringIn = re.compile(r"^%(PLYR)s: brings[- ]in( low|) for (%(CUR)s)?(?P<BRINGIN>[\.0-9]+)" % subst, re.MULTILINE) self.re_BringIn = re.compile(r"^%(PLYR)s: brings[- ]in( low|) for (%(CUR)s)?(?P<BRINGIN>[\.0-9]+)" % subst, re.MULTILINE)
self.re_PostBoth = re.compile('(?P<PNAME>.*): posts small \& big blinds \( (%(CUR)s)?(?P<SBBB>[\.0-9]+)\)' % subst) self.re_PostBoth = re.compile('(?P<PNAME>.*): posts small \& big blind \( (%(CUR)s)?(?P<SBBB>[\.0-9]+)\)' % subst)
self.re_PostDead = re.compile('(?P<PNAME>.*) posts dead blind \((%(CUR)s)?(?P<DEAD>[\.0-9]+)\)' % subst, re.MULTILINE)
self.re_HeroCards = re.compile('Dealing\sto\s%(PLYR)s:\s\[(?P<CARDS>.*)\]' % subst) self.re_HeroCards = re.compile('Dealing\sto\s%(PLYR)s:\s\[(?P<CARDS>.*)\]' % subst)
#lopllopl checks, Eurolll checks, .Lucchess checks. #lopllopl checks, Eurolll checks, .Lucchess checks.
@ -286,7 +287,6 @@ class OnGame(HandHistoryConverter):
hand.setCommunityCards(street, m.group('CARDS').split(', ')) hand.setCommunityCards(street, m.group('CARDS').split(', '))
def readBlinds(self, hand): def readBlinds(self, hand):
#log.debug( _("readBlinds starting, hand=") + "\n["+hand.handText+"]" )
try: try:
m = self.re_PostSB.search(hand.handText) m = self.re_PostSB.search(hand.handText)
hand.addBlind(m.group('PNAME'), 'small blind', m.group('SB')) hand.addBlind(m.group('PNAME'), 'small blind', m.group('SB'))
@ -295,6 +295,9 @@ class OnGame(HandHistoryConverter):
#hand.addBlind(None, None, None) #hand.addBlind(None, None, None)
for a in self.re_PostBB.finditer(hand.handText): for a in self.re_PostBB.finditer(hand.handText):
hand.addBlind(a.group('PNAME'), 'big blind', a.group('BB')) hand.addBlind(a.group('PNAME'), 'big blind', a.group('BB'))
for a in self.re_PostDead.finditer(hand.handText):
#print "DEBUG: Found dead blind: addBlind(%s, 'secondsb', %s)" %(a.group('PNAME'), a.group('DEAD'))
hand.addBlind(a.group('PNAME'), 'secondsb', a.group('DEAD'))
for a in self.re_PostBoth.finditer(hand.handText): for a in self.re_PostBoth.finditer(hand.handText):
hand.addBlind(a.group('PNAME'), 'small & big blinds', a.group('SBBB')) hand.addBlind(a.group('PNAME'), 'small & big blinds', a.group('SBBB'))

View File

@ -103,6 +103,7 @@ class Importer:
self.settings.setdefault("dropIndexes", "don't drop") self.settings.setdefault("dropIndexes", "don't drop")
self.settings.setdefault("dropHudCache", "don't drop") self.settings.setdefault("dropHudCache", "don't drop")
self.settings.setdefault("starsArchive", False) self.settings.setdefault("starsArchive", False)
self.settings.setdefault("ftpArchive", False)
self.settings.setdefault("testData", False) self.settings.setdefault("testData", False)
self.settings.setdefault("cacheHHC", False) self.settings.setdefault("cacheHHC", False)
@ -149,6 +150,9 @@ class Importer:
def setStarsArchive(self, value): def setStarsArchive(self, value):
self.settings['starsArchive'] = value self.settings['starsArchive'] = value
def setFTPArchive(self, value):
self.settings['ftpArchive'] = value
def setPrintTestData(self, value): def setPrintTestData(self, value):
self.settings['testData'] = value self.settings['testData'] = value
@ -469,7 +473,8 @@ class Importer:
else: else:
self.pos_in_file[file] = 0 self.pos_in_file[file] = 0
hhc = obj( self.config, in_path = file, out_path = out_path, index = idx hhc = obj( self.config, in_path = file, out_path = out_path, index = idx
, starsArchive = self.settings['starsArchive'], sitename = site ) , starsArchive = self.settings['starsArchive'], ftpArchive = self.settings['ftpArchive'],
sitename = site )
if hhc.getStatus(): if hhc.getStatus():
handlist = hhc.getProcessedHands() handlist = hhc.getProcessedHands()
self.pos_in_file[file] = hhc.getLastCharacterRead() self.pos_in_file[file] = hhc.getLastCharacterRead()

View File

@ -71,17 +71,16 @@ class iPoker(HandHistoryConverter):
re_GameInfo = re.compile(r'<gametype>(?P<GAME>[a-zA-Z0-9 ]+) \$(?P<SB>[.0-9]+)/\$(?P<BB>[.0-9]+)</gametype>', re.MULTILINE) re_GameInfo = re.compile(r'<gametype>(?P<GAME>[a-zA-Z0-9 ]+) \$(?P<SB>[.0-9]+)/\$(?P<BB>[.0-9]+)</gametype>', re.MULTILINE)
re_HandInfo = re.compile(r'gamecode="(?P<HID>[0-9]+)">\s+<general>\s+<startdate>(?P<DATETIME>[-: 0-9]+)</startdate>', re.MULTILINE) re_HandInfo = re.compile(r'gamecode="(?P<HID>[0-9]+)">\s+<general>\s+<startdate>(?P<DATETIME>[-: 0-9]+)</startdate>', re.MULTILINE)
re_Button = re.compile(r'<players dealer="(?P<BUTTON>[0-9]+)">') re_Button = re.compile(r'<players dealer="(?P<BUTTON>[0-9]+)">')
re_PlayerInfo = re.compile(r'<player seat="(?P<SEAT>[0-9]+)" name="(?P<PNAME>[^"]+)" chips="\$(?P<CASH>[.0-9]+)" dealer="(?P<DEALTIN>(0|1))"', re.MULTILINE) re_PlayerInfo = re.compile(r'<player seat="(?P<SEAT>[0-9]+)" name="(?P<PNAME>[^"]+)" chips="\$(?P<CASH>[.0-9]+)" dealer="(?P<DEALTIN>(0|1))" (?P<WIN>win="\$[^"]+") (bet="\$(?P<BET>[^"]+))?', re.MULTILINE)
re_Board = re.compile(r'<cards type="COMMUNITY" cards="(?P<CARDS>[^"]+)"', re.MULTILINE) re_Board = re.compile(r'<cards type="COMMUNITY" cards="(?P<CARDS>[^"]+)"', re.MULTILINE)
re_EndOfHand = re.compile(r'<round id="END_OF_GAME"', re.MULTILINE) re_EndOfHand = re.compile(r'<round id="END_OF_GAME"', re.MULTILINE)
re_PostSB = re.compile(r'<event sequence="[0-9]+" type="(SMALL_BLIND|RETURN_BLIND)" player="(?P<PSEAT>[0-9])" amount="(?P<SB>[.0-9]+)"/>', re.MULTILINE) re_PostSB = re.compile(r'<event sequence="[0-9]+" type="(SMALL_BLIND|RETURN_BLIND)" player="(?P<PSEAT>[0-9])" amount="(?P<SB>[.0-9]+)"/>', re.MULTILINE)
re_PostBB = re.compile(r'<event sequence="[0-9]+" type="(BIG_BLIND|INITIAL_BLIND)" player="(?P<PSEAT>[0-9])" amount="(?P<BB>[.0-9]+)"/>', re.MULTILINE) re_PostBB = re.compile(r'<event sequence="[0-9]+" type="(BIG_BLIND|INITIAL_BLIND)" player="(?P<PSEAT>[0-9])" amount="(?P<BB>[.0-9]+)"/>', re.MULTILINE)
re_PostBoth = re.compile(r'<event sequence="[0-9]+" type="(RETURN_BLIND)" player="(?P<PSEAT>[0-9])" amount="(?P<SBBB>[.0-9]+)"/>', re.MULTILINE) re_PostBoth = re.compile(r'<event sequence="[0-9]+" type="(RETURN_BLIND)" player="(?P<PSEAT>[0-9])" amount="(?P<SBBB>[.0-9]+)"/>', re.MULTILINE)
#re_Antes = ???
#re_BringIn = ???
re_HeroCards = re.compile(r'<cards type="HOLE" cards="(?P<CARDS>.+)" player="(?P<PSEAT>[0-9])"', re.MULTILINE) re_HeroCards = re.compile(r'<cards type="HOLE" cards="(?P<CARDS>.+)" player="(?P<PSEAT>[0-9])"', re.MULTILINE)
re_Action = re.compile(r'<action no="[0-9]+" player="(?P<PNAME>[^"]+)" type="(?P<ATYPE>0|3|4|16)" sum="\$(?P<BET>[.0-9]+)"', re.MULTILINE) re_Action = re.compile(r'<action no="[0-9]+" player="(?P<PNAME>[^"]+)" type="(?P<ATYPE>\d+)" sum="\$(?P<BET>[.0-9]+)"', re.MULTILINE)
re_Ante = re.compile(r'<action no="[0-9]+" player="(?P<PNAME>[^"]+)" type="(?P<ATYPE>15)" sum="\$(?P<BET>[.0-9]+)" cards="', re.MULTILINE)
re_ShowdownAction = re.compile(r'<cards type="SHOWN" cards="(?P<CARDS>..,..)" player="(?P<PSEAT>[0-9])"/>', re.MULTILINE) re_ShowdownAction = re.compile(r'<cards type="SHOWN" cards="(?P<CARDS>..,..)" player="(?P<PSEAT>[0-9])"/>', re.MULTILINE)
re_CollectPot = re.compile(r'<winner amount="(?P<POT>[.0-9]+)" uncalled="(true|false)" potnumber="[0-9]+" player="(?P<PSEAT>[0-9])"', re.MULTILINE) re_CollectPot = re.compile(r'<winner amount="(?P<POT>[.0-9]+)" uncalled="(true|false)" potnumber="[0-9]+" player="(?P<PSEAT>[0-9])"', re.MULTILINE)
re_SitsOut = re.compile(r'<event sequence="[0-9]+" type="SIT_OUT" player="(?P<PSEAT>[0-9])"/>', re.MULTILINE) re_SitsOut = re.compile(r'<event sequence="[0-9]+" type="SIT_OUT" player="(?P<PSEAT>[0-9])"/>', re.MULTILINE)
@ -135,7 +134,7 @@ or None if we fail to get the info """
self.info = {} self.info = {}
mg = m.groupdict() mg = m.groupdict()
print "DEBUG: m.groupdict(): %s" % mg #print "DEBUG: m.groupdict(): %s" % mg
limits = { 'No Limit':'nl', 'Limit':'fl' } limits = { 'No Limit':'nl', 'Limit':'fl' }
games = { # base, category games = { # base, category
@ -167,17 +166,18 @@ or None if we fail to get the info """
logging.info(hand.handText) logging.info(hand.handText)
raise FpdbParseError(_("Didn't match re_HandInfo")) raise FpdbParseError(_("Didn't match re_HandInfo"))
mg = m.groupdict() mg = m.groupdict()
print "DEBUG: m.groupdict(): %s" % mg #print "DEBUG: m.groupdict(): %s" % mg
hand.handid = m.group('HID') hand.handid = m.group('HID')
#hand.tablename = m.group('TABLE')[:-1] #hand.tablename = m.group('TABLE')[:-1]
hand.maxseats = None hand.maxseats = None
hand.startTime = datetime.datetime.strptime(m.group('DATETIME'), '%Y-%m-%d %H:%M:%S') hand.startTime = datetime.datetime.strptime(m.group('DATETIME'), '%Y-%m-%d %H:%M:%S')
def readPlayerStacks(self, hand): def readPlayerStacks(self, hand):
print "DEBUG: readPlayerStacks"
m = self.re_PlayerInfo.finditer(hand.handText) m = self.re_PlayerInfo.finditer(hand.handText)
for a in m: for a in m:
ag = a.groupdict() ag = a.groupdict()
print "DEBUG: ag: %s" %ag #print "DEBUG: re_PlayerInfo: %s" %ag
seatno = int(a.group('SEAT')) seatno = int(a.group('SEAT'))
# It may be necessary to adjust 'hand.maxseats', which is an # It may be necessary to adjust 'hand.maxseats', which is an
# educated guess, starting with 2 (indicating a heads-up table) and # educated guess, starting with 2 (indicating a heads-up table) and
@ -213,10 +213,13 @@ or None if we fail to get the info """
hand.setCommunityCards(street, [m.group('CARDS').split(',')[-1]]) hand.setCommunityCards(street, [m.group('CARDS').split(',')[-1]])
def readAntes(self, hand): def readAntes(self, hand):
pass # ??? m = self.re_Ante.finditer(hand.handText)
for a in m:
#print "DEBUG: addAnte(%s, %s)" %(a.group('PNAME'), a.group('BET'))
hand.addAnte(a.group('PNAME'), a.group('BET'))
def readBringIn(self, hand): def readBringIn(self, hand):
pass # ??? pass
def readBlinds(self, hand): def readBlinds(self, hand):
m = self.re_PostSB.search(hand.handText) m = self.re_PostSB.search(hand.handText)
@ -241,21 +244,28 @@ or None if we fail to get the info """
m = self.re_Action.finditer(hand.streets[street]) m = self.re_Action.finditer(hand.streets[street])
for action in m: for action in m:
ag = action.groupdict() ag = action.groupdict()
print "DEBUG: action.groupdict: %s" % ag #print "DEBUG: action.groupdict: %s" % ag
logging.debug("%s %s" % (action.group('ATYPE'), logging.debug("%s %s" % (action.group('ATYPE'),
action.groupdict())) action.groupdict()))
if action.group('ATYPE') == 'RAISE': if action.group('ATYPE') == 'RAISE': # Still no example for raise (i think?)
hand.addCallandRaise(street, player, action.group('BET')) hand.addCallandRaise(street, player, action.group('BET'))
elif action.group('ATYPE') == '3': # Believe this is 'call' elif action.group('ATYPE') == '3': # Believe this is 'call'
#print "DEBUG: addCall(%s, %s, %s)" %(street, action.group('PNAME'), action.group('BET'))
hand.addCall(street, action.group('PNAME'), action.group('BET')) hand.addCall(street, action.group('PNAME'), action.group('BET'))
elif action.group('ATYPE') == 'BET': elif action.group('ATYPE') == '5':
hand.addBet(street, player, action.group('BET')) #print "DEBUG: addBet(%s, %s, %s)" %(street, action.group('PNAME'), action.group('BET'))
hand.addBet(street, action.group('PNAME'), action.group('BET'))
elif action.group('ATYPE') == '0': # Belive this is 'fold' elif action.group('ATYPE') == '0': # Belive this is 'fold'
#print "DEBUG: addFold(%s, %s)" %(street, action.group('PNAME'))
hand.addFold(street, action.group('PNAME')) hand.addFold(street, action.group('PNAME'))
elif action.group('ATYPE') == 'CHECK': elif action.group('ATYPE') == '4':
hand.addCheck(street, player) #print "DEBUG: addCheck(%s, %s)" %(street, action.group('PNAME'))
elif action.group('ATYPE') == 'ALL_IN': hand.addCheck(street, action.group('PNAME'))
hand.addAllIn(street, player, action.group('BET')) #elif action.group('ATYPE') == 'ALL_IN':
# hand.addAllIn(street, player, action.group('BET'))
elif action.group('ATYPE') == '16': #BringIn
#print "DEBUG: addBringIn(%s, %s)" %(action.group('PNAME'), action.group('BET'))
hand.addBringIn(action.group('PNAME'), action.group('BET'))
else: else:
logging.error(_("Unimplemented readAction: %s" % (ag))) logging.error(_("Unimplemented readAction: %s" % (ag)))

View File

@ -0,0 +1,444 @@
***** History for hand R5-81867677-656 *****
Start hand: Mon Sep 13 00:26:26 GMT+0100 2010
Table: Tilburg [81867677] (LIMIT OMAHA_HI $0.05/$0.10, Real money)
User: tchazx
Button: seat 8
Players in round: 3
Seat 3: nickgerm ($3.74)
Seat 4: tchazx ($5)
Seat 8: XYXY26XYXY ($1.79)
nickgerm posts small blind ($0.02)
tchazx posts big blind ($0.05)
---
Dealing pocket cards
Dealing to tchazx: [Ks, 4s, 6s, Th]
XYXY26XYXY calls $0.05
nickgerm calls $0.03
tchazx checks
--- Dealing flop [5h, 7d, 2s]
nickgerm checks
tchazx checks
XYXY26XYXY checks
--- Dealing turn [Qs]
nickgerm checks
tchazx checks
XYXY26XYXY checks
--- Dealing river [4d]
nickgerm bets $0.10
tchazx folds
XYXY26XYXY folds
---
Summary:
Main pot: $0.15 won by nickgerm ($0.15)
Rake taken: $0
Seat 3: nickgerm ($3.84), net: +$0.10
Seat 4: tchazx ($4.95), net: -$0.05
Seat 8: XYXY26XYXY ($1.74), net: -$0.05
***** End of hand R5-81867677-656 *****
***** History for hand R5-81867677-657 *****
Start hand: Mon Sep 13 00:27:13 GMT+0100 2010
Table: Tilburg [81867677] (LIMIT OMAHA_HI $0.05/$0.10, Real money)
User: tchazx
Button: seat 3
Players in round: 3
Seat 4: tchazx ($4.95)
Seat 8: XYXY26XYXY ($1.74)
Seat 3: nickgerm ($3.84)
tchazx posts small blind ($0.02)
XYXY26XYXY posts big blind ($0.05)
---
Dealing pocket cards
Dealing to tchazx: [Jd, Td, 8h, Tc]
nickgerm calls $0.05
tchazx calls $0.03
XYXY26XYXY checks
--- Dealing flop [4h, 7c, 2c]
tchazx checks
XYXY26XYXY checks
nickgerm checks
--- Dealing turn [Kc]
tchazx checks
XYXY26XYXY checks
nickgerm bets $0.10
tchazx folds
XYXY26XYXY calls $0.10
--- Dealing river [3d]
XYXY26XYXY checks
nickgerm bets $0.10
XYXY26XYXY calls $0.10
---
Summary:
Main pot: $0.55 won by nickgerm ($0.27), XYXY26XYXY ($0.26)
Rake taken: $0.02
Seat 4: tchazx ($4.90), net: -$0.05
Seat 8: XYXY26XYXY ($1.75), net: +$0.01, [7h, Qs, 9c, Kd] (TWO_PAIR KING, SEVEN)
Seat 3: nickgerm ($3.86), net: +$0.02, [7d, 6s, Ks, Jc] (TWO_PAIR KING, SEVEN)
***** End of hand R5-81867677-657 *****
***** History for hand R5-81867677-658 *****
Start hand: Mon Sep 13 00:28:06 GMT+0100 2010
Table: Tilburg [81867677] (LIMIT OMAHA_HI $0.05/$0.10, Real money)
User: tchazx
Button: seat 4
Players in round: 5
Seat 8: XYXY26XYXY ($1.75)
Seat 10: Mandala14 ($3)
Seat 1: ANOKATO ($2.33)
Seat 3: nickgerm ($3.86)
Seat 4: tchazx ($4.90)
XYXY26XYXY posts small blind ($0.02)
Mandala14 posts big blind ($0.05)
ANOKATO posts big blind ($0.05)
---
Dealing pocket cards
Dealing to tchazx: [Ad, Js, Jc, 9h]
ANOKATO checks
nickgerm raises $0.10 to $0.10
tchazx calls $0.10
XYXY26XYXY calls $0.08
Mandala14 calls $0.05
ANOKATO calls $0.05
--- Dealing flop [6h, 2s, 5c]
XYXY26XYXY checks
Mandala14 checks
ANOKATO bets $0.05
nickgerm raises $0.10 to $0.10
tchazx calls $0.10
XYXY26XYXY folds
Mandala14 calls $0.10
ANOKATO raises $0.10 to $0.15
nickgerm calls $0.05
tchazx calls $0.05
Mandala14 calls $0.05
--- Dealing turn [Kh]
Mandala14 checks
ANOKATO bets $0.10
nickgerm calls $0.10
tchazx calls $0.10
Mandala14 calls $0.10
--- Dealing river [Ks]
Mandala14 bets $0.10
ANOKATO calls $0.10
nickgerm folds
tchazx calls $0.10
---
Summary:
Main pot: $1.80 won by Mandala14 ($1.71)
Rake taken: $0.09
Seat 8: XYXY26XYXY ($1.65), net: -$0.10
Seat 10: Mandala14 ($4.26), net: +$1.26, [As, Ah, 5s, Qs] (TWO_PAIR ACE, KING)
Seat 1: ANOKATO ($1.88), net: -$0.45
Seat 3: nickgerm ($3.51), net: -$0.35
Seat 4: tchazx ($4.45), net: -$0.45
***** End of hand R5-81867677-658 *****
***** History for hand R5-81867677-659 *****
Start hand: Mon Sep 13 00:29:21 GMT+0100 2010
Table: Tilburg [81867677] (LIMIT OMAHA_HI $0.05/$0.10, Real money)
User: tchazx
Button: seat 8
Players in round: 5
Seat 10: Mandala14 ($4.26)
Seat 1: ANOKATO ($1.88)
Seat 3: nickgerm ($3.51)
Seat 4: tchazx ($4.45)
Seat 8: XYXY26XYXY ($1.65)
Mandala14 posts small blind ($0.02)
ANOKATO posts big blind ($0.05)
---
Dealing pocket cards
Dealing to tchazx: [5h, Tc, 9c, 3h]
nickgerm raises $0.10 to $0.10
tchazx calls $0.10
XYXY26XYXY calls $0.10
Mandala14 calls $0.08
ANOKATO calls $0.05
--- Dealing flop [8s, 4d, 6d]
Mandala14 checks
ANOKATO checks
nickgerm bets $0.05
tchazx calls $0.05
XYXY26XYXY calls $0.05
Mandala14 calls $0.05
ANOKATO calls $0.05
--- Dealing turn [9s]
Mandala14 checks
ANOKATO bets $0.10
nickgerm raises $0.20 to $0.20
tchazx folds
XYXY26XYXY calls $0.20
Mandala14 calls $0.20
ANOKATO raises $0.20 to $0.30
nickgerm calls $0.10
XYXY26XYXY calls $0.10
Mandala14 calls $0.10
--- Dealing river [4c]
Mandala14 checks
ANOKATO bets $0.10
nickgerm folds
XYXY26XYXY folds
Mandala14 folds
---
Summary:
Main pot: $1.95 won by ANOKATO ($1.86)
Rake taken: $0.09
Seat 10: Mandala14 ($3.81), net: -$0.45
Seat 1: ANOKATO ($3.29), net: +$1.41
Seat 3: nickgerm ($3.06), net: -$0.45
Seat 4: tchazx ($4.30), net: -$0.15
Seat 8: XYXY26XYXY ($1.20), net: -$0.45
***** End of hand R5-81867677-659 *****
***** History for hand R5-81867677-660 *****
Start hand: Mon Sep 13 00:30:43 GMT+0100 2010
Table: Tilburg [81867677] (LIMIT OMAHA_HI $0.05/$0.10, Real money)
User: tchazx
Button: seat 10
Players in round: 5
Seat 1: ANOKATO ($3.29)
Seat 3: nickgerm ($3.06)
Seat 4: tchazx ($4.30)
Seat 8: XYXY26XYXY ($1.20)
Seat 10: Mandala14 ($3.81)
ANOKATO posts small blind ($0.02)
nickgerm posts big blind ($0.05)
---
Dealing pocket cards
Dealing to tchazx: [Qh, 4d, Ts, 9d]
tchazx calls $0.05
XYXY26XYXY calls $0.05
Mandala14 calls $0.05
ANOKATO calls $0.03
nickgerm raises $0.05 to $0.10
tchazx calls $0.05
XYXY26XYXY calls $0.05
Mandala14 calls $0.05
ANOKATO calls $0.05
--- Dealing flop [6d, 3c, Qc]
ANOKATO checks
nickgerm bets $0.05
tchazx calls $0.05
XYXY26XYXY calls $0.05
Mandala14 calls $0.05
ANOKATO calls $0.05
--- Dealing turn [7h]
ANOKATO checks
nickgerm checks
tchazx checks
XYXY26XYXY checks
Mandala14 checks
--- Dealing river [Jh]
ANOKATO bets $0.10
nickgerm folds
tchazx calls $0.10
XYXY26XYXY folds
Mandala14 folds
---
Summary:
Main pot: $0.95 won by ANOKATO ($0.91)
Rake taken: $0.04
Seat 1: ANOKATO ($3.95), net: +$0.66, [7c, Qd, Ks, 5d] (TWO_PAIR QUEEN, SEVEN)
Seat 3: nickgerm ($2.91), net: -$0.15
Seat 4: tchazx ($4.05), net: -$0.25
Seat 8: XYXY26XYXY ($1.05), net: -$0.15
Seat 10: Mandala14 ($3.66), net: -$0.15
***** End of hand R5-81867677-660 *****
***** History for hand R5-81867677-661 *****
Start hand: Mon Sep 13 00:31:54 GMT+0100 2010
Table: Tilburg [81867677] (LIMIT OMAHA_HI $0.05/$0.10, Real money)
User: tchazx
Button: seat 1
Players in round: 5
Seat 3: nickgerm ($2.91)
Seat 4: tchazx ($4.05)
Seat 8: XYXY26XYXY ($1.05)
Seat 10: Mandala14 ($3.66)
Seat 1: ANOKATO ($3.95)
nickgerm posts small blind ($0.02)
tchazx posts big blind ($0.05)
---
Dealing pocket cards
Dealing to tchazx: [5d, 9h, 6h, 4h]
XYXY26XYXY calls $0.05
Mandala14 calls $0.05
ANOKATO calls $0.05
nickgerm calls $0.03
tchazx checks
--- Dealing flop [2d, 4d, Jh]
nickgerm bets $0.05
tchazx folds
XYXY26XYXY calls $0.05
Mandala14 folds
ANOKATO calls $0.05
--- Dealing turn [As]
nickgerm bets $0.10
XYXY26XYXY calls $0.10
ANOKATO raises $0.20 to $0.20
nickgerm calls $0.10
XYXY26XYXY calls $0.10
--- Dealing river [Jc]
nickgerm bets $0.10
XYXY26XYXY calls $0.10
ANOKATO raises $0.20 to $0.20
nickgerm raises $0.20 to $0.30
XYXY26XYXY folds
ANOKATO calls $0.10
---
Summary:
Main pot: $1.70 won by nickgerm ($1.62)
Rake taken: $0.08
Seat 3: nickgerm ($3.93), net: +$1.02, [9c, 4s, Jd, 6c] (FULL_HOUSE JACK, FOUR)
Seat 4: tchazx ($4), net: -$0.05
Seat 8: XYXY26XYXY ($0.65), net: -$0.40
Seat 10: Mandala14 ($3.61), net: -$0.05
Seat 1: ANOKATO ($3.35), net: -$0.60
***** End of hand R5-81867677-661 *****
***** History for hand R5-81867677-662 *****
Start hand: Mon Sep 13 00:33:20 GMT+0100 2010
Table: Tilburg [81867677] (LIMIT OMAHA_HI $0.05/$0.10, Real money)
User: tchazx
Button: seat 3
Players in round: 5
Seat 4: tchazx ($4)
Seat 8: XYXY26XYXY ($0.65)
Seat 10: Mandala14 ($3.61)
Seat 1: ANOKATO ($3.35)
Seat 3: nickgerm ($3.93)
tchazx posts small blind ($0.02)
XYXY26XYXY posts big blind ($0.05)
---
Dealing pocket cards
Dealing to tchazx: [5s, 6c, Kc, 3s]
Mandala14 calls $0.05
ANOKATO calls $0.05
nickgerm raises $0.10 to $0.10
tchazx folds
XYXY26XYXY calls $0.05
Mandala14 calls $0.05
ANOKATO calls $0.05
--- Dealing flop [3h, 2d, 2s]
XYXY26XYXY checks
Mandala14 checks
ANOKATO checks
nickgerm bets $0.05
XYXY26XYXY calls $0.05
Mandala14 folds
ANOKATO raises $0.10 to $0.10
nickgerm calls $0.05
XYXY26XYXY folds
--- Dealing turn [4d]
ANOKATO checks
nickgerm bets $0.10
ANOKATO raises $0.20 to $0.20
nickgerm calls $0.10
--- Dealing river [Ts]
ANOKATO checks
nickgerm checks
---
Summary:
Main pot: $1.07 won by ANOKATO ($1.02)
Rake taken: $0.05
Seat 4: tchazx ($3.98), net: -$0.02
Seat 8: XYXY26XYXY ($0.50), net: -$0.15
Seat 10: Mandala14 ($3.51), net: -$0.10
Seat 1: ANOKATO ($3.97), net: +$0.62, [Js, 5c, 9c, 2h] (THREE_OF_A_KIND TWO)
Seat 3: nickgerm ($3.53), net: -$0.40
***** End of hand R5-81867677-662 *****
***** History for hand R5-81867677-663 *****
Start hand: Mon Sep 13 00:34:34 GMT+0100 2010
Table: Tilburg [81867677] (LIMIT OMAHA_HI $0.05/$0.10, Real money)
User: tchazx
Button: seat 4
Players in round: 5
Seat 8: XYXY26XYXY ($0.50)
Seat 10: Mandala14 ($3.51)
Seat 1: ANOKATO ($3.97)
Seat 3: nickgerm ($3.53)
Seat 4: tchazx ($3.98)
XYXY26XYXY posts small blind ($0.02)
Mandala14 posts big blind ($0.05)
---
Dealing pocket cards
Dealing to tchazx: [Ac, 9h, 6h, Jc]
ANOKATO calls $0.05
nickgerm calls $0.05
tchazx calls $0.05
XYXY26XYXY calls $0.03
Mandala14 checks
--- Dealing flop [7s, 4c, 8s]
XYXY26XYXY checks
Mandala14 checks
ANOKATO bets $0.05
nickgerm calls $0.05
tchazx calls $0.05
XYXY26XYXY calls $0.05
Mandala14 calls $0.05
--- Dealing turn [2d]
XYXY26XYXY checks
Mandala14 checks
ANOKATO bets $0.10
nickgerm raises $0.20 to $0.20
tchazx calls $0.20
XYXY26XYXY calls $0.20
Mandala14 calls $0.20
ANOKATO calls $0.10
--- Dealing river [4h]
XYXY26XYXY bets $0.10
Mandala14 folds
ANOKATO calls $0.10
nickgerm raises $0.20 to $0.20
tchazx folds
XYXY26XYXY calls $0.10 [all in]
ANOKATO folds
---
Summary:
Main pot: $2 won by XYXY26XYXY ($1.90)
Rake taken: $0.10
Seat 8: XYXY26XYXY ($1.90), net: +$1.40, [8d, 5c, 4d, 3c] (FULL_HOUSE FOUR, EIGHT)
Seat 10: Mandala14 ($3.21), net: -$0.30
Seat 1: ANOKATO ($3.57), net: -$0.40
Seat 3: nickgerm ($3.03), net: -$0.50, [6s, Th, 3d, 5d] (STRAIGHT EIGHT)
Seat 4: tchazx ($3.68), net: -$0.30
***** End of hand R5-81867677-663 *****
***** History for hand R5-81867677-664 *****
Start hand: Mon Sep 13 00:36:21 GMT+0100 2010
Table: Tilburg [81867677] (LIMIT OMAHA_HI $0.05/$0.10, Real money)
User: tchazx
Button: seat 8
Players in round: 5
Seat 10: Mandala14 ($3.21)
Seat 1: ANOKATO ($3.57)
Seat 3: nickgerm ($3.03)
Seat 4: tchazx ($3.68)
Seat 8: XYXY26XYXY ($1.90)
Mandala14 posts small blind ($0.02)
ANOKATO posts big blind ($0.05)
---
Dealing pocket cards
Dealing to tchazx: [7d, Kh, 4s, Jh]
nickgerm calls $0.05
tchazx calls $0.05
XYXY26XYXY folds
Mandala14 calls $0.03
ANOKATO checks
--- Dealing flop [4h, Js, Ac]
Mandala14 checks
ANOKATO folds
nickgerm bets $0.05
tchazx calls $0.05
Mandala14 calls $0.05
--- Dealing turn [8c]
Mandala14 checks
nickgerm checks
tchazx checks
--- Dealing river [3d]
Mandala14 checks
nickgerm checks
tchazx checks
---
Summary:
Main pot: $0.35 won by tchazx ($0.34)
Rake taken: $0.01
Seat 10: Mandala14 ($3.11), net: -$0.10, [7h, 4d, Qh, 6d] (PAIR FOUR)
Seat 1: ANOKATO ($3.52), net: -$0.05
Seat 3: nickgerm ($2.93), net: -$0.10, [7s, Qd, 6s, Ah] (PAIR ACE)
Seat 4: tchazx ($3.92), net: +$0.24, [7d, Kh, 4s, Jh] (TWO_PAIR JACK, FOUR)
Seat 8: XYXY26XYXY ($1.90)
***** End of hand R5-81867677-664 *****