Winamax: Pull in tournament support from Forrest
Also add tournament directory to regression test file
This commit is contained in:
parent
18df2ef2c6
commit
927d27ecce
|
@ -201,6 +201,7 @@ def main(argv=None):
|
||||||
walk_testfiles("regression-test-files/cash/iPoker/", compare, importer, iPokerErrors, "iPoker")
|
walk_testfiles("regression-test-files/cash/iPoker/", compare, importer, iPokerErrors, "iPoker")
|
||||||
if sites['Winamax'] == True:
|
if sites['Winamax'] == True:
|
||||||
walk_testfiles("regression-test-files/cash/Winamax/", compare, importer, WinamaxErrors, "Winamax")
|
walk_testfiles("regression-test-files/cash/Winamax/", compare, importer, WinamaxErrors, "Winamax")
|
||||||
|
walk_testfiles("regression-test-files/tour/Winamax/", compare, importer, WinamaxErrors, "Winamax")
|
||||||
if sites['Win2day'] == True:
|
if sites['Win2day'] == True:
|
||||||
walk_testfiles("regression-test-files/cash/Win2day/", compare, importer, Win2dayErrors, "Win2day")
|
walk_testfiles("regression-test-files/cash/Win2day/", compare, importer, Win2dayErrors, "Win2day")
|
||||||
|
|
||||||
|
|
|
@ -82,15 +82,26 @@ class Winamax(HandHistoryConverter):
|
||||||
# Winamax Poker - CashGame - HandId: #279823-223-1285031451 - Holdem no limit (0.02€/0.05€) - 2010/09/21 03:10:51 UTC
|
# Winamax Poker - CashGame - HandId: #279823-223-1285031451 - Holdem no limit (0.02€/0.05€) - 2010/09/21 03:10:51 UTC
|
||||||
# Table: 'Charenton-le-Pont' 9-max (real money) Seat #5 is the button
|
# Table: 'Charenton-le-Pont' 9-max (real money) Seat #5 is the button
|
||||||
re_HandInfo = re.compile(u"""
|
re_HandInfo = re.compile(u"""
|
||||||
\s*Winamax\sPoker\s-\sCashGame\s-\sHandId:\s\#(?P<HID1>\d+)-(?P<HID2>\d+)-(?P<HID3>\d+).*\s
|
\s*Winamax\sPoker\s-\s
|
||||||
|
(?P<RING>CashGame)?
|
||||||
|
(?P<TOUR>Tournament\s
|
||||||
|
(?P<TOURNAME>.+)?\s
|
||||||
|
buyIn:\s(?P<BUYIN>(?P<BIAMT>[%(LS)s\d\,]+)?\s\+?\s(?P<BIRAKE>[%(LS)s\d\,]+)?\+?(?P<BOUNTY>[%(LS)s\d\.]+)?\s?(?P<TOUR_ISO>%(LEGAL_ISO)s)?|Gratuit|Ticket\suniquement)?\s
|
||||||
|
(level:\s(?P<LEVEL>\d+))?
|
||||||
|
.*)?
|
||||||
|
\s-\sHandId:\s\#(?P<HID1>\d+)-(?P<HID2>\d+)-(?P<HID3>\d+).*\s
|
||||||
(?P<GAME>Holdem|Omaha)\s
|
(?P<GAME>Holdem|Omaha)\s
|
||||||
(?P<LIMIT>no\slimit|pot\slimit)\s
|
(?P<LIMIT>no\slimit|pot\slimit)\s
|
||||||
\(
|
\(
|
||||||
|
(((%(LS)s)?(?P<ANTE>[.0-9]+)(%(LS)s)?)/)?
|
||||||
((%(LS)s)?(?P<SB>[.0-9]+)(%(LS)s)?)/
|
((%(LS)s)?(?P<SB>[.0-9]+)(%(LS)s)?)/
|
||||||
((%(LS)s)?(?P<BB>[.0-9]+)(%(LS)s)?)
|
((%(LS)s)?(?P<BB>[.0-9]+)(%(LS)s)?)
|
||||||
\)\s-\s
|
\)\s-\s
|
||||||
(?P<DATETIME>.*)
|
(?P<DATETIME>.*)
|
||||||
Table:\s\'(?P<TABLE>[^']+)\'\s(?P<MAXPLAYER>\d+)\-max
|
Table:\s\'(?P<TABLE>[^(]+)
|
||||||
|
(.(?P<TOURNO>\d+).\#(?P<TABLENO>\d+))?.*
|
||||||
|
\'
|
||||||
|
\s(?P<MAXPLAYER>\d+)\-max
|
||||||
""" % substitutions, re.MULTILINE|re.DOTALL|re.VERBOSE)
|
""" % substitutions, re.MULTILINE|re.DOTALL|re.VERBOSE)
|
||||||
|
|
||||||
re_TailSplitHands = re.compile(r'\n\s*\n')
|
re_TailSplitHands = re.compile(r'\n\s*\n')
|
||||||
|
@ -126,8 +137,8 @@ class Winamax(HandHistoryConverter):
|
||||||
self.re_PostSB = re.compile('%(PLYR)s posts small blind (%(CUR)s)?(?P<SB>[\.0-9]+)(%(CUR)s)?' % subst, re.MULTILINE)
|
self.re_PostSB = re.compile('%(PLYR)s posts small blind (%(CUR)s)?(?P<SB>[\.0-9]+)(%(CUR)s)?' % subst, re.MULTILINE)
|
||||||
self.re_PostBB = re.compile('%(PLYR)s posts big blind (%(CUR)s)?(?P<BB>[\.0-9]+)(%(CUR)s)?' % subst, re.MULTILINE)
|
self.re_PostBB = re.compile('%(PLYR)s posts big blind (%(CUR)s)?(?P<BB>[\.0-9]+)(%(CUR)s)?' % subst, re.MULTILINE)
|
||||||
self.re_DenySB = re.compile('(?P<PNAME>.*) deny SB' % subst, re.MULTILINE)
|
self.re_DenySB = re.compile('(?P<PNAME>.*) deny SB' % subst, re.MULTILINE)
|
||||||
self.re_Antes = re.compile(r"^%(PLYR)s: posts the ante (%(CUR)s)?(?P<ANTE>[\.0-9]+)(%(CUR)s)?" % subst, re.MULTILINE)
|
self.re_Antes = re.compile(r"^%(PLYR)s posts ante (%(CUR)s)?(?P<ANTE>[\.0-9]+)(%(CUR)s)?" % subst, re.MULTILINE)
|
||||||
self.re_BringIn = re.compile(r"^%(PLYR)s: brings[- ]in( low|) for (%(CUR)s)?(?P<BRINGIN>[\.0-9]+(%(CUR)s)?)" % subst, re.MULTILINE)
|
self.re_BringIn = re.compile(r"^%(PLYR)s brings[- ]in( low|) for (%(CUR)s)?(?P<BRINGIN>[\.0-9]+(%(CUR)s)?)" % subst, re.MULTILINE)
|
||||||
self.re_PostBoth = re.compile('(?P<PNAME>.*): posts small \& big blind \( (%(CUR)s)?(?P<SBBB>[\.0-9]+)(%(CUR)s)?\)' % subst)
|
self.re_PostBoth = re.compile('(?P<PNAME>.*): posts small \& big blind \( (%(CUR)s)?(?P<SBBB>[\.0-9]+)(%(CUR)s)?\)' % subst)
|
||||||
self.re_PostDead = re.compile('(?P<PNAME>.*) posts dead blind \((%(CUR)s)?(?P<DEAD>[\.0-9]+)(%(CUR)s)?\)' % subst, re.MULTILINE)
|
self.re_PostDead = re.compile('(?P<PNAME>.*) posts dead blind \((%(CUR)s)?(?P<DEAD>[\.0-9]+)(%(CUR)s)?\)' % subst, re.MULTILINE)
|
||||||
self.re_HeroCards = re.compile('Dealt\sto\s%(PLYR)s\s\[(?P<CARDS>.*)\]' % subst)
|
self.re_HeroCards = re.compile('Dealt\sto\s%(PLYR)s\s\[(?P<CARDS>.*)\]' % subst)
|
||||||
|
@ -144,6 +155,9 @@ class Winamax(HandHistoryConverter):
|
||||||
["ring", "hold", "fl"],
|
["ring", "hold", "fl"],
|
||||||
["ring", "hold", "nl"],
|
["ring", "hold", "nl"],
|
||||||
["ring", "hold", "pl"],
|
["ring", "hold", "pl"],
|
||||||
|
["tour", "hold", "fl"],
|
||||||
|
["tour", "hold", "nl"],
|
||||||
|
["tour", "hold", "pl"],
|
||||||
]
|
]
|
||||||
|
|
||||||
def determineGameType(self, handText):
|
def determineGameType(self, handText):
|
||||||
|
@ -160,7 +174,11 @@ class Winamax(HandHistoryConverter):
|
||||||
|
|
||||||
mg = m.groupdict()
|
mg = m.groupdict()
|
||||||
|
|
||||||
|
if mg.get('TOUR'):
|
||||||
|
info['type'] = 'tour'
|
||||||
|
elif mg.get('RING'):
|
||||||
info['type'] = 'ring'
|
info['type'] = 'ring'
|
||||||
|
|
||||||
info['currency'] = 'EUR'
|
info['currency'] = 'EUR'
|
||||||
|
|
||||||
if 'LIMIT' in mg:
|
if 'LIMIT' in mg:
|
||||||
|
@ -202,11 +220,62 @@ class Winamax(HandHistoryConverter):
|
||||||
hand.startTime = datetime.datetime.strptime(datetimestr, "%Y/%m/%d %H:%M:%S") # also timezone at end, e.g. " ET"
|
hand.startTime = datetime.datetime.strptime(datetimestr, "%Y/%m/%d %H:%M:%S") # also timezone at end, e.g. " ET"
|
||||||
hand.startTime = HandHistoryConverter.changeTimezone(hand.startTime, "CET", "UTC")
|
hand.startTime = HandHistoryConverter.changeTimezone(hand.startTime, "CET", "UTC")
|
||||||
if key == 'HID1':
|
if key == 'HID1':
|
||||||
hand.handid = "1%.4d%s%s"%(int(info['HID2']),info['HID1'],info['HID3'])
|
|
||||||
# Need to remove non-alphanumerics for MySQL
|
# Need to remove non-alphanumerics for MySQL
|
||||||
|
hand.handid = "1%.9d%s%s"%(int(info['HID2']),info['HID1'],info['HID3'])
|
||||||
|
if key == 'TOURNO':
|
||||||
|
hand.tourNo = info[key]
|
||||||
if key == 'TABLE':
|
if key == 'TABLE':
|
||||||
hand.tablename = info[key]
|
hand.tablename = info[key]
|
||||||
|
|
||||||
|
if key == 'BUYIN':
|
||||||
|
if hand.tourNo!=None:
|
||||||
|
#print "DEBUG: info['BUYIN']: %s" % info['BUYIN']
|
||||||
|
#print "DEBUG: info['BIAMT']: %s" % info['BIAMT']
|
||||||
|
#print "DEBUG: info['BIRAKE']: %s" % info['BIRAKE']
|
||||||
|
#print "DEBUG: info['BOUNTY']: %s" % info['BOUNTY']
|
||||||
|
for k in ['BIAMT','BIRAKE']:
|
||||||
|
if k in info.keys() and info[k]:
|
||||||
|
info[k] = info[k].replace(',','.')
|
||||||
|
|
||||||
|
if info[key] == 'Freeroll':
|
||||||
|
hand.buyin = 0
|
||||||
|
hand.fee = 0
|
||||||
|
hand.buyinCurrency = "FREE"
|
||||||
|
else:
|
||||||
|
if info[key].find("$")!=-1:
|
||||||
|
hand.buyinCurrency="USD"
|
||||||
|
elif info[key].find(u"€")!=-1:
|
||||||
|
hand.buyinCurrency="EUR"
|
||||||
|
elif info[key].find("FPP")!=-1:
|
||||||
|
hand.buyinCurrency="PSFP"
|
||||||
|
else:
|
||||||
|
#FIXME: handle other currencies, FPP, play money
|
||||||
|
raise FpdbParseError(_("failed to detect currency"))
|
||||||
|
|
||||||
|
info['BIAMT'] = info['BIAMT'].strip(u'$€FPP')
|
||||||
|
|
||||||
|
if hand.buyinCurrency!="PSFP":
|
||||||
|
if info['BOUNTY'] != None:
|
||||||
|
# There is a bounty, Which means we need to switch BOUNTY and BIRAKE values
|
||||||
|
tmp = info['BOUNTY']
|
||||||
|
info['BOUNTY'] = info['BIRAKE']
|
||||||
|
info['BIRAKE'] = tmp
|
||||||
|
info['BOUNTY'] = info['BOUNTY'].strip(u'$€') # Strip here where it isn't 'None'
|
||||||
|
hand.koBounty = int(100*Decimal(info['BOUNTY']))
|
||||||
|
hand.isKO = True
|
||||||
|
else:
|
||||||
|
hand.isKO = False
|
||||||
|
|
||||||
|
info['BIRAKE'] = info['BIRAKE'].strip(u'$€')
|
||||||
|
hand.buyin = int(100*Decimal(info['BIAMT']))
|
||||||
|
hand.fee = int(100*Decimal(info['BIRAKE']))
|
||||||
|
else:
|
||||||
|
hand.buyin = int(Decimal(info['BIAMT']))
|
||||||
|
hand.fee = 0
|
||||||
|
|
||||||
|
if key == 'LEVEL':
|
||||||
|
hand.level = info[key]
|
||||||
|
|
||||||
# TODO: These
|
# TODO: These
|
||||||
hand.buttonpos = 1
|
hand.buttonpos = 1
|
||||||
hand.maxseats = 10 # Set to None - Hand.py will guessMaxSeats()
|
hand.maxseats = 10 # Set to None - Hand.py will guessMaxSeats()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user