Merge branch 'master' of git://git.assembla.com/fpdboz.git

This commit is contained in:
eblade 2009-02-19 03:29:51 -05:00
commit f42912fd4c
4 changed files with 32 additions and 7 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)