diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index 59ba90ef..8faf5dfb 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -433,9 +433,9 @@ or None if we fail to get the info """ try: in_fh = codecs.open(self.in_path, 'r', kodec) whole_file = in_fh.read() + in_fh.close() self.obs = whole_file[self.index:] self.index = len(whole_file) - in_fh.close() break except: pass diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index 1e71c39e..384f5082 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -72,7 +72,7 @@ class PokerStars(HandHistoryConverter): (Tournament\s\# # open paren of tournament info (?P\d+),\s # here's how I plan to use LS - (?P(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)\s?(?P%(LEGAL_ISO)s)?|Freeroll)\s+)? + (?P(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)?\s?(?P%(LEGAL_ISO)s)?|Freeroll)\s+)? # close paren of tournament info (?PHORSE|8\-Game|HOSE)?\s?\(? (?PHold\'em|Razz|RAZZ|7\sCard\sStud|7\sCard\sStud\sHi/Lo|Omaha|Omaha\sHi/Lo|Badugi|Triple\sDraw\s2\-7\sLowball|5\sCard\sDraw)\s @@ -250,18 +250,25 @@ class PokerStars(HandHistoryConverter): 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": - hand.buyin = int(100*Decimal(info['BIAMT'][1:])) - if info['BIRAKE'][0]!="$": #we have a non-bounty game - info['BOUNTY']=info['BOUNTY']+info['BIRAKE'] #TODO remove this dirty dirty hack by fixing regex - hand.fee = int(100*Decimal(info['BOUNTY'][1:])) - else: - hand.fee = int(100*Decimal(info['BIRAKE'][1:])) + 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 - hand.koBounty = int(100*Decimal(info['BOUNTY'][1:])) + + 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[key][0:-3])) + hand.buyin = int(Decimal(info['BIAMT'])) hand.fee = 0 if key == 'LEVEL': hand.level = info[key] diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index eeaa63ac..cbe87684 100755 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -464,8 +464,11 @@ class Importer: #pipe the Hands.id out to the HUD for hid in to_hud: - print "fpdb_import: sending hand to hud", hand.dbid_hands, "pipe =", self.caller.pipe_to_hud - self.caller.pipe_to_hud.stdin.write("%s" % (hid) + os.linesep) + try: + print "fpdb_import: sending hand to hud", hand.dbid_hands, "pipe =", self.caller.pipe_to_hud + self.caller.pipe_to_hud.stdin.write("%s" % (hid) + os.linesep) + except IOError, e: + log.error("Failed to send hand to HUD: %s" % e) errors = getattr(hhc, 'numErrors') stored = getattr(hhc, 'numHands')