removed 2 ancient unusued methods and updated TourneysPlayers
tested bulk import for PS and FTP, player stats and positional stats also fixed a little bug that sqlite created HandsPlayers.actionString with type REAL instead of VARCHAR
This commit is contained in:
parent
e46b0b7a0f
commit
58da99c86c
|
@ -397,9 +397,10 @@ tourneys_players_table = Table('TourneysPlayers', metadata,
|
|||
Column('payinAmount', Integer), # INT NOT NULL
|
||||
Column('rank', Integer), # INT NOT NULL
|
||||
Column('winnings', Integer), # INT NOT NULL
|
||||
Column('nbRebuys', Integer, default=0), # INT DEFAULT 0
|
||||
Column('nbAddons', Integer, default=0), # INT DEFAULT 0
|
||||
Column('nbKO', Integer, default=0), # INT DEFAULT 0
|
||||
Column('winningsCurrency', Text), # TEXT
|
||||
Column('rebuyCount', Integer, default=0), # INT DEFAULT 0
|
||||
Column('addOnCount', Integer, default=0), # INT DEFAULT 0
|
||||
Column('koCount', Integer, default=0), # INT DEFAULT 0
|
||||
Column('comment', Text), # TEXT
|
||||
Column('commentTs', DateTime), # DATETIME
|
||||
mysql_charset='utf8',
|
||||
|
|
|
@ -1854,48 +1854,6 @@ class Database:
|
|||
# Finish of NEWIMPORT CODE
|
||||
#################################
|
||||
|
||||
|
||||
|
||||
def store_tourneys_players(self, tourney_id, player_ids, payin_amounts, ranks, winnings):
|
||||
try:
|
||||
result=[]
|
||||
cursor = self.get_cursor()
|
||||
#print "in store_tourneys_players. tourney_id:",tourney_id
|
||||
#print "player_ids:",player_ids
|
||||
#print "payin_amounts:",payin_amounts
|
||||
#print "ranks:",ranks
|
||||
#print "winnings:",winnings
|
||||
for i in xrange(len(player_ids)):
|
||||
try:
|
||||
cursor.execute("savepoint ins_tplayer")
|
||||
cursor.execute("""INSERT INTO TourneysPlayers
|
||||
(tourneyId, playerId, payinAmount, rank, winnings) VALUES (%s, %s, %s, %s, %s)""".replace('%s', self.sql.query['placeholder']),
|
||||
(tourney_id, player_ids[i], payin_amounts[i], ranks[i], winnings[i]))
|
||||
|
||||
tmp = self.get_last_insert_id(cursor)
|
||||
result.append(tmp)
|
||||
#print "created new tourneys_players.id:", tmp
|
||||
except:
|
||||
cursor.execute("rollback to savepoint ins_tplayer")
|
||||
cursor.execute("SELECT id FROM TourneysPlayers WHERE tourneyId=%s AND playerId+0=%s".replace('%s', self.sql.query['placeholder'])
|
||||
,(tourney_id, player_ids[i]))
|
||||
tmp = cursor.fetchone()
|
||||
#print "tried SELECTing tourneys_players.id:", tmp
|
||||
try:
|
||||
len(tmp)
|
||||
result.append(tmp[0])
|
||||
except:
|
||||
print "tplayer id not found for tourney,player %s,%s" % (tourney_id, player_ids[i])
|
||||
pass
|
||||
except:
|
||||
raise FpdbError( "store_tourneys_players error: " + str(sys.exc_value) )
|
||||
|
||||
cursor.execute("release savepoint ins_tplayer")
|
||||
#print "store_tourneys_players returning", result
|
||||
return result
|
||||
#end def store_tourneys_players
|
||||
|
||||
|
||||
# read HandToWrite objects from q and insert into database
|
||||
def insert_queue_hands(self, q, maxwait=10, commitEachHand=True):
|
||||
n,fails,maxTries,firstWait = 0,0,4,0.1
|
||||
|
@ -1971,8 +1929,8 @@ class Database:
|
|||
print "***Error sending finish: "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1])
|
||||
# end def send_finish_msg():
|
||||
|
||||
def tRecogniseTourneyType(self, tourney):
|
||||
log.debug("Database.tRecogniseTourneyType")
|
||||
def recogniseTourneyType(self, tourney):
|
||||
log.debug("Database.recogniseTourneyType")
|
||||
typeId = 1
|
||||
# Check if Tourney exists, and if so retrieve TTypeId : in that case, check values of the ttype
|
||||
cursor = self.get_cursor()
|
||||
|
@ -2021,7 +1979,7 @@ class Database:
|
|||
typeId = self.get_last_insert_id(cursor)
|
||||
|
||||
return typeId
|
||||
#end def tRecogniseTourneyType
|
||||
#end def recogniseTourneyType
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -602,7 +602,7 @@ class Sql:
|
|||
totalProfit INT,
|
||||
comment text,
|
||||
commentTs timestamp without time zone,
|
||||
tourneysPlayersId BIGINT,
|
||||
tourneysPlayersId BIGINT, FOREIGN KEY (tourneysPlayersId) REFERENCES TourneysPlayers(id),
|
||||
tourneyTypeId INT NOT NULL DEFAULT 1, FOREIGN KEY (tourneyTypeId) REFERENCES TourneyTypes(id),
|
||||
|
||||
wonWhenSeenStreet1 FLOAT,
|
||||
|
@ -692,9 +692,7 @@ class Sql:
|
|||
street3Raises SMALLINT,
|
||||
street4Raises SMALLINT,
|
||||
|
||||
actionString VARCHAR(15),
|
||||
|
||||
FOREIGN KEY (tourneysPlayersId) REFERENCES TourneysPlayers(id))"""
|
||||
actionString VARCHAR(15))"""
|
||||
elif db_server == 'sqlite':
|
||||
self.query['createHandsPlayersTable'] = """CREATE TABLE HandsPlayers (
|
||||
id INTEGER PRIMARY KEY,
|
||||
|
@ -808,7 +806,7 @@ class Sql:
|
|||
street2Raises INT,
|
||||
street3Raises INT,
|
||||
street4Raises INT,
|
||||
actionString REAL)
|
||||
actionString VARCHAR(15))
|
||||
"""
|
||||
|
||||
|
||||
|
@ -824,9 +822,10 @@ class Sql:
|
|||
payinAmount INT NOT NULL,
|
||||
rank INT NOT NULL,
|
||||
winnings INT NOT NULL,
|
||||
nbRebuys INT DEFAULT 0,
|
||||
nbAddons INT DEFAULT 0,
|
||||
nbKO INT DEFAULT 0,
|
||||
winningsCurrency VARCHAR(4) NOT NULL,
|
||||
rebuyCount INT DEFAULT 0,
|
||||
addOnCount INT DEFAULT 0,
|
||||
koCount INT DEFAULT 0,
|
||||
comment TEXT,
|
||||
commentTs DATETIME)
|
||||
ENGINE=INNODB"""
|
||||
|
@ -838,9 +837,10 @@ class Sql:
|
|||
payinAmount INT,
|
||||
rank INT,
|
||||
winnings INT,
|
||||
nbRebuys INT DEFAULT 0,
|
||||
nbAddons INT DEFAULT 0,
|
||||
nbKO INT DEFAULT 0,
|
||||
winningsCurrency VARCHAR(4),
|
||||
rebuyCount INT DEFAULT 0,
|
||||
addOnCount INT DEFAULT 0,
|
||||
koCount INT DEFAULT 0,
|
||||
comment TEXT,
|
||||
commentTs timestamp without time zone)"""
|
||||
elif db_server == 'sqlite':
|
||||
|
@ -851,9 +851,10 @@ class Sql:
|
|||
payinAmount INT,
|
||||
rank INT,
|
||||
winnings INT,
|
||||
nbRebuys INT DEFAULT 0,
|
||||
nbAddons INT DEFAULT 0,
|
||||
nbKO INT DEFAULT 0,
|
||||
winningsCurrency VARCHAR(4),
|
||||
rebuyCount INT DEFAULT 0,
|
||||
addOnCount INT DEFAULT 0,
|
||||
koCount INT DEFAULT 0,
|
||||
comment TEXT,
|
||||
commentTs timestamp without time zone,
|
||||
FOREIGN KEY (tourneyId) REFERENCES Tourneys(id),
|
||||
|
@ -3633,9 +3634,10 @@ class Sql:
|
|||
payinAmount,
|
||||
rank,
|
||||
winnings,
|
||||
nbRebuys,
|
||||
nbAddons,
|
||||
nbKO,
|
||||
winningsCurrency,
|
||||
rebuyCount,
|
||||
addOnCount,
|
||||
koCount,
|
||||
comment,
|
||||
commentTs
|
||||
FROM TourneysPlayers
|
||||
|
@ -3646,17 +3648,18 @@ class Sql:
|
|||
SET payinAmount = %s,
|
||||
rank = %s,
|
||||
winnings = %s,
|
||||
nbRebuys = %s,
|
||||
nbAddons = %s,
|
||||
nbKO = %s,
|
||||
winningsCurrency = %s,
|
||||
rebuyCount = %s,
|
||||
addOnCount = %s,
|
||||
koCount = %s,
|
||||
comment = %s,
|
||||
commentTs = %s
|
||||
WHERE id=%s
|
||||
"""
|
||||
|
||||
self.query['insertTourneysPlayers'] = """INSERT INTO TourneysPlayers
|
||||
(tourneyId, playerId, payinAmount, rank, winnings, nbRebuys, nbAddons, nbKO, comment, commentTs)
|
||||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
|
||||
(tourneyId, playerId, payinAmount, rank, winnings, winningsCurrency, rebuyCount, addOnCount, koCount, comment, commentTs)
|
||||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
|
||||
"""
|
||||
|
||||
self.query['selectHandsPlayersWithWrongTTypeId'] = """SELECT id
|
||||
|
|
|
@ -162,7 +162,7 @@ class Tourney(object):
|
|||
# Starttime may not match the one in the Summary file : HH = time of the first Hand / could be slighltly different from the one in the summary file
|
||||
# Note: If the TourneyNo could be a unique id .... this would really be a relief to deal with matrix matches ==> Ask on the IRC / Ask Fulltilt ??
|
||||
|
||||
dbTourneyTypeId = db.tRecogniseTourneyType(self)
|
||||
dbTourneyTypeId = db.recogniseTourneyType(self)
|
||||
logging.debug("Tourney Type ID = %d" % dbTourneyTypeId)
|
||||
dbTourneyId = db.tRecognizeTourney(self, dbTourneyTypeId)
|
||||
logging.debug("Tourney ID = %d" % dbTourneyId)
|
||||
|
@ -183,81 +183,10 @@ class Tourney(object):
|
|||
return (stored, duplicates, partial, errors, ttime)
|
||||
|
||||
|
||||
def old_insert_from_Hand(self, db):
|
||||
""" Function to insert Hand into database
|
||||
Should not commit, and do minimal selects. Callers may want to cache commits
|
||||
db: a connected Database object"""
|
||||
# TODO:
|
||||
# Players - base playerid and siteid tuple
|
||||
sqlids = db.getSqlPlayerIDs([p[1] for p in self.players], self.siteId)
|
||||
|
||||
#Gametypes
|
||||
gtid = db.getGameTypeId(self.siteId, self.gametype)
|
||||
|
||||
# HudCache data to come from DerivedStats class
|
||||
# HandsActions - all actions for all players for all streets - self.actions
|
||||
# Hands - Summary information of hand indexed by handId - gameinfo
|
||||
#This should be moved to prepInsert
|
||||
hh = {}
|
||||
hh['siteHandNo'] = self.handid
|
||||
hh['handStart'] = self.starttime
|
||||
hh['gameTypeId'] = gtid
|
||||
# seats TINYINT NOT NULL,
|
||||
hh['tableName'] = self.tablename
|
||||
hh['maxSeats'] = self.maxseats
|
||||
hh['seats'] = len(sqlids)
|
||||
# Flop turn and river may all be empty - add (likely) too many elements and trim with range
|
||||
boardcards = self.board['FLOP'] + self.board['TURN'] + self.board['RIVER'] + [u'0x', u'0x', u'0x', u'0x', u'0x']
|
||||
cards = [Card.encodeCard(c) for c in boardcards[0:5]]
|
||||
hh['boardcard1'] = cards[0]
|
||||
hh['boardcard2'] = cards[1]
|
||||
hh['boardcard3'] = cards[2]
|
||||
hh['boardcard4'] = cards[3]
|
||||
hh['boardcard5'] = cards[4]
|
||||
|
||||
# texture smallint,
|
||||
# playersVpi SMALLINT NOT NULL, /* num of players vpi */
|
||||
# Needs to be recorded
|
||||
# playersAtStreet1 SMALLINT NOT NULL, /* num of players seeing flop/street4 */
|
||||
# Needs to be recorded
|
||||
# playersAtStreet2 SMALLINT NOT NULL,
|
||||
# Needs to be recorded
|
||||
# playersAtStreet3 SMALLINT NOT NULL,
|
||||
# Needs to be recorded
|
||||
# playersAtStreet4 SMALLINT NOT NULL,
|
||||
# Needs to be recorded
|
||||
# playersAtShowdown SMALLINT NOT NULL,
|
||||
# Needs to be recorded
|
||||
# street0Raises TINYINT NOT NULL, /* num small bets paid to see flop/street4, including blind */
|
||||
# Needs to be recorded
|
||||
# street1Raises TINYINT NOT NULL, /* num small bets paid to see turn/street5 */
|
||||
# Needs to be recorded
|
||||
# street2Raises TINYINT NOT NULL, /* num big bets paid to see river/street6 */
|
||||
# Needs to be recorded
|
||||
# street3Raises TINYINT NOT NULL, /* num big bets paid to see sd/street7 */
|
||||
# Needs to be recorded
|
||||
# street4Raises TINYINT NOT NULL, /* num big bets paid to see showdown */
|
||||
# Needs to be recorded
|
||||
|
||||
#print "DEBUG: self.getStreetTotals = (%s, %s, %s, %s, %s)" % self.getStreetTotals()
|
||||
#FIXME: Pot size still in decimal, needs to be converted to cents
|
||||
(hh['street1Pot'], hh['street2Pot'], hh['street3Pot'], hh['street4Pot'], hh['showdownPot']) = self.getStreetTotals()
|
||||
|
||||
# comment TEXT,
|
||||
# commentTs DATETIME
|
||||
#print hh
|
||||
handid = db.storeHand(hh)
|
||||
# HandsPlayers - ? ... Do we fix winnings?
|
||||
# Tourneys ?
|
||||
# TourneysPlayers
|
||||
|
||||
pass
|
||||
|
||||
def select(self, tourneyId):
|
||||
""" Function to create Tourney object from database """
|
||||
|
||||
|
||||
|
||||
def addPlayer(self, rank, name, winnings, payinAmount, nbRebuys, nbAddons, nbKO):
|
||||
"""\
|
||||
Adds a player to the tourney, and initialises data structures indexed by player.
|
||||
|
|
Loading…
Reference in New Issue
Block a user