diff --git a/pyfpdb/EverleafToFpdb.py b/pyfpdb/EverleafToFpdb.py index 4e51213f..6d409bda 100755 --- a/pyfpdb/EverleafToFpdb.py +++ b/pyfpdb/EverleafToFpdb.py @@ -86,7 +86,7 @@ class Everleaf(HandHistoryConverter): self.rexx.compileRegexes() def readSupportedGames(self): - pass + return [["ring", "hold", "nl"]] def determineGameType(self): # Cheating with this regex, only support nlhe at the moment diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index 7dea7731..a698c390 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -88,7 +88,7 @@ class HandHistoryConverter: self.hhbase = os.path.expanduser(self.hhbase) self.hhdir = os.path.join(self.hhbase,sitename) self.gametype = [] -# self.ofile = os.path.join(self.hhdir,file) + self.ofile = os.path.join(self.hhdir,file) self.rexx = FpdbRegex.FpdbRegex() def __str__(self): @@ -110,6 +110,7 @@ class HandHistoryConverter: print "Cowardly refusing to continue after failed sanity check" return self.readFile(self.file) + outfile = open(self.ofile, 'w') self.gametype = self.determineGameType() self.hands = self.splitFileIntoHands() for hand in self.hands: @@ -137,19 +138,22 @@ class HandHistoryConverter: hand.totalPot() self.getRake(hand) - hand.writeHand(sys.stderr) + hand.writeHand(outfile) #if(hand.involved == True): #self.writeHand("output file", hand) #hand.printHand() #else: #pass #Don't write out observed hands + outfile.close() endtime = time.time() print "Processed %d hands in %d seconds" % (len(self.hands), endtime-starttime) ##### # These functions are parse actions that may be overridden by the inheriting class - # + # This function should return a list of lists looking like: + # return [["ring", "hold", "nl"], ["tour", "hold", "nl"]] + # Showing all supported games limits and types def readSupportedGames(self): abstract @@ -259,3 +263,10 @@ class HandHistoryConverter: result*=100 return result #end def float2int + + def getStatus(self): + #TODO: Return a status of true if file processed ok + return True + + def getProcessedFile(self): + return self.ofile diff --git a/pyfpdb/Tables.py b/pyfpdb/Tables.py index 6655b7a6..def4bd58 100755 --- a/pyfpdb/Tables.py +++ b/pyfpdb/Tables.py @@ -361,7 +361,7 @@ def clean_title(name): ' \(deep hu\)', ' \(deep 6\)', ' \(2\)', ' \(edu\)', ' \(edu, 6 max\)', ' \(6\)', ' \(speed\)', - ' no all-in', ' fast', ',', ' 50BB min', '\s+$']: + ' no all-in', ' fast', ',', ' 50BB min', '50bb min', '\s+$']: name = re.sub(pattern, '', name) name = name.rstrip() return name diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index 220abe3c..1d46430a 100644 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -33,6 +33,7 @@ import fpdb_simple import fpdb_db import fpdb_parse_logic import Configuration +import EverleafToFpdb # database interface modules try: @@ -66,8 +67,10 @@ class Importer: #Set defaults self.callHud = self.config.get_import_parameters().get("callFpdbHud") if 'minPrint' not in self.settings: + #TODO: Is this value in the xml file? self.settings['minPrint'] = 30 if 'handCount' not in self.settings: + #TODO: Is this value in the xml file? self.settings['handCount'] = 0 self.fdb = fpdb_db.fpdb_db() # sets self.fdb.db self.fdb.cursor and self.fdb.sql self.fdb.do_connect(self.config) @@ -185,8 +188,19 @@ class Importer: if(filter == "passthrough"): (stored, duplicates, partial, errors, ttime) = self.import_fpdb_file(file, site) else: - # TODO: Load filter, and run filtered file though main importer - (stored, duplicates, partial, errors, ttime) = self.import_fpdb_file(file, site) + conv = None + # Load filter, process file, pass returned filename to import_fpdb_file + if(filter == "EverleafToFpdb"): + conv = EverleafToFpdb(self.config, file) + + supp = conv.readSupportedGames() # Should this be done by HHC on init? + gt = conv.determineGameType() + # TODO: Check that gt is in supp - error appropriately if not + conv.processFile() + if(conv.getStatus()): + (stored, duplicates, partial, errors, ttime) = self.import_fpdb_file(conv.getProcessedFile(ofile), site) + + #This will barf if conv.getStatus != True return (stored, duplicates, partial, errors, ttime)