diff --git a/pyfpdb/EverleafToFpdb.py b/pyfpdb/EverleafToFpdb.py index b81117c4..f09c67d1 100644 --- a/pyfpdb/EverleafToFpdb.py +++ b/pyfpdb/EverleafToFpdb.py @@ -59,14 +59,20 @@ class Everleaf(HandHistoryConverter): HandHistoryConverter.__init__(self, config, file, "Everleaf") # Call super class init. self.sitename = "Everleaf" self.setFileType("text") - self.rexx.setSplitHandRegex("\n\n\n") + self.rexx.setGameInfoRegex('.*Blinds \$?(?P[.0-9]+)/\$?(?P[.0-9]+)') + self.rexx.setSplitHandRegex('\n\n\n') self.rexx.compileRegexes() def readSupportedGames(self): pass def determineGameType(self): + # Cheating with this regex, only support nlhe at the moment gametype = ["ring", "hold", "nl"] + + m = self.rexx.game_info_re.search(self.obs) + gametype = gametype + [self.float2int(m.group('SB'))] + gametype = gametype + [self.float2int(m.group('BB'))] return gametype @@ -83,5 +89,5 @@ if __name__ == "__main__": c = Configuration.Config() e = Everleaf(c, "regression-test-files/everleaf/Speed_Kuala.txt") e.processFile() -# print str(e) + print str(e) diff --git a/pyfpdb/FpdbRegex.py b/pyfpdb/FpdbRegex.py index f287c2f6..311a309f 100644 --- a/pyfpdb/FpdbRegex.py +++ b/pyfpdb/FpdbRegex.py @@ -27,6 +27,7 @@ import re class FpdbRegex: def __init__(self): + self.__GAME_INFO_REGEX='' self.__SPLIT_HAND_REGEX='\n\n\n' self.__NEW_HAND_REGEX='^.?PokerStars Game #\d+:\s+Hold\'em' self.__HAND_INFO_REGEX='^.*#(\d+):\s+(\S+)\s([\s\S]+)\s\(\$?([.0-9]+)/\$?([.0-9]+)\)\s-\s(\S+)\s-?\s?(\S+)\s\(?(\w+)\)?' @@ -55,6 +56,7 @@ class FpdbRegex: def compileRegexes(self): ### Compile the regexes + self.game_info_re = re.compile(self.__GAME_INFO_REGEX) self.split_hand_re = re.compile(self.__SPLIT_HAND_REGEX) self.hand_start_re = re.compile(self.__NEW_HAND_REGEX) self.hand_info_re = re.compile(self.__HAND_INFO_REGEX) @@ -82,6 +84,9 @@ class FpdbRegex: # Set methods for plugins to override + def setGameInfoRegex(self, string): + self.__GAME_INFO_REGEX = string + def setSplitHandRegex(self, string): self.__SPLIT_HAND_REGEX = string diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index 181273ce..508e253c 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -54,6 +54,14 @@ class HandHistoryConverter: tmp = tmp + "\tsb/bb: '%s/%s'\n" % (self.gametype[3], self.gametype[4]) return tmp + def processFile(self): + if not self.sanityCheck(): + print "Cowardly refusing to continue after failed sanity check" + return + self.readFile(self.file) + self.gametype = self.determineGameType() + self.hands = self.splitFileIntoHands() + # Functions to be implemented in the inheriting class def readSupportedGames(self): abstract @@ -91,19 +99,12 @@ class HandHistoryConverter: def setFileType(self, filetype = "text"): self.filetype = filetype - def processFile(self): - if not self.sanityCheck(): - print "Cowardly refusing to continue after failed sanity check" - return - self.readFile(self.file) - self.gametype = self.determineGameType() - self.splitFileIntoHands() - def splitFileIntoHands(self): hands = [] list = self.rexx.split_hand_re.split(self.obs) for l in list: - hands = hands + [Hand(l)] + hands = hands + [Hand(self.sitename, self.gametype, l)] + return hands def readFile(self, filename): """Read file""" @@ -160,13 +161,10 @@ class HandHistoryConverter: class Hand: # def __init__(self, sitename, gametype, sb, bb, string): - def __init__(self, string): -# self.sitename = sitename -# self.gametype = gametype -# self.sb = sb -# self.bb = bb + def __init__(self, sitename, gametype, string): + self.sitename = sitename + self.gametype = gametype self.string = string - print string self.handid = None self.tablename = "Slartibartfast"