From 4a0b2274f806864ec62b0fb8702558fe7fabfc73 Mon Sep 17 00:00:00 2001 From: PassThePeas Date: Tue, 1 Sep 2009 23:46:46 +0200 Subject: [PATCH] Tourney parsing : Use of "Decimal" insted of float2int / Handle amounts in cents four Tourney Object --- pyfpdb/FulltiltToFpdb.py | 39 ++++++++++++++++++++------------------- pyfpdb/Tourney.py | 3 +-- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/pyfpdb/FulltiltToFpdb.py b/pyfpdb/FulltiltToFpdb.py index bebb9406..e0d9c402 100755 --- a/pyfpdb/FulltiltToFpdb.py +++ b/pyfpdb/FulltiltToFpdb.py @@ -20,7 +20,6 @@ import sys import logging -import fpdb_simple from HandHistoryConverter import * # Fulltilt HH Format converter @@ -476,10 +475,10 @@ class Fulltilt(HandHistoryConverter): # Additional info can be stored in the tourney object if mg['BUYIN'] is not None: - tourney.buyin = fpdb_simple.float2int(mg['BUYIN']) - tourney.fee = 0 + tourney.buyin = 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) + tourney.fee = 0 if mg['FEE'] is not None: - tourney.fee = fpdb_simple.float2int(mg['FEE']) + tourney.fee = 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) if mg['TOURNAMENT_NAME'] is not None: # Tournament Name can have a trailing space at the end (depending on the tournament description) tourney.tourneyName = mg['TOURNAMENT_NAME'].rstrip() @@ -524,25 +523,25 @@ class Fulltilt(HandHistoryConverter): mg = m.groupdict() if tourney.isMatrix : if mg['BUYIN'] is not None: - tourney.subTourneyBuyin = fpdb_simple.float2int(mg['BUYIN']) + tourney.subTourneyBuyin = 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) tourney.subTourneyFee = 0 if mg['FEE'] is not None: - tourney.subTourneyFee = fpdb_simple.float2int(mg['FEE']) + tourney.subTourneyFee = 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) else : if mg['BUYIN'] is not None: if tourney.buyin is None: - tourney.buyin = fpdb_simple.float2int(mg['BUYIN']) + tourney.buyin = 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) else : - if fpdb_simple.float2int(mg['BUYIN']) != tourney.buyin: - log.error( "Conflict between buyins read in topline (%s) and in BuyIn field (%s)" % (touney.buyin, fpdb_simple.float2int(mg['BUYIN'])) ) - tourney.subTourneyBuyin = fpdb_simple.float2int(mg['BUYIN']) + if 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) != tourney.buyin: + log.error( "Conflict between buyins read in topline (%s) and in BuyIn field (%s)" % (touney.buyin, 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN']))) ) + tourney.subTourneyBuyin = 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) if mg['FEE'] is not None: if tourney.fee is None: - tourney.fee = fpdb_simple.float2int(mg['FEE']) + tourney.fee = 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) else : - if fpdb_simple.float2int(mg['FEE']) != tourney.fee: - log.error( "Conflict between fees read in topline (%s) and in BuyIn field (%s)" % (touney.fee, fpdb_simple.float2int(mg['FEE'])) ) - tourney.subTourneyFee = mg['FEE'] + if 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) != tourney.fee: + log.error( "Conflict between fees read in topline (%s) and in BuyIn field (%s)" % (touney.fee, 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE']))) ) + tourney.subTourneyFee = 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) if tourney.buyin is None: log.info( "Unable to affect a buyin to this tournament : assume it's a freeroll" ) @@ -597,11 +596,13 @@ class Fulltilt(HandHistoryConverter): if mg['IN_PROGRESS'] is not None or mg['ENDTIME'] is not None: # Assign endtime to tourney (if None, that's ok, it's because the tourney wans't over over when the summary file was produced) tourney.endtime = mg['ENDTIME'] - - tourney.rebuyAmount = fpdb_simple.float2int("%s" % tourney.rebuyAmount) - tourney.addOnAmount = fpdb_simple.float2int("%s" % tourney.addOnAmount) - #print mg + # Deal with money amounts + tourney.koBounty = 100*Decimal(re.sub(u',', u'', "%s" % tourney.koBounty)) + tourney.prizepool = 100*Decimal(re.sub(u',', u'', "%s" % tourney.prizepool)) + tourney.rebuyAmount = 100*Decimal(re.sub(u',', u'', "%s" % tourney.rebuyAmount)) + tourney.addOnAmount = 100*Decimal(re.sub(u',', u'', "%s" % tourney.addOnAmount)) + #print mg return True def getPlayersPositionsAndWinnings(self, tourney): @@ -617,7 +618,7 @@ class Fulltilt(HandHistoryConverter): rank = Decimal(a.group('RANK')) if a.group('WINNING') is not None: - winnings = a.group('WINNING') + winnings = 100*Decimal(re.sub(u',', u'', "%s" % a.group('WINNING'))) else: winnings = "0" diff --git a/pyfpdb/Tourney.py b/pyfpdb/Tourney.py index 12026d78..1c2cb365 100644 --- a/pyfpdb/Tourney.py +++ b/pyfpdb/Tourney.py @@ -260,10 +260,9 @@ db: a connected fpdb_db object""" Adds a player to the tourney, and initialises data structures indexed by player. rank (int) indicating the finishing rank (can be -1 if unknown) name (string) player name -winnings (string) the money the player ended the tourney with (can be 0, or -1 if unknown) +winnings (decimal) the money the player ended the tourney with (can be 0, or -1 if unknown) """ log.debug("addPlayer: rank:%s - name : '%s' - Winnings (%s)" % (rank, name, winnings)) - winnings = re.sub(u',', u'', winnings) #some sites have commas self.players.append(name) self.finishPositions.update( { name : Decimal(rank) } ) self.winnings.update( { name : Decimal(winnings) } )