Tourney import : tRecogniseTourneyType implemented
modified: Database.py * tRecogniseTourneyType : implemented modified: FulltiltToFpdb.py * buyin, fee, rebuyAmount, addOnAmount : converted using fpdb_simple.float2int modified: SQL.py * Added queries for Database.tRecogniseTourneyType (getTourneyTypeIdByTourneyNo modified to return all data, getTourneyTypeId and insertTourneyTypes added)
This commit is contained in:
parent
3323d25ce7
commit
b00a58249f
|
@ -1836,12 +1836,57 @@ class Database:
|
||||||
def tRecogniseTourneyType(self, tourney):
|
def tRecogniseTourneyType(self, tourney):
|
||||||
print "Database.tRecogniseTourneyType"
|
print "Database.tRecogniseTourneyType"
|
||||||
typeId = 1
|
typeId = 1
|
||||||
|
# Check if Tourney exists, and if so retrieve TTypeId : in that case, check values of the ttype
|
||||||
|
cursor = self.get_cursor()
|
||||||
|
cursor.execute (self.sql.query['getTourneyTypeIdByTourneyNo'].replace('%s', self.sql.query['placeholder']),
|
||||||
|
(tourney.tourNo, tourney.siteId)
|
||||||
|
)
|
||||||
|
result=cursor.fetchone()
|
||||||
|
|
||||||
|
expectedValues = { 1 : "buyin", 2 : "fee", 4 : "isKO", 5 : "isRebuy", 6 : "speed",
|
||||||
|
7 : "isHU", 8 : "isShootout", 9 : "isMatrix" }
|
||||||
|
typeIdMatch = True
|
||||||
|
|
||||||
|
try:
|
||||||
|
len(result)
|
||||||
|
typeId = result[0]
|
||||||
|
print "Tourney found in db with Tourney_Type_ID = %d" % typeId
|
||||||
|
for ev in expectedValues :
|
||||||
|
print "ev : %s" % ev
|
||||||
|
if ( getattr( tourney, expectedValues.get(ev) ) <> result[ev] ):
|
||||||
|
print "TypeId mismatch : wrong %s : Tourney=%s / db=%s" % (expectedValues.get(ev), getattr( tourney, expectedValues.get(ev)), result[ev] )
|
||||||
|
typeIdMatch = False
|
||||||
|
#break
|
||||||
|
except:
|
||||||
|
# Tourney not found : a TourneyTypeId has to be found or created for that specific tourney
|
||||||
|
typeIdMatch = False
|
||||||
|
|
||||||
|
if typeIdMatch == False :
|
||||||
# Check for an existing TTypeId that matches tourney info (buyin/fee, knockout, rebuy, speed, matrix, shootout)
|
# Check for an existing TTypeId that matches tourney info (buyin/fee, knockout, rebuy, speed, matrix, shootout)
|
||||||
# if not found create it
|
# if not found create it
|
||||||
|
print "Searching for a TourneyTypeId matching TourneyType data"
|
||||||
|
cursor.execute (self.sql.query['getTourneyTypeId'].replace('%s', self.sql.query['placeholder']),
|
||||||
|
(tourney.siteId, tourney.buyin, tourney.fee, tourney.isKO,
|
||||||
|
tourney.isRebuy, tourney.speed, tourney.isHU, tourney.isShootout, tourney.isMatrix)
|
||||||
|
)
|
||||||
|
result=cursor.fetchone()
|
||||||
|
#print "tried SELECTing gametypes.id, result:",result
|
||||||
|
|
||||||
|
try:
|
||||||
|
len(result)
|
||||||
|
typeId = result[0]
|
||||||
|
print "Existing Tourney Type Id found : %d" % typeId
|
||||||
|
except TypeError: #this means we need to create a new entry
|
||||||
|
print "Tourney Type Id not found : create one"
|
||||||
|
cursor.execute (self.sql.query['insertTourneyTypes'].replace('%s', self.sql.query['placeholder']),
|
||||||
|
(tourney.siteId, tourney.buyin, tourney.fee, tourney.isKO, tourney.isRebuy,
|
||||||
|
tourney.speed, tourney.isHU, tourney.isShootout, tourney.isMatrix)
|
||||||
|
)
|
||||||
|
typeId = self.get_last_insert_id(cursor)
|
||||||
|
|
||||||
# Checks for an existing tourney with tourney.siteId and tourney.tourNo (and get the tourneyTypeId)
|
|
||||||
# if the two TTypeId don't match, update the Tourneys.tourneyTypeId
|
|
||||||
return typeId
|
return typeId
|
||||||
|
#end def tRecogniseTourneyType
|
||||||
|
|
||||||
|
|
||||||
def tRecognizeTourney(self, tourney, dbTourneyTypeId):
|
def tRecognizeTourney(self, tourney, dbTourneyTypeId):
|
||||||
print "Database.tRecognizeTourney"
|
print "Database.tRecognizeTourney"
|
||||||
|
@ -1849,7 +1894,7 @@ class Database:
|
||||||
# Check if tourney exists in db (based on tourney.siteId and tourney.tourNo)
|
# Check if tourney exists in db (based on tourney.siteId and tourney.tourNo)
|
||||||
# If not => create it with the tourneyTypeId given as input
|
# If not => create it with the tourneyTypeId given as input
|
||||||
# if found => retrieve data (in the first query) and check if an update is needed, if so do it
|
# if found => retrieve data (in the first query) and check if an update is needed, if so do it
|
||||||
# rem : Tourney Specific data = entries, prizepool, buyinchips, rebuychips, addonchips, totalrebuys, totaladdons, kobounty
|
# rem : Tourney Specific data = tourneyTypeId, entries, prizepool, buyinchips, rebuychips, addonchips, totalrebuys, totaladdons, kobounty
|
||||||
return tourneyID
|
return tourneyID
|
||||||
|
|
||||||
def tStoreTourneyPlayers(self, tourney, dbTourneyId):
|
def tStoreTourneyPlayers(self, tourney, dbTourneyId):
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import logging
|
import logging
|
||||||
|
import fpdb_simple
|
||||||
from HandHistoryConverter import *
|
from HandHistoryConverter import *
|
||||||
|
|
||||||
# Fulltilt HH Format converter
|
# Fulltilt HH Format converter
|
||||||
|
@ -475,10 +476,10 @@ class Fulltilt(HandHistoryConverter):
|
||||||
|
|
||||||
# Additional info can be stored in the tourney object
|
# Additional info can be stored in the tourney object
|
||||||
if mg['BUYIN'] is not None:
|
if mg['BUYIN'] is not None:
|
||||||
tourney.buyin = mg['BUYIN']
|
tourney.buyin = fpdb_simple.float2int(mg['BUYIN'])
|
||||||
tourney.fee = 0
|
tourney.fee = 0
|
||||||
if mg['FEE'] is not None:
|
if mg['FEE'] is not None:
|
||||||
tourney.fee = mg['FEE']
|
tourney.fee = fpdb_simple.float2int(mg['FEE'])
|
||||||
if mg['TOURNAMENT_NAME'] is not None:
|
if mg['TOURNAMENT_NAME'] is not None:
|
||||||
# Tournament Name can have a trailing space at the end (depending on the tournament description)
|
# Tournament Name can have a trailing space at the end (depending on the tournament description)
|
||||||
tourney.tourneyName = mg['TOURNAMENT_NAME'].rstrip()
|
tourney.tourneyName = mg['TOURNAMENT_NAME'].rstrip()
|
||||||
|
@ -523,24 +524,24 @@ class Fulltilt(HandHistoryConverter):
|
||||||
mg = m.groupdict()
|
mg = m.groupdict()
|
||||||
if tourney.isMatrix :
|
if tourney.isMatrix :
|
||||||
if mg['BUYIN'] is not None:
|
if mg['BUYIN'] is not None:
|
||||||
tourney.subTourneyBuyin = mg['BUYIN']
|
tourney.subTourneyBuyin = fpdb_simple.float2int(mg['BUYIN'])
|
||||||
tourney.subTourneyFee = 0
|
tourney.subTourneyFee = 0
|
||||||
if mg['FEE'] is not None:
|
if mg['FEE'] is not None:
|
||||||
tourney.subTourneyFee = mg['FEE']
|
tourney.subTourneyFee = fpdb_simple.float2int(mg['FEE'])
|
||||||
else :
|
else :
|
||||||
if mg['BUYIN'] is not None:
|
if mg['BUYIN'] is not None:
|
||||||
if tourney.buyin is None:
|
if tourney.buyin is None:
|
||||||
tourney.buyin = mg['BUYIN']
|
tourney.buyin = fpdb_simple.float2int(mg['BUYIN'])
|
||||||
else :
|
else :
|
||||||
if mg['BUYIN'] != tourney.buyin:
|
if fpdb_simple.float2int(mg['BUYIN']) != tourney.buyin:
|
||||||
log.error( "Conflict between buyins read in topline (%s) and in BuyIn field (%s)" % (touney.buyin, mg['BUYIN']) )
|
log.error( "Conflict between buyins read in topline (%s) and in BuyIn field (%s)" % (touney.buyin, fpdb_simple.float2int(mg['BUYIN'])) )
|
||||||
tourney.subTourneyBuyin = mg['BUYIN']
|
tourney.subTourneyBuyin = fpdb_simple.float2int(mg['BUYIN'])
|
||||||
if mg['FEE'] is not None:
|
if mg['FEE'] is not None:
|
||||||
if tourney.fee is None:
|
if tourney.fee is None:
|
||||||
tourney.fee = mg['FEE']
|
tourney.fee = fpdb_simple.float2int(mg['FEE'])
|
||||||
else :
|
else :
|
||||||
if mg['FEE'] != tourney.fee:
|
if fpdb_simple.float2int(mg['FEE']) != tourney.fee:
|
||||||
log.error( "Conflict between fees read in topline (%s) and in BuyIn field (%s)" % (touney.fee, mg['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']
|
tourney.subTourneyFee = mg['FEE']
|
||||||
|
|
||||||
if tourney.buyin is None:
|
if tourney.buyin is None:
|
||||||
|
@ -596,6 +597,9 @@ class Fulltilt(HandHistoryConverter):
|
||||||
if mg['IN_PROGRESS'] is not None or mg['ENDTIME'] is not None:
|
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)
|
# 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.endtime = mg['ENDTIME']
|
||||||
|
|
||||||
|
tourney.rebuyAmount = fpdb_simple.float2int("%s" % tourney.rebuyAmount)
|
||||||
|
tourney.addOnAmount = fpdb_simple.float2int("%s" % tourney.addOnAmount)
|
||||||
#print mg
|
#print mg
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
|
@ -2816,12 +2816,39 @@ class Sql:
|
||||||
WHERE gametypeId=%s AND siteHandNo=%s
|
WHERE gametypeId=%s AND siteHandNo=%s
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.query['getTourneyTypeIdByTourneyNo'] = """SELECT tt.id
|
self.query['getTourneyTypeIdByTourneyNo'] = """SELECT tt.id,
|
||||||
|
tt.buyin,
|
||||||
|
tt.fee,
|
||||||
|
tt.maxSeats,
|
||||||
|
tt.knockout,
|
||||||
|
tt.rebuyOrAddon,
|
||||||
|
tt.speed,
|
||||||
|
tt.headsUp,
|
||||||
|
tt.shootout,
|
||||||
|
tt.matrix
|
||||||
FROM TourneyTypes tt
|
FROM TourneyTypes tt
|
||||||
INNER JOIN Tourneys t ON (t.tourneyTypeId = tt.id)
|
INNER JOIN Tourneys t ON (t.tourneyTypeId = tt.id)
|
||||||
WHERE t.siteTourneyNo=%s AND tt.siteId=%s
|
WHERE t.siteTourneyNo=%s AND tt.siteId=%s
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
self.query['getTourneyTypeId'] = """SELECT id
|
||||||
|
FROM TourneyTypes
|
||||||
|
WHERE siteId=%s
|
||||||
|
AND buyin=%s
|
||||||
|
AND fee=%s
|
||||||
|
AND knockout=%s
|
||||||
|
AND rebuyOrAddon=%s
|
||||||
|
AND speed=%s
|
||||||
|
AND headsUp=%s
|
||||||
|
AND shootout=%s
|
||||||
|
AND matrix=%s
|
||||||
|
"""
|
||||||
|
self.query['insertTourneyTypes'] = """INSERT INTO TourneyTypes
|
||||||
|
(siteId, buyin, fee, knockout, rebuyOrAddon
|
||||||
|
,speed, headsUp, shootout, matrix)
|
||||||
|
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)
|
||||||
|
"""
|
||||||
|
|
||||||
if db_server == 'mysql':
|
if db_server == 'mysql':
|
||||||
self.query['placeholder'] = u'%s'
|
self.query['placeholder'] = u'%s'
|
||||||
elif db_server == 'postgresql':
|
elif db_server == 'postgresql':
|
||||||
|
|
Loading…
Reference in New Issue
Block a user