some fixes for handStart rename, fixes for TT.category/limitType,
dumpDatabase method and menu entry
This commit is contained in:
parent
5fee5136a9
commit
9283d7b579
|
@ -290,6 +290,34 @@ class Database:
|
||||||
self.connection.rollback() # make sure any locks taken so far are released
|
self.connection.rollback() # make sure any locks taken so far are released
|
||||||
#end def __init__
|
#end def __init__
|
||||||
|
|
||||||
|
def dumpDatabase(self, filename):
|
||||||
|
dumpFile = open(filename, 'w')
|
||||||
|
|
||||||
|
result="Database dump version " + str(DB_VERSION)+"\n\n"
|
||||||
|
|
||||||
|
tables=self.cursor.execute(self.sql.query['list_tables'])
|
||||||
|
tables=self.cursor.fetchall()
|
||||||
|
dumpFile.write(result)
|
||||||
|
|
||||||
|
for table in tables:
|
||||||
|
table=table[0]
|
||||||
|
print "table:", table
|
||||||
|
result="###################\nTable "+table+"\n###################\n"
|
||||||
|
rows=self.cursor.execute(self.sql.query['get'+table])
|
||||||
|
rows=self.cursor.fetchall()
|
||||||
|
columnNames=self.cursor.description
|
||||||
|
if not rows:
|
||||||
|
result+="empty table\n"
|
||||||
|
else:
|
||||||
|
for row in rows:
|
||||||
|
for columnNumber in range(len(columnNames)):
|
||||||
|
result+=(" "+columnNames[columnNumber][0]+"="+str(row[columnNumber])+"\n")
|
||||||
|
result+="\n"
|
||||||
|
result+="\n"
|
||||||
|
dumpFile.write(result)
|
||||||
|
dumpFile.close()
|
||||||
|
#end def dumpDatabase
|
||||||
|
|
||||||
# could be used by hud to change hud style
|
# could be used by hud to change hud style
|
||||||
def set_hud_style(self, style):
|
def set_hud_style(self, style):
|
||||||
self.hud_style = style
|
self.hud_style = style
|
||||||
|
@ -1375,17 +1403,17 @@ class Database:
|
||||||
c.execute("INSERT INTO Sites (name,code) VALUES ('Carbon', 'CA')")
|
c.execute("INSERT INTO Sites (name,code) VALUES ('Carbon', 'CA')")
|
||||||
c.execute("INSERT INTO Sites (name,code) VALUES ('PKR', 'PK')")
|
c.execute("INSERT INTO Sites (name,code) VALUES ('PKR', 'PK')")
|
||||||
if self.backend == self.SQLITE:
|
if self.backend == self.SQLITE:
|
||||||
c.execute("""INSERT INTO TourneyTypes (id, siteId, currency, buyin, fee, buyInChips, maxSeats, knockout,
|
c.execute("""INSERT INTO TourneyTypes (id, siteId, currency, buyin, fee, category, limitType,
|
||||||
rebuy, addOn, speed, shootout, matrix)
|
buyInChips, maxSeats, knockout, rebuy, addOn, speed, shootout, matrix)
|
||||||
VALUES (NULL, 1, 'USD', 0, 0, 0, 0, 0, 0, 0, NULL, 0, 0);""")
|
VALUES (NULL, 1, 'USD', 0, 0, "NA", "NA", 0, 0, 0, 0, 0, NULL, 0, 0);""")
|
||||||
elif self.backend == self.PGSQL:
|
elif self.backend == self.PGSQL:
|
||||||
c.execute("""insert into TourneyTypes(siteId, currency, buyin, fee, buyInChips, maxSeats, knockout
|
c.execute("""insert into TourneyTypes(siteId, currency, buyin, fee, category, limitType,
|
||||||
,rebuy, addOn, speed, shootout, matrix)
|
buyInChips, maxSeats, knockout, rebuy, addOn, speed, shootout, matrix)
|
||||||
values (1, 'USD', 0, 0, 0, 0, False, False, False, null, False, False);""")
|
values (1, 'USD', 0, 0, "NA", "NA", 0, 0, False, False, False, null, False, False);""")
|
||||||
elif self.backend == self.MYSQL_INNODB:
|
elif self.backend == self.MYSQL_INNODB:
|
||||||
c.execute("""insert into TourneyTypes(id, siteId, currency, buyin, fee, buyInChips, maxSeats, knockout
|
c.execute("""insert into TourneyTypes(id, siteId, currency, buyin, fee, category, limitType,
|
||||||
,rebuy, addOn, speed, shootout, matrix)
|
buyInChips, maxSeats, knockout, rebuy, addOn, speed, shootout, matrix)
|
||||||
values (DEFAULT, 1, 'USD', 0, 0, 0, 0, False, False, False, null, False, False);""")
|
values (DEFAULT, 1, 'USD', 0, 0, "NA", "NA", 0, 0, False, False, False, null, False, False);""")
|
||||||
#end def fillDefaultData
|
#end def fillDefaultData
|
||||||
|
|
||||||
def rebuild_indexes(self, start=None):
|
def rebuild_indexes(self, start=None):
|
||||||
|
@ -1980,7 +2008,7 @@ class Database:
|
||||||
if tourneyTypeIdMatch == False :
|
if tourneyTypeIdMatch == False :
|
||||||
# Check for an existing TTypeId that matches tourney info, if not found create it
|
# Check for an existing TTypeId that matches tourney info, if not found create it
|
||||||
cursor.execute (self.sql.query['getTourneyTypeId'].replace('%s', self.sql.query['placeholder']),
|
cursor.execute (self.sql.query['getTourneyTypeId'].replace('%s', self.sql.query['placeholder']),
|
||||||
(hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.isKO,
|
(hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.gametype['category'], hand.gametype['limitType'], hand.isKO,
|
||||||
hand.isRebuy, hand.isRebuy, hand.speed, hand.isShootout, hand.isMatrix)
|
hand.isRebuy, hand.isRebuy, hand.speed, hand.isShootout, hand.isMatrix)
|
||||||
)
|
)
|
||||||
result=cursor.fetchone()
|
result=cursor.fetchone()
|
||||||
|
@ -1989,7 +2017,7 @@ class Database:
|
||||||
tourneyTypeId = result[0]
|
tourneyTypeId = result[0]
|
||||||
except TypeError: #this means we need to create a new entry
|
except TypeError: #this means we need to create a new entry
|
||||||
cursor.execute (self.sql.query['insertTourneyType'].replace('%s', self.sql.query['placeholder']),
|
cursor.execute (self.sql.query['insertTourneyType'].replace('%s', self.sql.query['placeholder']),
|
||||||
(hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.buyInChips,
|
(hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.gametype['category'], hand.gametype['limitType'], hand.buyInChips,
|
||||||
hand.isKO, hand.isRebuy,
|
hand.isKO, hand.isRebuy,
|
||||||
hand.isAddOn, hand.speed, hand.isShootout, hand.isMatrix)
|
hand.isAddOn, hand.speed, hand.isShootout, hand.isMatrix)
|
||||||
)
|
)
|
||||||
|
|
|
@ -1580,7 +1580,7 @@ limit 1""", {'handid':handid})
|
||||||
SELECT
|
SELECT
|
||||||
h.sitehandno as hid,
|
h.sitehandno as hid,
|
||||||
h.tablename as table,
|
h.tablename as table,
|
||||||
h.handstart as startTime
|
h.startTime as startTime
|
||||||
FROM
|
FROM
|
||||||
hands as h
|
hands as h
|
||||||
WHERE h.id = %(handid)s
|
WHERE h.id = %(handid)s
|
||||||
|
|
|
@ -238,7 +238,7 @@ class PokerStars(HandHistoryConverter):
|
||||||
#2008/09/07 06:23:14 ET
|
#2008/09/07 06:23:14 ET
|
||||||
m1 = self.re_DateTime.finditer(info[key])
|
m1 = self.re_DateTime.finditer(info[key])
|
||||||
# m2 = re.search("(?P<Y>[0-9]{4})\/(?P<M>[0-9]{2})\/(?P<D>[0-9]{2})[\- ]+(?P<H>[0-9]+):(?P<MIN>[0-9]+):(?P<S>[0-9]+)", info[key])
|
# m2 = re.search("(?P<Y>[0-9]{4})\/(?P<M>[0-9]{2})\/(?P<D>[0-9]{2})[\- ]+(?P<H>[0-9]+):(?P<MIN>[0-9]+):(?P<S>[0-9]+)", info[key])
|
||||||
datetimestr = "2000/01/01 00:00:00" # default used if time not found (stops import crashing, but handstart will be wrong)
|
datetimestr = "2000/01/01 00:00:00" # default used if time not found (stops import crashing, but startTime will be wrong)
|
||||||
for a in m1:
|
for a in m1:
|
||||||
datetimestr = "%s/%s/%s %s:%s:%s" % (a.group('Y'), a.group('M'),a.group('D'),a.group('H'),a.group('MIN'),a.group('S'))
|
datetimestr = "%s/%s/%s %s:%s:%s" % (a.group('Y'), a.group('M'),a.group('D'),a.group('H'),a.group('MIN'),a.group('S'))
|
||||||
#tz = a.group('TZ') # just assume ET??
|
#tz = a.group('TZ') # just assume ET??
|
||||||
|
|
|
@ -3646,6 +3646,8 @@ class Sql:
|
||||||
AND currency=%s
|
AND currency=%s
|
||||||
AND buyin=%s
|
AND buyin=%s
|
||||||
AND fee=%s
|
AND fee=%s
|
||||||
|
AND category=%s
|
||||||
|
AND limitType=%s
|
||||||
AND knockout=%s
|
AND knockout=%s
|
||||||
AND rebuy=%s
|
AND rebuy=%s
|
||||||
AND addOn=%s
|
AND addOn=%s
|
||||||
|
@ -3655,9 +3657,9 @@ class Sql:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.query['insertTourneyType'] = """INSERT INTO TourneyTypes
|
self.query['insertTourneyType'] = """INSERT INTO TourneyTypes
|
||||||
(siteId, currency, buyin, fee, buyInChips, knockout, rebuy,
|
(siteId, currency, buyin, fee, category, limitType, buyInChips, knockout, rebuy,
|
||||||
addOn ,speed, shootout, matrix)
|
addOn ,speed, shootout, matrix)
|
||||||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
|
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.query['getTourneyIdByTourneyNo'] = """SELECT t.id
|
self.query['getTourneyIdByTourneyNo'] = """SELECT t.id
|
||||||
|
@ -3734,7 +3736,7 @@ class Sql:
|
||||||
gametypeid,
|
gametypeid,
|
||||||
sitehandno,
|
sitehandno,
|
||||||
tourneyId,
|
tourneyId,
|
||||||
handstart,
|
startTime,
|
||||||
importtime,
|
importtime,
|
||||||
seats,
|
seats,
|
||||||
maxseats,
|
maxseats,
|
||||||
|
@ -3883,6 +3885,12 @@ class Sql:
|
||||||
self.query['getTourneyCount'] = "SELECT COUNT(id) FROM Tourneys"
|
self.query['getTourneyCount'] = "SELECT COUNT(id) FROM Tourneys"
|
||||||
self.query['getTourneyTypeCount'] = "SELECT COUNT(id) FROM TourneyTypes"
|
self.query['getTourneyTypeCount'] = "SELECT COUNT(id) FROM TourneyTypes"
|
||||||
|
|
||||||
|
################################
|
||||||
|
# queries for dumpDatabase
|
||||||
|
################################
|
||||||
|
for table in (u'Autorates', u'GameTypes', u'Hands', u'HandsActions', u'HandsPlayers', u'HudCache', u'Players', u'Settings', u'Sites', u'TourneyTypes', u'Tourneys', u'TourneysPlayers'):
|
||||||
|
self.query['get'+table] = u"SELECT * FROM "+table
|
||||||
|
|
||||||
################################
|
################################
|
||||||
# placeholders and substitution stuff
|
# placeholders and substitution stuff
|
||||||
################################
|
################################
|
||||||
|
|
|
@ -334,9 +334,9 @@ limit 1""", {'handid':handid})
|
||||||
SELECT
|
SELECT
|
||||||
h.sitehandno as hid,
|
h.sitehandno as hid,
|
||||||
h.tablename as table,
|
h.tablename as table,
|
||||||
h.handstart as startTime
|
h.startTime as startTime
|
||||||
FROM
|
FROM
|
||||||
hands as h
|
Hands as h
|
||||||
WHERE h.id = %(handid)s
|
WHERE h.id = %(handid)s
|
||||||
""", {'handid':handid})
|
""", {'handid':handid})
|
||||||
res = c.fetchone()
|
res = c.fetchone()
|
||||||
|
|
|
@ -336,6 +336,11 @@ class fpdb:
|
||||||
diatitle="Database Statistics")
|
diatitle="Database Statistics")
|
||||||
#end def dia_database_stats
|
#end def dia_database_stats
|
||||||
|
|
||||||
|
def dia_dump_db(self, widget, data=None):
|
||||||
|
self.db.dumpDatabase("database-dump.sql")
|
||||||
|
#end def dia_database_stats
|
||||||
|
|
||||||
|
|
||||||
# def dia_get_db_root_credentials(self):
|
# def dia_get_db_root_credentials(self):
|
||||||
# """obtains db root credentials from user"""
|
# """obtains db root credentials from user"""
|
||||||
# user, pw=None, None
|
# user, pw=None, None
|
||||||
|
@ -658,7 +663,8 @@ class fpdb:
|
||||||
<menuitem action="createtabs"/>
|
<menuitem action="createtabs"/>
|
||||||
<menuitem action="rebuildhudcache"/>
|
<menuitem action="rebuildhudcache"/>
|
||||||
<menuitem action="rebuildindexes"/>
|
<menuitem action="rebuildindexes"/>
|
||||||
<menuitem action="stats"/>
|
<menuitem action="databasestats"/>
|
||||||
|
<menuitem action="dumptofile"/>
|
||||||
</menu>
|
</menu>
|
||||||
<menu action="help">
|
<menu action="help">
|
||||||
<menuitem action="Logs"/>
|
<menuitem action="Logs"/>
|
||||||
|
@ -696,7 +702,8 @@ class fpdb:
|
||||||
('createtabs', None, 'Create or Recreate _Tables', None, 'Create or Recreate Tables ', self.dia_recreate_tables),
|
('createtabs', None, 'Create or Recreate _Tables', None, 'Create or Recreate Tables ', self.dia_recreate_tables),
|
||||||
('rebuildhudcache', None, 'Rebuild HUD Cache', None, 'Rebuild HUD Cache', self.dia_recreate_hudcache),
|
('rebuildhudcache', None, 'Rebuild HUD Cache', None, 'Rebuild HUD Cache', self.dia_recreate_hudcache),
|
||||||
('rebuildindexes', None, 'Rebuild DB Indexes', None, 'Rebuild DB Indexes', self.dia_rebuild_indexes),
|
('rebuildindexes', None, 'Rebuild DB Indexes', None, 'Rebuild DB Indexes', self.dia_rebuild_indexes),
|
||||||
('stats', None, '_Statistics', None, 'View Database Statistics', self.dia_database_stats),
|
('databasestats', None, '_Statistics', None, 'View Database Statistics', self.dia_database_stats),
|
||||||
|
('dumptofile', None, 'Dump Database to Textfile', None, 'Dump Database to Textfile (takes much time, RAM, HD)', self.dia_dump_db),
|
||||||
('help', None, '_Help'),
|
('help', None, '_Help'),
|
||||||
('Logs', None, '_Log Messages', None, 'Log and Debug Messages', self.dia_logs),
|
('Logs', None, '_Log Messages', None, 'Log and Debug Messages', self.dia_logs),
|
||||||
('About', None, 'A_bout', None, 'About the program', self.dia_about),
|
('About', None, 'A_bout', None, 'About the program', self.dia_about),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user