Merge branch 'master' of git://git.assembla.com/fpdboz
This commit is contained in:
commit
cfa87c9870
|
@ -125,7 +125,8 @@ class Database:
|
||||||
{'tab':'Gametypes', 'col':'siteId', 'drop':0}
|
{'tab':'Gametypes', 'col':'siteId', 'drop':0}
|
||||||
, {'tab':'Hands', 'col':'gametypeId', 'drop':0} # mct 22/3/09
|
, {'tab':'Hands', 'col':'gametypeId', 'drop':0} # mct 22/3/09
|
||||||
#, {'tab':'Hands', 'col':'siteHandNo', 'drop':0} unique indexes not dropped
|
#, {'tab':'Hands', 'col':'siteHandNo', 'drop':0} unique indexes not dropped
|
||||||
, {'tab':'HandsActions', 'col':'handsPlayerId', 'drop':0}
|
, {'tab':'HandsActions', 'col':'handId', 'drop':1}
|
||||||
|
, {'tab':'HandsActions', 'col':'playerId', 'drop':1}
|
||||||
, {'tab':'HandsActions', 'col':'actionId', 'drop':1}
|
, {'tab':'HandsActions', 'col':'actionId', 'drop':1}
|
||||||
, {'tab':'HandsPlayers', 'col':'handId', 'drop':1}
|
, {'tab':'HandsPlayers', 'col':'handId', 'drop':1}
|
||||||
, {'tab':'HandsPlayers', 'col':'playerId', 'drop':1}
|
, {'tab':'HandsPlayers', 'col':'playerId', 'drop':1}
|
||||||
|
@ -150,7 +151,8 @@ class Database:
|
||||||
, {'tab':'HandsPlayers', 'col':'handId', 'drop':0}
|
, {'tab':'HandsPlayers', 'col':'handId', 'drop':0}
|
||||||
, {'tab':'HandsPlayers', 'col':'playerId', 'drop':0}
|
, {'tab':'HandsPlayers', 'col':'playerId', 'drop':0}
|
||||||
, {'tab':'HandsPlayers', 'col':'tourneysPlayersId', 'drop':0}
|
, {'tab':'HandsPlayers', 'col':'tourneysPlayersId', 'drop':0}
|
||||||
, {'tab':'HandsActions', 'col':'handsPlayerId', 'drop':0}
|
, {'tab':'HandsActions', 'col':'handId', 'drop':0}
|
||||||
|
, {'tab':'HandsActions', 'col':'playerId', 'drop':0}
|
||||||
, {'tab':'HandsActions', 'col':'actionId', 'drop':1}
|
, {'tab':'HandsActions', 'col':'actionId', 'drop':1}
|
||||||
, {'tab':'HudCache', 'col':'gametypeId', 'drop':1}
|
, {'tab':'HudCache', 'col':'gametypeId', 'drop':1}
|
||||||
, {'tab':'HudCache', 'col':'playerId', 'drop':0}
|
, {'tab':'HudCache', 'col':'playerId', 'drop':0}
|
||||||
|
@ -174,7 +176,8 @@ class Database:
|
||||||
, {'fktab':'HandsPlayers', 'fkcol':'handId', 'rtab':'Hands', 'rcol':'id', 'drop':1}
|
, {'fktab':'HandsPlayers', 'fkcol':'handId', 'rtab':'Hands', 'rcol':'id', 'drop':1}
|
||||||
, {'fktab':'HandsPlayers', 'fkcol':'playerId', 'rtab':'Players', 'rcol':'id', 'drop':1}
|
, {'fktab':'HandsPlayers', 'fkcol':'playerId', 'rtab':'Players', 'rcol':'id', 'drop':1}
|
||||||
, {'fktab':'HandsPlayers', 'fkcol':'tourneysPlayersId','rtab':'TourneysPlayers','rcol':'id', 'drop':1}
|
, {'fktab':'HandsPlayers', 'fkcol':'tourneysPlayersId','rtab':'TourneysPlayers','rcol':'id', 'drop':1}
|
||||||
, {'fktab':'HandsActions', 'fkcol':'handsPlayerId', 'rtab':'HandsPlayers', 'rcol':'id', 'drop':1}
|
, {'fktab':'HandsActions', 'fkcol':'handId', 'rtab':'Hands', 'rcol':'id', 'drop':1}
|
||||||
|
, {'fktab':'HandsActions', 'fkcol':'playerId', 'rtab':'Players', 'rcol':'id', 'drop':1}
|
||||||
, {'fktab':'HandsActions', 'fkcol':'actionId', 'rtab':'Actions', 'rcol':'id', 'drop':1}
|
, {'fktab':'HandsActions', 'fkcol':'actionId', 'rtab':'Actions', 'rcol':'id', 'drop':1}
|
||||||
, {'fktab':'HudCache', 'fkcol':'gametypeId', 'rtab':'Gametypes', 'rcol':'id', 'drop':1}
|
, {'fktab':'HudCache', 'fkcol':'gametypeId', 'rtab':'Gametypes', 'rcol':'id', 'drop':1}
|
||||||
, {'fktab':'HudCache', 'fkcol':'playerId', 'rtab':'Players', 'rcol':'id', 'drop':0}
|
, {'fktab':'HudCache', 'fkcol':'playerId', 'rtab':'Players', 'rcol':'id', 'drop':0}
|
||||||
|
@ -184,7 +187,8 @@ class Database:
|
||||||
{'fktab':'Hands', 'fkcol':'gametypeId', 'rtab':'Gametypes', 'rcol':'id', 'drop':1}
|
{'fktab':'Hands', 'fkcol':'gametypeId', 'rtab':'Gametypes', 'rcol':'id', 'drop':1}
|
||||||
, {'fktab':'HandsPlayers', 'fkcol':'handId', 'rtab':'Hands', 'rcol':'id', 'drop':1}
|
, {'fktab':'HandsPlayers', 'fkcol':'handId', 'rtab':'Hands', 'rcol':'id', 'drop':1}
|
||||||
, {'fktab':'HandsPlayers', 'fkcol':'playerId', 'rtab':'Players', 'rcol':'id', 'drop':1}
|
, {'fktab':'HandsPlayers', 'fkcol':'playerId', 'rtab':'Players', 'rcol':'id', 'drop':1}
|
||||||
, {'fktab':'HandsActions', 'fkcol':'handsPlayerId', 'rtab':'HandsPlayers', 'rcol':'id', 'drop':1}
|
, {'fktab':'HandsActions', 'fkcol':'handId', 'rtab':'Hands', 'rcol':'id', 'drop':1}
|
||||||
|
, {'fktab':'HandsActions', 'fkcol':'playerId', 'rtab':'Players', 'rcol':'id', 'drop':1}
|
||||||
, {'fktab':'HandsActions', 'fkcol':'actionId', 'rtab':'Actions', 'rcol':'id', 'drop':1}
|
, {'fktab':'HandsActions', 'fkcol':'actionId', 'rtab':'Actions', 'rcol':'id', 'drop':1}
|
||||||
, {'fktab':'HudCache', 'fkcol':'gametypeId', 'rtab':'Gametypes', 'rcol':'id', 'drop':1}
|
, {'fktab':'HudCache', 'fkcol':'gametypeId', 'rtab':'Gametypes', 'rcol':'id', 'drop':1}
|
||||||
, {'fktab':'HudCache', 'fkcol':'playerId', 'rtab':'Players', 'rcol':'id', 'drop':0}
|
, {'fktab':'HudCache', 'fkcol':'playerId', 'rtab':'Players', 'rcol':'id', 'drop':0}
|
||||||
|
@ -1727,10 +1731,11 @@ class Database:
|
||||||
|
|
||||||
c.execute(q, (
|
c.execute(q, (
|
||||||
p['tableName'],
|
p['tableName'],
|
||||||
p['gametypeId'],
|
|
||||||
p['siteHandNo'],
|
p['siteHandNo'],
|
||||||
p['tourneyId'],
|
p['tourneyId'],
|
||||||
p['startTime'],
|
p['gametypeId'],
|
||||||
|
p['sessionId'],
|
||||||
|
p['startTime'],
|
||||||
datetime.utcnow(), #importtime
|
datetime.utcnow(), #importtime
|
||||||
p['seats'],
|
p['seats'],
|
||||||
p['maxSeats'],
|
p['maxSeats'],
|
||||||
|
@ -1760,7 +1765,7 @@ class Database:
|
||||||
return self.get_last_insert_id(c)
|
return self.get_last_insert_id(c)
|
||||||
# def storeHand
|
# def storeHand
|
||||||
|
|
||||||
def storeHandsPlayers(self, hid, pids, pdata, printdata = False):
|
def storeHandsPlayers(self, hid, pids, pdata, hp_bulk = None, insert = False, printdata = False):
|
||||||
#print "DEBUG: %s %s %s" %(hid, pids, pdata)
|
#print "DEBUG: %s %s %s" %(hid, pids, pdata)
|
||||||
if printdata:
|
if printdata:
|
||||||
import pprint
|
import pprint
|
||||||
|
@ -1768,7 +1773,6 @@ class Database:
|
||||||
pp.pprint(pdata)
|
pp.pprint(pdata)
|
||||||
|
|
||||||
inserts = []
|
inserts = []
|
||||||
hpid = {}
|
|
||||||
for p in pdata:
|
for p in pdata:
|
||||||
inserts.append( (hid,
|
inserts.append( (hid,
|
||||||
pids[p],
|
pids[p],
|
||||||
|
@ -1874,23 +1878,16 @@ class Database:
|
||||||
pdata[p]['street4Raises']
|
pdata[p]['street4Raises']
|
||||||
) )
|
) )
|
||||||
|
|
||||||
q = self.sql.query['store_hands_players']
|
if insert:
|
||||||
q = q.replace('%s', self.sql.query['placeholder'])
|
hp_bulk += inserts
|
||||||
|
q = self.sql.query['store_hands_players']
|
||||||
|
q = q.replace('%s', self.sql.query['placeholder'])
|
||||||
|
c = self.get_cursor()
|
||||||
|
c.executemany(q, hp_bulk)
|
||||||
|
|
||||||
|
return inserts
|
||||||
|
|
||||||
#print "DEBUG: inserts: %s" %inserts
|
def storeHandsActions(self, hid, pids, adata, ha_bulk = None, insert = False, printdata = False):
|
||||||
#print "DEBUG: q: %s" % q
|
|
||||||
c = self.get_cursor()
|
|
||||||
|
|
||||||
if self.import_options['saveActions']:
|
|
||||||
for r in inserts:
|
|
||||||
c.execute(q, r)
|
|
||||||
hpid[(r[0], r[1])] = self.get_last_insert_id(c)
|
|
||||||
else:
|
|
||||||
c.executemany(q, inserts)
|
|
||||||
|
|
||||||
return hpid
|
|
||||||
|
|
||||||
def storeHandsActions(self, hid, pids, hpid, adata, printdata = False):
|
|
||||||
#print "DEBUG: %s %s %s" %(hid, pids, adata)
|
#print "DEBUG: %s %s %s" %(hid, pids, adata)
|
||||||
|
|
||||||
# This can be used to generate test data. Currently unused
|
# This can be used to generate test data. Currently unused
|
||||||
|
@ -1901,8 +1898,8 @@ class Database:
|
||||||
|
|
||||||
inserts = []
|
inserts = []
|
||||||
for a in adata:
|
for a in adata:
|
||||||
inserts.append( (hpid[(hid, pids[adata[a]['player']])],
|
inserts.append( (hid,
|
||||||
#self.getHandsPlayerId(self.hid, pids[adata[a]['player']]),
|
pids[adata[a]['player']],
|
||||||
adata[a]['street'],
|
adata[a]['street'],
|
||||||
adata[a]['actionNo'],
|
adata[a]['actionNo'],
|
||||||
adata[a]['streetActionNo'],
|
adata[a]['streetActionNo'],
|
||||||
|
@ -1915,11 +1912,14 @@ class Database:
|
||||||
adata[a]['allIn']
|
adata[a]['allIn']
|
||||||
) )
|
) )
|
||||||
|
|
||||||
q = self.sql.query['store_hands_actions']
|
if insert:
|
||||||
q = q.replace('%s', self.sql.query['placeholder'])
|
ha_bulk += inserts
|
||||||
|
q = self.sql.query['store_hands_actions']
|
||||||
|
q = q.replace('%s', self.sql.query['placeholder'])
|
||||||
|
c = self.get_cursor()
|
||||||
|
c.executemany(q, ha_bulk)
|
||||||
|
|
||||||
c = self.get_cursor()
|
return inserts
|
||||||
c.executemany(q, inserts)
|
|
||||||
|
|
||||||
def storeHudCache(self, gid, pids, starttime, pdata):
|
def storeHudCache(self, gid, pids, starttime, pdata):
|
||||||
"""Update cached statistics. If update fails because no record exists, do an insert."""
|
"""Update cached statistics. If update fails because no record exists, do an insert."""
|
||||||
|
@ -2068,10 +2068,9 @@ class Database:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def storeSessionsCache(self, pids, startTime, game, pdata):
|
def storeSessionsCache(self, pids, startTime, game, pdata):
|
||||||
"""Update cached sessions. If update fails because no record exists, do an insert"""
|
"""Update cached sessions. If no record exists, do an insert"""
|
||||||
|
|
||||||
THRESHOLD = timedelta(seconds=int(self.sessionTimeout * 60))
|
THRESHOLD = timedelta(seconds=int(self.sessionTimeout * 60))
|
||||||
bigBet = int(Decimal(game['bb'])*200)
|
|
||||||
|
|
||||||
select_sessionscache = self.sql.query['select_sessionscache']
|
select_sessionscache = self.sql.query['select_sessionscache']
|
||||||
select_sessionscache = select_sessionscache.replace('%s', self.sql.query['placeholder'])
|
select_sessionscache = select_sessionscache.replace('%s', self.sql.query['placeholder'])
|
||||||
|
@ -2094,6 +2093,9 @@ class Database:
|
||||||
delete_sessions = self.sql.query['delete_sessions']
|
delete_sessions = self.sql.query['delete_sessions']
|
||||||
delete_sessions = delete_sessions.replace('%s', self.sql.query['placeholder'])
|
delete_sessions = delete_sessions.replace('%s', self.sql.query['placeholder'])
|
||||||
|
|
||||||
|
update_hands_sessionid = self.sql.query['update_hands_sessionid']
|
||||||
|
update_hands_sessionid = update_hands_sessionid.replace('%s', self.sql.query['placeholder'])
|
||||||
|
|
||||||
#Grab playerIds using hero names in HUD_Config.xml
|
#Grab playerIds using hero names in HUD_Config.xml
|
||||||
try:
|
try:
|
||||||
# derive list of program owner's player ids
|
# derive list of program owner's player ids
|
||||||
|
@ -2123,29 +2125,32 @@ class Database:
|
||||||
|
|
||||||
if (game['type']=='ring'): line[0] = 1 # count ring hands
|
if (game['type']=='ring'): line[0] = 1 # count ring hands
|
||||||
if (game['type']=='tour'): line[1] = 1 # count tour hands
|
if (game['type']=='tour'): line[1] = 1 # count tour hands
|
||||||
if (game['type']=='ring'): line[2] = pdata[p]['totalProfit'] #sum of profit
|
if (game['type']=='ring' and game['currency']=='USD'): line[2] = pdata[p]['totalProfit'] #sum of ring profit in USD
|
||||||
if (game['type']=='ring'): line[3] = 0 #float(Decimal(pdata[p]['totalProfit'])/Decimal(bigBet)) #sum of big bets won
|
if (game['type']=='ring' and game['currency']=='EUR'): line[3] = pdata[p]['totalProfit'] #sum of ring profit in EUR
|
||||||
line[4] = startTime
|
line[4] = startTime
|
||||||
inserts.append(line)
|
inserts.append(line)
|
||||||
|
|
||||||
cursor = self.get_cursor()
|
cursor = self.get_cursor()
|
||||||
|
id = None
|
||||||
|
|
||||||
for row in inserts:
|
for row in inserts:
|
||||||
threshold = []
|
threshold = []
|
||||||
threshold.append(row[-1]-THRESHOLD)
|
threshold.append(row[-1]-THRESHOLD)
|
||||||
threshold.append(row[-1]+THRESHOLD)
|
threshold.append(row[-1]+THRESHOLD)
|
||||||
cursor.execute(select_sessionscache, threshold)
|
cursor.execute(select_sessionscache, threshold)
|
||||||
num = cursor.rowcount
|
session_records = cursor.fetchall()
|
||||||
|
num = len(session_records)
|
||||||
if (num == 1):
|
if (num == 1):
|
||||||
|
id = session_records[0][0] #grab the sessionId
|
||||||
# Try to do the update first:
|
# Try to do the update first:
|
||||||
#print "DEBUG: found 1 record to update"
|
#print "DEBUG: found 1 record to update"
|
||||||
update_mid = row + row[-1:]
|
update_mid = row + row[-1:]
|
||||||
cursor.execute(select_sessionscache_mid, update_mid[-2:])
|
cursor.execute(select_sessionscache_mid, update_mid[-2:])
|
||||||
mid = cursor.rowcount
|
mid = len(cursor.fetchall())
|
||||||
if (mid == 0):
|
if (mid == 0):
|
||||||
update_startend = row[-1:] + row + threshold
|
update_startend = row[-1:] + row + threshold
|
||||||
cursor.execute(select_sessionscache_start, update_startend[-3:])
|
cursor.execute(select_sessionscache_start, update_startend[-3:])
|
||||||
start = cursor.rowcount
|
start = len(cursor.fetchall())
|
||||||
if (start == 0):
|
if (start == 0):
|
||||||
#print "DEBUG:", start, " start record found. Update stats and start time"
|
#print "DEBUG:", start, " start record found. Update stats and start time"
|
||||||
cursor.execute(update_sessionscache_end, update_startend)
|
cursor.execute(update_sessionscache_end, update_startend)
|
||||||
|
@ -2156,37 +2161,36 @@ class Database:
|
||||||
#print "DEBUG: update stats mid-session"
|
#print "DEBUG: update stats mid-session"
|
||||||
cursor.execute(update_sessionscache_mid, update_mid)
|
cursor.execute(update_sessionscache_mid, update_mid)
|
||||||
elif (num > 1):
|
elif (num > 1):
|
||||||
|
session_ids = [session_records[0][0], session_records[1][0]]
|
||||||
|
session_ids.sort()
|
||||||
# Multiple matches found - merge them into one session and update:
|
# Multiple matches found - merge them into one session and update:
|
||||||
#print "DEBUG:", num, "matches found"
|
# - Obtain the session start and end times for the new combined session
|
||||||
cursor.execute(merge_sessionscache, threshold)
|
cursor.execute(merge_sessionscache, session_ids)
|
||||||
merge = cursor.fetchone()
|
merge = cursor.fetchone()
|
||||||
cursor.execute(delete_sessions, threshold)
|
# - Delete the old records
|
||||||
|
for id in session_ids:
|
||||||
|
cursor.execute(delete_sessions, id)
|
||||||
|
# - Insert the new updated record
|
||||||
cursor.execute(insert_sessionscache, merge)
|
cursor.execute(insert_sessionscache, merge)
|
||||||
|
# - Obtain the new sessionId and write over the old ids in Hands
|
||||||
|
id = self.get_last_insert_id(cursor) #grab the sessionId
|
||||||
|
update_hands = [id] + session_ids
|
||||||
|
cursor.execute(update_hands_sessionid, update_hands)
|
||||||
|
# - Update the newly combined record in SessionsCache with data from this hand
|
||||||
update_mid = row + row[-1:]
|
update_mid = row + row[-1:]
|
||||||
cursor.execute(select_sessionscache_mid, update_mid[-2:])
|
cursor.execute(update_sessionscache_mid, update_mid)
|
||||||
mid = cursor.rowcount
|
|
||||||
if (mid == 0):
|
|
||||||
update_startend = row[-1:] + row + threshold
|
|
||||||
cursor.execute(select_sessionscache_start, update_startend[-3:])
|
|
||||||
start = cursor.rowcount
|
|
||||||
if (start == 0):
|
|
||||||
#print "DEBUG:", start, " start record found. Update stats and start time"
|
|
||||||
cursor.execute(update_sessionscache_end, update_startend)
|
|
||||||
else:
|
|
||||||
#print "DEBUG: 1 end record found. Update stats and end time time"
|
|
||||||
cursor.execute(update_sessionscache_start, update_startend)
|
|
||||||
else:
|
|
||||||
#print "DEBUG: update stats mid-session"
|
|
||||||
cursor.execute(update_sessionscache_mid, update_mid)
|
|
||||||
elif (num == 0):
|
elif (num == 0):
|
||||||
# No matches found, insert new session:
|
# No matches found, insert new session:
|
||||||
insert = row + row[-1:]
|
insert = row + row[-1:]
|
||||||
insert = insert[-2:] + insert[:-2]
|
insert = insert[-2:] + insert[:-2]
|
||||||
#print "DEBUG: No matches found. Insert record", insert
|
#print "DEBUG: No matches found. Insert record", insert
|
||||||
cursor.execute(insert_sessionscache, insert)
|
cursor.execute(insert_sessionscache, insert)
|
||||||
|
id = self.get_last_insert_id(cursor) #grab the sessionId
|
||||||
else:
|
else:
|
||||||
# Something bad happened
|
# Something bad happened
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
return id
|
||||||
|
|
||||||
def isDuplicate(self, gametypeID, siteHandNo):
|
def isDuplicate(self, gametypeID, siteHandNo):
|
||||||
dup = False
|
dup = False
|
||||||
|
|
|
@ -115,6 +115,7 @@ class DerivedStats():
|
||||||
self.hands['tableName'] = hand.tablename
|
self.hands['tableName'] = hand.tablename
|
||||||
self.hands['siteHandNo'] = hand.handid
|
self.hands['siteHandNo'] = hand.handid
|
||||||
self.hands['gametypeId'] = None # Leave None, handled later after checking db
|
self.hands['gametypeId'] = None # Leave None, handled later after checking db
|
||||||
|
self.hands['sessionId'] = None # Leave None, added later if caching sessions
|
||||||
self.hands['startTime'] = hand.startTime # format this!
|
self.hands['startTime'] = hand.startTime # format this!
|
||||||
self.hands['importTime'] = None
|
self.hands['importTime'] = None
|
||||||
self.hands['seats'] = self.countPlayers(hand)
|
self.hands['seats'] = self.countPlayers(hand)
|
||||||
|
|
|
@ -66,8 +66,18 @@ class Filters(threading.Thread):
|
||||||
if 'day_start' in gen:
|
if 'day_start' in gen:
|
||||||
self.day_start = float(gen['day_start'])
|
self.day_start = float(gen['day_start'])
|
||||||
|
|
||||||
|
|
||||||
|
self.sw = gtk.ScrolledWindow()
|
||||||
|
self.sw.set_border_width(0)
|
||||||
|
self.sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||||
|
self.sw.set_size_request(370, 300)
|
||||||
|
|
||||||
|
|
||||||
# Outer Packing box
|
# Outer Packing box
|
||||||
self.mainVBox = gtk.VBox(False, 0)
|
self.mainVBox = gtk.VBox(False, 0)
|
||||||
|
self.sw.add_with_viewport(self.mainVBox)
|
||||||
|
self.sw.show()
|
||||||
|
print "DEBUG: New packing box created!"
|
||||||
|
|
||||||
self.found = {'nl':False, 'fl':False, 'pl':False, 'ring':False, 'tour':False}
|
self.found = {'nl':False, 'fl':False, 'pl':False, 'ring':False, 'tour':False}
|
||||||
self.label = {}
|
self.label = {}
|
||||||
|
@ -245,7 +255,7 @@ class Filters(threading.Thread):
|
||||||
|
|
||||||
def get_vbox(self):
|
def get_vbox(self):
|
||||||
"""returns the vbox of this thread"""
|
"""returns the vbox of this thread"""
|
||||||
return self.mainVBox
|
return self.sw
|
||||||
#end def get_vbox
|
#end def get_vbox
|
||||||
|
|
||||||
def getNumHands(self):
|
def getNumHands(self):
|
||||||
|
|
|
@ -379,8 +379,8 @@ class Fulltilt(HandHistoryConverter):
|
||||||
r"(\*\*\* 7TH STREET \*\*\*(?P<SEVENTH>.+))?", hand.handText,re.DOTALL)
|
r"(\*\*\* 7TH STREET \*\*\*(?P<SEVENTH>.+))?", hand.handText,re.DOTALL)
|
||||||
elif hand.gametype['base'] in ("draw"):
|
elif hand.gametype['base'] in ("draw"):
|
||||||
m = re.search(r"(?P<PREDEAL>.+(?=\*\*\* HOLE CARDS \*\*\*)|.+)"
|
m = re.search(r"(?P<PREDEAL>.+(?=\*\*\* HOLE CARDS \*\*\*)|.+)"
|
||||||
r"(\*\*\* HOLE CARDS \*\*\*(?P<DEAL>.+(?=\*\*\* FIRST DRAW \*\*\*)|.+))?"
|
r"(\*\*\* HOLE CARDS \*\*\*(?P<DEAL>.+(?=(\*\*\* FIRST DRAW \*\*\*|\*\*\* DRAW \*\*\*))|.+))?"
|
||||||
r"(\*\*\* FIRST DRAW \*\*\*(?P<DRAWONE>.+(?=\*\*\* SECOND DRAW \*\*\*)|.+))?"
|
r"((\*\*\* FIRST DRAW \*\*\*|\*\*\* DRAW \*\*\*)(?P<DRAWONE>.+(?=\*\*\* SECOND DRAW \*\*\*)|.+))?"
|
||||||
r"(\*\*\* SECOND DRAW \*\*\*(?P<DRAWTWO>.+(?=\*\*\* THIRD DRAW \*\*\*)|.+))?"
|
r"(\*\*\* SECOND DRAW \*\*\*(?P<DRAWTWO>.+(?=\*\*\* THIRD DRAW \*\*\*)|.+))?"
|
||||||
r"(\*\*\* THIRD DRAW \*\*\*(?P<DRAWTHREE>.+))?", hand.handText,re.DOTALL)
|
r"(\*\*\* THIRD DRAW \*\*\*(?P<DRAWTHREE>.+))?", hand.handText,re.DOTALL)
|
||||||
|
|
||||||
|
|
|
@ -122,6 +122,10 @@ class GuiAutoImport (threading.Thread):
|
||||||
self.startButton.connect("clicked", self.startClicked, "start clicked")
|
self.startButton.connect("clicked", self.startClicked, "start clicked")
|
||||||
hbox.pack_start(self.startButton, expand=False, fill=False)
|
hbox.pack_start(self.startButton, expand=False, fill=False)
|
||||||
|
|
||||||
|
self.DetectButton = gtk.Button(_("Detect Directories"))
|
||||||
|
self.DetectButton.connect("clicked", self.detect_hh_dirs, "detect")
|
||||||
|
#hbox.pack_start(self.DetectButton, expand=False, fill=False)
|
||||||
|
|
||||||
|
|
||||||
lbl2 = gtk.Label()
|
lbl2 = gtk.Label()
|
||||||
hbox.pack_start(lbl2, expand=True, fill=False)
|
hbox.pack_start(lbl2, expand=True, fill=False)
|
||||||
|
@ -190,6 +194,31 @@ class GuiAutoImport (threading.Thread):
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def detect_hh_dirs(self, widget, data):
|
||||||
|
"""Attempt to find user hand history directories for enabled sites"""
|
||||||
|
the_sites = self.config.get_supported_sites()
|
||||||
|
for site in the_sites:
|
||||||
|
params = self.config.get_site_parameters(site)
|
||||||
|
if params['enabled'] == True:
|
||||||
|
print "DEBUG: Detecting hh directory for site: '%s'" % site
|
||||||
|
if os.name == 'posix':
|
||||||
|
if self.posix_detect_hh_dirs(site):
|
||||||
|
#data[1].set_text(dia_chooser.get_filename())
|
||||||
|
self.input_settings[site][0]
|
||||||
|
pass
|
||||||
|
elif os.name == 'nt':
|
||||||
|
# Sorry
|
||||||
|
pass
|
||||||
|
|
||||||
|
def posix_detect_hh_dirs(self, site):
|
||||||
|
defaults = {
|
||||||
|
'PokerStars': '~/.wine/drive_c/Program Files/PokerStars/HandHistory',
|
||||||
|
}
|
||||||
|
if site == 'PokerStars':
|
||||||
|
directory = os.path.expanduser(defaults[site])
|
||||||
|
for file in [file for file in os.listdir(directory) if not file in [".",".."]]:
|
||||||
|
print file
|
||||||
|
return False
|
||||||
|
|
||||||
def startClicked(self, widget, data):
|
def startClicked(self, widget, data):
|
||||||
"""runs when user clicks start on auto import tab"""
|
"""runs when user clicks start on auto import tab"""
|
||||||
|
|
|
@ -291,6 +291,7 @@ class GuiGraphViewer (threading.Thread):
|
||||||
lims = [int(x) for x in limits if x.isdigit()]
|
lims = [int(x) for x in limits if x.isdigit()]
|
||||||
potlims = [int(x[0:-2]) for x in limits if len(x) > 2 and x[-2:] == 'pl']
|
potlims = [int(x[0:-2]) for x in limits if len(x) > 2 and x[-2:] == 'pl']
|
||||||
nolims = [int(x[0:-2]) for x in limits if len(x) > 2 and x[-2:] == 'nl']
|
nolims = [int(x[0:-2]) for x in limits if len(x) > 2 and x[-2:] == 'nl']
|
||||||
|
capnolims = [int(x[0:-2]) for x in limits if len(x) > 2 and x[-2:] == 'cn']
|
||||||
limittest = "and ( (gt.limitType = 'fl' and gt.bigBlind in "
|
limittest = "and ( (gt.limitType = 'fl' and gt.bigBlind in "
|
||||||
# and ( (limit and bb in()) or (nolimit and bb in ()) )
|
# and ( (limit and bb in()) or (nolimit and bb in ()) )
|
||||||
if lims:
|
if lims:
|
||||||
|
@ -313,6 +314,14 @@ class GuiGraphViewer (threading.Thread):
|
||||||
blindtest = str(tuple(nolims))
|
blindtest = str(tuple(nolims))
|
||||||
blindtest = blindtest.replace("L", "")
|
blindtest = blindtest.replace("L", "")
|
||||||
blindtest = blindtest.replace(",)",")")
|
blindtest = blindtest.replace(",)",")")
|
||||||
|
limittest = limittest + blindtest + ' ) '
|
||||||
|
else:
|
||||||
|
limittest = limittest + '(-1) ) '
|
||||||
|
limittest = limittest + " or (gt.limitType = 'cn' and gt.bigBlind in "
|
||||||
|
if capnolims:
|
||||||
|
blindtest = str(tuple(capnolims))
|
||||||
|
blindtest = blindtest.replace("L", "")
|
||||||
|
blindtest = blindtest.replace(",)",")")
|
||||||
limittest = limittest + blindtest + ' ) )'
|
limittest = limittest + blindtest + ' ) )'
|
||||||
else:
|
else:
|
||||||
limittest = limittest + '(-1) ) )'
|
limittest = limittest + '(-1) ) )'
|
||||||
|
|
|
@ -623,6 +623,7 @@ class GuiRingPlayerStats (GuiPlayerStats.GuiPlayerStats):
|
||||||
lims = [int(x) for x in limits if x.isdigit()]
|
lims = [int(x) for x in limits if x.isdigit()]
|
||||||
potlims = [int(x[0:-2]) for x in limits if len(x) > 2 and x[-2:] == 'pl']
|
potlims = [int(x[0:-2]) for x in limits if len(x) > 2 and x[-2:] == 'pl']
|
||||||
nolims = [int(x[0:-2]) for x in limits if len(x) > 2 and x[-2:] == 'nl']
|
nolims = [int(x[0:-2]) for x in limits if len(x) > 2 and x[-2:] == 'nl']
|
||||||
|
capnolims = [int(x[0:-2]) for x in limits if len(x) > 2 and x[-2:] == 'cn']
|
||||||
bbtest = "and ( (gt.limitType = 'fl' and gt.bigBlind in "
|
bbtest = "and ( (gt.limitType = 'fl' and gt.bigBlind in "
|
||||||
# and ( (limit and bb in()) or (nolimit and bb in ()) )
|
# and ( (limit and bb in()) or (nolimit and bb in ()) )
|
||||||
if lims:
|
if lims:
|
||||||
|
@ -645,6 +646,14 @@ class GuiRingPlayerStats (GuiPlayerStats.GuiPlayerStats):
|
||||||
blindtest = str(tuple(nolims))
|
blindtest = str(tuple(nolims))
|
||||||
blindtest = blindtest.replace("L", "")
|
blindtest = blindtest.replace("L", "")
|
||||||
blindtest = blindtest.replace(",)",")")
|
blindtest = blindtest.replace(",)",")")
|
||||||
|
bbtest = bbtest + blindtest + ' ) '
|
||||||
|
else:
|
||||||
|
bbtest = bbtest + '(-1) ) '
|
||||||
|
bbtest = bbtest + " or (gt.limitType = 'cn' and gt.bigBlind in "
|
||||||
|
if capnolims:
|
||||||
|
blindtest = str(tuple(capnolims))
|
||||||
|
blindtest = blindtest.replace("L", "")
|
||||||
|
blindtest = blindtest.replace(",)",")")
|
||||||
bbtest = bbtest + blindtest + ' ) )'
|
bbtest = bbtest + blindtest + ' ) )'
|
||||||
else:
|
else:
|
||||||
bbtest = bbtest + '(-1) ) )'
|
bbtest = bbtest + '(-1) ) )'
|
||||||
|
|
|
@ -211,7 +211,7 @@ Left-Drag to Move"
|
||||||
</layout>
|
</layout>
|
||||||
</site>
|
</site>
|
||||||
|
|
||||||
<site enabled="False"
|
<site enabled="True"
|
||||||
site_name="Everleaf"
|
site_name="Everleaf"
|
||||||
table_finder="Everleaf.exe"
|
table_finder="Everleaf.exe"
|
||||||
screen_name="Hero"
|
screen_name="Hero"
|
||||||
|
@ -255,7 +255,7 @@ Left-Drag to Move"
|
||||||
</layout>
|
</layout>
|
||||||
</site>
|
</site>
|
||||||
|
|
||||||
<site enabled="False"
|
<site enabled="True"
|
||||||
site_name="Win2day"
|
site_name="Win2day"
|
||||||
table_finder="Win2day.exe"
|
table_finder="Win2day.exe"
|
||||||
screen_name="Hero"
|
screen_name="Hero"
|
||||||
|
@ -300,7 +300,7 @@ Left-Drag to Move"
|
||||||
</site>
|
</site>
|
||||||
|
|
||||||
|
|
||||||
<site enabled="False"
|
<site enabled="True"
|
||||||
site_name="Absolute"
|
site_name="Absolute"
|
||||||
table_finder="AbsolutePoker.exe"
|
table_finder="AbsolutePoker.exe"
|
||||||
screen_name="Hero"
|
screen_name="Hero"
|
||||||
|
@ -345,7 +345,7 @@ Left-Drag to Move"
|
||||||
</site>
|
</site>
|
||||||
|
|
||||||
|
|
||||||
<site enabled="False"
|
<site enabled="True"
|
||||||
site_name="PartyPoker"
|
site_name="PartyPoker"
|
||||||
table_finder="PartyGaming.exe"
|
table_finder="PartyGaming.exe"
|
||||||
screen_name="Hero"
|
screen_name="Hero"
|
||||||
|
@ -390,7 +390,7 @@ Left-Drag to Move"
|
||||||
</site>
|
</site>
|
||||||
|
|
||||||
|
|
||||||
<site enabled="False"
|
<site enabled="True"
|
||||||
site_name="Betfair"
|
site_name="Betfair"
|
||||||
table_finder="Betfair Poker.exe"
|
table_finder="Betfair Poker.exe"
|
||||||
screen_name="Hero"
|
screen_name="Hero"
|
||||||
|
@ -433,6 +433,188 @@ Left-Drag to Move"
|
||||||
<location seat="9" x="70" y="53"> </location>
|
<location seat="9" x="70" y="53"> </location>
|
||||||
</layout>
|
</layout>
|
||||||
</site>
|
</site>
|
||||||
|
|
||||||
|
|
||||||
|
<site HH_path="C:/Program Files/Carbon Poker/HandHistory/Hero/" converter="CarbonToFpdb" decoder="everleaf_decode_table" enabled="True" screen_name="Hero" site_name="Carbon" site_path="C:/Program Files/Carbin/" supported_games="holdem" table_finder="Carbon Poker.exe">
|
||||||
|
<layout fav_seat="0" height="547" max="8" width="794">
|
||||||
|
<location seat="1" x="640" y="64"> </location>
|
||||||
|
<location seat="2" x="650" y="230"> </location>
|
||||||
|
<location seat="3" x="650" y="385"> </location>
|
||||||
|
<location seat="4" x="588" y="425"> </location>
|
||||||
|
<location seat="5" x="92" y="425"> </location>
|
||||||
|
<location seat="6" x="0" y="373"> </location>
|
||||||
|
<location seat="7" x="0" y="223"> </location>
|
||||||
|
<location seat="8" x="25" y="50"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="6" width="794">
|
||||||
|
<location seat="1" x="640" y="58"> </location>
|
||||||
|
<location seat="2" x="654" y="288"> </location>
|
||||||
|
<location seat="3" x="615" y="424"> </location>
|
||||||
|
<location seat="4" x="70" y="421"> </location>
|
||||||
|
<location seat="5" x="0" y="280"> </location>
|
||||||
|
<location seat="6" x="70" y="58"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="2" width="794">
|
||||||
|
<location seat="1" x="651" y="288"> </location>
|
||||||
|
<location seat="2" x="10" y="288"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="9" width="794">
|
||||||
|
<location seat="1" x="634" y="38"> </location>
|
||||||
|
<location seat="2" x="667" y="184"> </location>
|
||||||
|
<location seat="3" x="667" y="321"> </location>
|
||||||
|
<location seat="4" x="667" y="445"> </location>
|
||||||
|
<location seat="5" x="337" y="459"> </location>
|
||||||
|
<location seat="6" x="0" y="400"> </location>
|
||||||
|
<location seat="7" x="0" y="322"> </location>
|
||||||
|
<location seat="8" x="0" y="181"> </location>
|
||||||
|
<location seat="9" x="70" y="53"> </location>
|
||||||
|
</layout>
|
||||||
|
</site>
|
||||||
|
|
||||||
|
<site HH_path="C:/Program Files/OnGame Sking/HandHistory/Hero/" converter="OnGameToFpdb" decoder="everleaf_decode_table" enabled="True" screen_name="Hero" site_name="OnGame" site_path="C:/Program Files/OnGame/" supported_games="holdem" table_finder="OnGame.exe">
|
||||||
|
<layout fav_seat="0" height="547" max="8" width="794">
|
||||||
|
<location seat="1" x="640" y="64"> </location>
|
||||||
|
<location seat="2" x="650" y="230"> </location>
|
||||||
|
<location seat="3" x="650" y="385"> </location>
|
||||||
|
<location seat="4" x="588" y="425"> </location>
|
||||||
|
<location seat="5" x="92" y="425"> </location>
|
||||||
|
<location seat="6" x="0" y="373"> </location>
|
||||||
|
<location seat="7" x="0" y="223"> </location>
|
||||||
|
<location seat="8" x="25" y="50"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="6" width="794">
|
||||||
|
<location seat="1" x="640" y="58"> </location>
|
||||||
|
<location seat="2" x="654" y="288"> </location>
|
||||||
|
<location seat="3" x="615" y="424"> </location>
|
||||||
|
<location seat="4" x="70" y="421"> </location>
|
||||||
|
<location seat="5" x="0" y="280"> </location>
|
||||||
|
<location seat="6" x="70" y="58"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="2" width="794">
|
||||||
|
<location seat="1" x="651" y="288"> </location>
|
||||||
|
<location seat="2" x="10" y="288"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="9" width="794">
|
||||||
|
<location seat="1" x="634" y="38"> </location>
|
||||||
|
<location seat="2" x="667" y="184"> </location>
|
||||||
|
<location seat="3" x="667" y="321"> </location>
|
||||||
|
<location seat="4" x="667" y="445"> </location>
|
||||||
|
<location seat="5" x="337" y="459"> </location>
|
||||||
|
<location seat="6" x="0" y="400"> </location>
|
||||||
|
<location seat="7" x="0" y="322"> </location>
|
||||||
|
<location seat="8" x="0" y="181"> </location>
|
||||||
|
<location seat="9" x="70" y="53"> </location>
|
||||||
|
</layout>
|
||||||
|
</site>
|
||||||
|
|
||||||
|
<site HH_path="C:/Program Files/PKR/HandHistory/Hero/" converter="PkrToFpdb" decoder="everleaf_decode_table" enabled="True" screen_name="Hero" site_name="PKR" site_path="C:/Program Files/PKR/" supported_games="holdem" table_finder="PKR.exe">
|
||||||
|
<layout fav_seat="0" height="547" max="8" width="794">
|
||||||
|
<location seat="1" x="640" y="64"> </location>
|
||||||
|
<location seat="2" x="650" y="230"> </location>
|
||||||
|
<location seat="3" x="650" y="385"> </location>
|
||||||
|
<location seat="4" x="588" y="425"> </location>
|
||||||
|
<location seat="5" x="92" y="425"> </location>
|
||||||
|
<location seat="6" x="0" y="373"> </location>
|
||||||
|
<location seat="7" x="0" y="223"> </location>
|
||||||
|
<location seat="8" x="25" y="50"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="6" width="794">
|
||||||
|
<location seat="1" x="640" y="58"> </location>
|
||||||
|
<location seat="2" x="654" y="288"> </location>
|
||||||
|
<location seat="3" x="615" y="424"> </location>
|
||||||
|
<location seat="4" x="70" y="421"> </location>
|
||||||
|
<location seat="5" x="0" y="280"> </location>
|
||||||
|
<location seat="6" x="70" y="58"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="2" width="794">
|
||||||
|
<location seat="1" x="651" y="288"> </location>
|
||||||
|
<location seat="2" x="10" y="288"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="9" width="794">
|
||||||
|
<location seat="1" x="634" y="38"> </location>
|
||||||
|
<location seat="2" x="667" y="184"> </location>
|
||||||
|
<location seat="3" x="667" y="321"> </location>
|
||||||
|
<location seat="4" x="667" y="445"> </location>
|
||||||
|
<location seat="5" x="337" y="459"> </location>
|
||||||
|
<location seat="6" x="0" y="400"> </location>
|
||||||
|
<location seat="7" x="0" y="322"> </location>
|
||||||
|
<location seat="8" x="0" y="181"> </location>
|
||||||
|
<location seat="9" x="70" y="53"> </location>
|
||||||
|
</layout>
|
||||||
|
</site>
|
||||||
|
|
||||||
|
<site HH_path="C:/Program Files/iPoker/HandHistory/Hero/" converter="iPokerToFpdb" decoder="everleaf_decode_table" enabled="True" screen_name="Hero" site_name="iPoker" site_path="C:/Program Files/iPoker/" supported_games="holdem" table_finder="iPoker.exe">
|
||||||
|
<layout fav_seat="0" height="547" max="8" width="794">
|
||||||
|
<location seat="1" x="640" y="64"> </location>
|
||||||
|
<location seat="2" x="650" y="230"> </location>
|
||||||
|
<location seat="3" x="650" y="385"> </location>
|
||||||
|
<location seat="4" x="588" y="425"> </location>
|
||||||
|
<location seat="5" x="92" y="425"> </location>
|
||||||
|
<location seat="6" x="0" y="373"> </location>
|
||||||
|
<location seat="7" x="0" y="223"> </location>
|
||||||
|
<location seat="8" x="25" y="50"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="6" width="794">
|
||||||
|
<location seat="1" x="640" y="58"> </location>
|
||||||
|
<location seat="2" x="654" y="288"> </location>
|
||||||
|
<location seat="3" x="615" y="424"> </location>
|
||||||
|
<location seat="4" x="70" y="421"> </location>
|
||||||
|
<location seat="5" x="0" y="280"> </location>
|
||||||
|
<location seat="6" x="70" y="58"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="2" width="794">
|
||||||
|
<location seat="1" x="651" y="288"> </location>
|
||||||
|
<location seat="2" x="10" y="288"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="9" width="794">
|
||||||
|
<location seat="1" x="634" y="38"> </location>
|
||||||
|
<location seat="2" x="667" y="184"> </location>
|
||||||
|
<location seat="3" x="667" y="321"> </location>
|
||||||
|
<location seat="4" x="667" y="445"> </location>
|
||||||
|
<location seat="5" x="337" y="459"> </location>
|
||||||
|
<location seat="6" x="0" y="400"> </location>
|
||||||
|
<location seat="7" x="0" y="322"> </location>
|
||||||
|
<location seat="8" x="0" y="181"> </location>
|
||||||
|
<location seat="9" x="70" y="53"> </location>
|
||||||
|
</layout>
|
||||||
|
</site>
|
||||||
|
|
||||||
|
<site HH_path="C:/Program Files/Winamax/HandHistory/Hero/" converter="WinamaxToFpdb" decoder="everleaf_decode_table" enabled="True" screen_name="Hero" site_name="Winamax" site_path="C:/Program Files/Winamax/" supported_games="holdem" table_finder="Winamax.exe">
|
||||||
|
<layout fav_seat="0" height="547" max="8" width="794">
|
||||||
|
<location seat="1" x="640" y="64"> </location>
|
||||||
|
<location seat="2" x="650" y="230"> </location>
|
||||||
|
<location seat="3" x="650" y="385"> </location>
|
||||||
|
<location seat="4" x="588" y="425"> </location>
|
||||||
|
<location seat="5" x="92" y="425"> </location>
|
||||||
|
<location seat="6" x="0" y="373"> </location>
|
||||||
|
<location seat="7" x="0" y="223"> </location>
|
||||||
|
<location seat="8" x="25" y="50"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="6" width="794">
|
||||||
|
<location seat="1" x="640" y="58"> </location>
|
||||||
|
<location seat="2" x="654" y="288"> </location>
|
||||||
|
<location seat="3" x="615" y="424"> </location>
|
||||||
|
<location seat="4" x="70" y="421"> </location>
|
||||||
|
<location seat="5" x="0" y="280"> </location>
|
||||||
|
<location seat="6" x="70" y="58"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="2" width="794">
|
||||||
|
<location seat="1" x="651" y="288"> </location>
|
||||||
|
<location seat="2" x="10" y="288"> </location>
|
||||||
|
</layout>
|
||||||
|
<layout fav_seat="0" height="547" max="9" width="794">
|
||||||
|
<location seat="1" x="634" y="38"> </location>
|
||||||
|
<location seat="2" x="667" y="184"> </location>
|
||||||
|
<location seat="3" x="667" y="321"> </location>
|
||||||
|
<location seat="4" x="667" y="445"> </location>
|
||||||
|
<location seat="5" x="337" y="459"> </location>
|
||||||
|
<location seat="6" x="0" y="400"> </location>
|
||||||
|
<location seat="7" x="0" y="322"> </location>
|
||||||
|
<location seat="8" x="0" y="181"> </location>
|
||||||
|
<location seat="9" x="70" y="53"> </location>
|
||||||
|
</layout>
|
||||||
|
</site>
|
||||||
|
|
||||||
</supported_sites>
|
</supported_sites>
|
||||||
|
|
||||||
<supported_games>
|
<supported_games>
|
||||||
|
|
|
@ -528,6 +528,18 @@ Left-Drag to Move"
|
||||||
<location seat="8" x="0" y="181"> </location>
|
<location seat="8" x="0" y="181"> </location>
|
||||||
<location seat="9" x="70" y="53"> </location>
|
<location seat="9" x="70" y="53"> </location>
|
||||||
</layout>
|
</layout>
|
||||||
|
<layout max="10" width="792" height="546" fav_seat="0">
|
||||||
|
<location seat="1" x="684" y="61"> </location>
|
||||||
|
<location seat="2" x="689" y="239"> </location>
|
||||||
|
<location seat="3" x="692" y="346"> </location>
|
||||||
|
<location seat="4" x="586" y="393"> </location>
|
||||||
|
<location seat="5" x="421" y="440"> </location>
|
||||||
|
<location seat="6" x="267" y="440"> </location>
|
||||||
|
<location seat="7" x="0" y="361"> </location>
|
||||||
|
<location seat="8" x="0" y="280"> </location>
|
||||||
|
<location seat="9" x="121" y="280"> </location>
|
||||||
|
<location seat="10" x="46" y="30"> </location>
|
||||||
|
</layout>
|
||||||
</site>
|
</site>
|
||||||
|
|
||||||
<site HH_path="C:/Program Files/PKR/HandHistory/YOUR SCREEN NAME HERE/" converter="PkrToFpdb" decoder="everleaf_decode_table" enabled="False" screen_name="YOUR SCREEN NAME HERE" site_name="PKR" site_path="C:/Program Files/PKR/" supported_games="holdem" table_finder="PKR.exe">
|
<site HH_path="C:/Program Files/PKR/HandHistory/YOUR SCREEN NAME HERE/" converter="PkrToFpdb" decoder="everleaf_decode_table" enabled="False" screen_name="YOUR SCREEN NAME HERE" site_name="PKR" site_path="C:/Program Files/PKR/" supported_games="holdem" table_finder="PKR.exe">
|
||||||
|
|
|
@ -57,6 +57,7 @@ class Hand(object):
|
||||||
#log.debug( _("Hand.init(): handText is ") + str(handText) )
|
#log.debug( _("Hand.init(): handText is ") + str(handText) )
|
||||||
self.config = config
|
self.config = config
|
||||||
self.saveActions = self.config.get_import_parameters().get('saveActions')
|
self.saveActions = self.config.get_import_parameters().get('saveActions')
|
||||||
|
self.cacheSessions = self.config.get_import_parameters().get("cacheSessions")
|
||||||
#log = Configuration.get_logger("logging.conf", "db", log_dir=self.config.dir_log)
|
#log = Configuration.get_logger("logging.conf", "db", log_dir=self.config.dir_log)
|
||||||
self.sitename = sitename
|
self.sitename = sitename
|
||||||
self.siteId = self.config.get_site_id(sitename)
|
self.siteId = self.config.get_site_id(sitename)
|
||||||
|
@ -258,7 +259,7 @@ dealt whether they were seen in a 'dealt to' line
|
||||||
db.commit()
|
db.commit()
|
||||||
#end def prepInsert
|
#end def prepInsert
|
||||||
|
|
||||||
def insert(self, db, printtest = False):
|
def insert(self, db, hp_data = None, ha_data = None, insert_data=False, printtest = False):
|
||||||
""" Function to insert Hand into database
|
""" Function to insert Hand into database
|
||||||
Should not commit, and do minimal selects. Callers may want to cache commits
|
Should not commit, and do minimal selects. Callers may want to cache commits
|
||||||
db: a connected Database object"""
|
db: a connected Database object"""
|
||||||
|
@ -276,17 +277,26 @@ db: a connected Database object"""
|
||||||
hh['gametypeId'] = self.dbid_gt
|
hh['gametypeId'] = self.dbid_gt
|
||||||
# seats TINYINT NOT NULL,
|
# seats TINYINT NOT NULL,
|
||||||
hh['seats'] = len(self.dbid_pids)
|
hh['seats'] = len(self.dbid_pids)
|
||||||
|
|
||||||
|
hp = self.stats.getHandsPlayers()
|
||||||
|
|
||||||
|
if self.cacheSessions:
|
||||||
|
hh['sessionId'] = db.storeSessionsCache(self.dbid_pids, self.startTime, self.gametype, hp)
|
||||||
|
|
||||||
self.dbid_hands = db.storeHand(hh, printdata = printtest)
|
self.dbid_hands = db.storeHand(hh, printdata = printtest)
|
||||||
self.dbid_hpid = db.storeHandsPlayers(self.dbid_hands, self.dbid_pids,
|
|
||||||
self.stats.getHandsPlayers(), printdata = printtest)
|
hp_inserts = db.storeHandsPlayers(self.dbid_hands, self.dbid_pids, hp,
|
||||||
|
insert=insert_data, hp_bulk = hp_data, printdata = printtest)
|
||||||
|
|
||||||
if self.saveActions:
|
if self.saveActions:
|
||||||
db.storeHandsActions(self.dbid_hands, self.dbid_pids, self.dbid_hpid,
|
ha_inserts = db.storeHandsActions(self.dbid_hands, self.dbid_pids, self.stats.getHandsActions(),
|
||||||
self.stats.getHandsActions(), printdata = printtest)
|
insert=insert_data, ha_bulk = ha_data, printdata = printtest)
|
||||||
else:
|
else:
|
||||||
log.info(_("Hand.insert(): hid #: %s is a duplicate") % hh['siteHandNo'])
|
log.info(_("Hand.insert(): hid #: %s is a duplicate") % hh['siteHandNo'])
|
||||||
self.is_duplicate = True # i.e. don't update hudcache
|
self.is_duplicate = True # i.e. don't update hudcache
|
||||||
raise FpdbHandDuplicate(hh['siteHandNo'])
|
raise FpdbHandDuplicate(hh['siteHandNo'])
|
||||||
|
|
||||||
|
return hp_inserts, ha_inserts
|
||||||
|
|
||||||
def updateHudCache(self, db):
|
def updateHudCache(self, db):
|
||||||
db.storeHudCache(self.dbid_gt, self.dbid_pids, self.startTime, self.stats.getHandsPlayers())
|
db.storeHudCache(self.dbid_gt, self.dbid_pids, self.startTime, self.stats.getHandsPlayers())
|
||||||
|
|
|
@ -338,7 +338,14 @@ class PokerStars(HandHistoryConverter):
|
||||||
r"(\*\*\* 6th STREET \*\*\*(?P<SIXTH>.+(?=\*\*\* RIVER \*\*\*)|.+))?"
|
r"(\*\*\* 6th STREET \*\*\*(?P<SIXTH>.+(?=\*\*\* RIVER \*\*\*)|.+))?"
|
||||||
r"(\*\*\* RIVER \*\*\*(?P<SEVENTH>.+))?", hand.handText,re.DOTALL)
|
r"(\*\*\* RIVER \*\*\*(?P<SEVENTH>.+))?", hand.handText,re.DOTALL)
|
||||||
elif hand.gametype['base'] in ("draw"):
|
elif hand.gametype['base'] in ("draw"):
|
||||||
m = re.search(r"(?P<PREDEAL>.+(?=\*\*\* DEALING HANDS \*\*\*)|.+)"
|
if hand.gametype['category'] in ('27_1draw', 'fivedraw'):
|
||||||
|
# There is no marker between deal and draw in Stars single draw games
|
||||||
|
# This unfortunately affects the accounting.
|
||||||
|
m = re.search(r"(?P<PREDEAL>.+(?=\*\*\* DEALING HANDS \*\*\*)|.+)"
|
||||||
|
r"(\*\*\* DEALING HANDS \*\*\*(?P<DEAL>.+(?=(: stands pat on|: discards))|.+))?"
|
||||||
|
r"((: stands pat on|: discards)(?P<DRAWONE>.+))?", hand.handText,re.DOTALL)
|
||||||
|
else:
|
||||||
|
m = re.search(r"(?P<PREDEAL>.+(?=\*\*\* DEALING HANDS \*\*\*)|.+)"
|
||||||
r"(\*\*\* DEALING HANDS \*\*\*(?P<DEAL>.+(?=\*\*\* FIRST DRAW \*\*\*)|.+))?"
|
r"(\*\*\* DEALING HANDS \*\*\*(?P<DEAL>.+(?=\*\*\* FIRST DRAW \*\*\*)|.+))?"
|
||||||
r"(\*\*\* FIRST DRAW \*\*\*(?P<DRAWONE>.+(?=\*\*\* SECOND DRAW \*\*\*)|.+))?"
|
r"(\*\*\* FIRST DRAW \*\*\*(?P<DRAWONE>.+(?=\*\*\* SECOND DRAW \*\*\*)|.+))?"
|
||||||
r"(\*\*\* SECOND DRAW \*\*\*(?P<DRAWTWO>.+(?=\*\*\* THIRD DRAW \*\*\*)|.+))?"
|
r"(\*\*\* SECOND DRAW \*\*\*(?P<DRAWTWO>.+(?=\*\*\* THIRD DRAW \*\*\*)|.+))?"
|
||||||
|
|
102
pyfpdb/SQL.py
102
pyfpdb/SQL.py
|
@ -346,6 +346,7 @@ class Sql:
|
||||||
siteHandNo BIGINT NOT NULL,
|
siteHandNo BIGINT NOT NULL,
|
||||||
tourneyId INT UNSIGNED,
|
tourneyId INT UNSIGNED,
|
||||||
gametypeId SMALLINT UNSIGNED NOT NULL, FOREIGN KEY (gametypeId) REFERENCES Gametypes(id),
|
gametypeId SMALLINT UNSIGNED NOT NULL, FOREIGN KEY (gametypeId) REFERENCES Gametypes(id),
|
||||||
|
sessionId INT UNSIGNED,
|
||||||
startTime DATETIME NOT NULL,
|
startTime DATETIME NOT NULL,
|
||||||
importTime DATETIME NOT NULL,
|
importTime DATETIME NOT NULL,
|
||||||
seats TINYINT NOT NULL,
|
seats TINYINT NOT NULL,
|
||||||
|
@ -383,6 +384,7 @@ class Sql:
|
||||||
siteHandNo BIGINT NOT NULL,
|
siteHandNo BIGINT NOT NULL,
|
||||||
tourneyId INT,
|
tourneyId INT,
|
||||||
gametypeId INT NOT NULL, FOREIGN KEY (gametypeId) REFERENCES Gametypes(id),
|
gametypeId INT NOT NULL, FOREIGN KEY (gametypeId) REFERENCES Gametypes(id),
|
||||||
|
sessionId INT,
|
||||||
startTime timestamp without time zone NOT NULL,
|
startTime timestamp without time zone NOT NULL,
|
||||||
importTime timestamp without time zone NOT NULL,
|
importTime timestamp without time zone NOT NULL,
|
||||||
seats SMALLINT NOT NULL,
|
seats SMALLINT NOT NULL,
|
||||||
|
@ -419,6 +421,7 @@ class Sql:
|
||||||
siteHandNo INT NOT NULL,
|
siteHandNo INT NOT NULL,
|
||||||
tourneyId INT,
|
tourneyId INT,
|
||||||
gametypeId INT NOT NULL,
|
gametypeId INT NOT NULL,
|
||||||
|
sessionId INT,
|
||||||
startTime REAL NOT NULL,
|
startTime REAL NOT NULL,
|
||||||
importTime REAL NOT NULL,
|
importTime REAL NOT NULL,
|
||||||
seats INT NOT NULL,
|
seats INT NOT NULL,
|
||||||
|
@ -1028,7 +1031,8 @@ class Sql:
|
||||||
if db_server == 'mysql':
|
if db_server == 'mysql':
|
||||||
self.query['createHandsActionsTable'] = """CREATE TABLE HandsActions (
|
self.query['createHandsActionsTable'] = """CREATE TABLE HandsActions (
|
||||||
id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, PRIMARY KEY (id),
|
id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, PRIMARY KEY (id),
|
||||||
handsPlayerId BIGINT UNSIGNED NOT NULL, FOREIGN KEY (handsPlayerId) REFERENCES HandsPlayers(id),
|
handId BIGINT UNSIGNED NOT NULL, FOREIGN KEY (handId) REFERENCES Hands(id),
|
||||||
|
playerId INT UNSIGNED NOT NULL, FOREIGN KEY (playerId) REFERENCES Players(id),
|
||||||
street SMALLINT NOT NULL,
|
street SMALLINT NOT NULL,
|
||||||
actionNo SMALLINT NOT NULL,
|
actionNo SMALLINT NOT NULL,
|
||||||
streetActionNo SMALLINT NOT NULL,
|
streetActionNo SMALLINT NOT NULL,
|
||||||
|
@ -1043,7 +1047,8 @@ class Sql:
|
||||||
elif db_server == 'postgresql':
|
elif db_server == 'postgresql':
|
||||||
self.query['createHandsActionsTable'] = """CREATE TABLE HandsActions (
|
self.query['createHandsActionsTable'] = """CREATE TABLE HandsActions (
|
||||||
id BIGSERIAL, PRIMARY KEY (id),
|
id BIGSERIAL, PRIMARY KEY (id),
|
||||||
handsPlayerId BIGINT, FOREIGN KEY (handsPlayerId) REFERENCES HandsPlayers(id),
|
handId BIGINT NOT NULL, FOREIGN KEY (handId) REFERENCES Hands(id),
|
||||||
|
playerId INT NOT NULL, FOREIGN KEY (playerId) REFERENCES Players(id),
|
||||||
street SMALLINT,
|
street SMALLINT,
|
||||||
actionNo SMALLINT,
|
actionNo SMALLINT,
|
||||||
streetActionNo SMALLINT,
|
streetActionNo SMALLINT,
|
||||||
|
@ -1057,7 +1062,8 @@ class Sql:
|
||||||
elif db_server == 'sqlite':
|
elif db_server == 'sqlite':
|
||||||
self.query['createHandsActionsTable'] = """CREATE TABLE HandsActions (
|
self.query['createHandsActionsTable'] = """CREATE TABLE HandsActions (
|
||||||
id INTEGER PRIMARY KEY,
|
id INTEGER PRIMARY KEY,
|
||||||
handsPlayerId BIGINT,
|
handId INT NOT NULL,
|
||||||
|
playerId INT NOT NULL,
|
||||||
street SMALLINT,
|
street SMALLINT,
|
||||||
actionNo SMALLINT,
|
actionNo SMALLINT,
|
||||||
streetActionNo SMALLINT,
|
streetActionNo SMALLINT,
|
||||||
|
@ -1067,9 +1073,7 @@ class Sql:
|
||||||
amountCalled INT,
|
amountCalled INT,
|
||||||
numDiscarded SMALLINT,
|
numDiscarded SMALLINT,
|
||||||
cardsDiscarded TEXT,
|
cardsDiscarded TEXT,
|
||||||
allIn BOOLEAN,
|
allIn BOOLEAN
|
||||||
FOREIGN KEY (handsPlayerId) REFERENCES HandsPlayers(id),
|
|
||||||
FOREIGN KEY (actionId) REFERENCES Actions(id) ON DELETE CASCADE
|
|
||||||
)"""
|
)"""
|
||||||
|
|
||||||
|
|
||||||
|
@ -1410,8 +1414,8 @@ class Sql:
|
||||||
sessionEnd DATETIME NOT NULL,
|
sessionEnd DATETIME NOT NULL,
|
||||||
ringHDs INT NOT NULL,
|
ringHDs INT NOT NULL,
|
||||||
tourHDs INT NOT NULL,
|
tourHDs INT NOT NULL,
|
||||||
totalProfit INT NOT NULL,
|
ringProfitUSD INT NOT NULL,
|
||||||
bigBets FLOAT UNSIGNED NOT NULL)
|
ringProfitEUR INT NOT NULL)
|
||||||
|
|
||||||
ENGINE=INNODB"""
|
ENGINE=INNODB"""
|
||||||
elif db_server == 'postgresql':
|
elif db_server == 'postgresql':
|
||||||
|
@ -1421,8 +1425,8 @@ class Sql:
|
||||||
sessionEnd REAL NOT NULL,
|
sessionEnd REAL NOT NULL,
|
||||||
ringHDs INT NOT NULL,
|
ringHDs INT NOT NULL,
|
||||||
tourHDs INT NOT NULL,
|
tourHDs INT NOT NULL,
|
||||||
totalProfit INT NOT NULL,
|
ringProfitUSD INT NOT NULL,
|
||||||
bigBets FLOAT NOT NULL)
|
ringProfitEUR INT NOT NULL)
|
||||||
"""
|
"""
|
||||||
elif db_server == 'sqlite':
|
elif db_server == 'sqlite':
|
||||||
self.query['createSessionsCacheTable'] = """CREATE TABLE SessionsCache (
|
self.query['createSessionsCacheTable'] = """CREATE TABLE SessionsCache (
|
||||||
|
@ -1431,8 +1435,8 @@ class Sql:
|
||||||
sessionEnd REAL NOT NULL,
|
sessionEnd REAL NOT NULL,
|
||||||
ringHDs INT NOT NULL,
|
ringHDs INT NOT NULL,
|
||||||
tourHDs INT NOT NULL,
|
tourHDs INT NOT NULL,
|
||||||
totalProfit INT NOT NULL,
|
ringProfitUSD INT NOT NULL,
|
||||||
bigBets REAL UNSIGNED NOT NULL)
|
ringProfitEUR INT NOT NULL)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if db_server == 'mysql':
|
if db_server == 'mysql':
|
||||||
|
@ -4293,12 +4297,13 @@ class Sql:
|
||||||
####################################
|
####################################
|
||||||
|
|
||||||
self.query['select_sessionscache'] = """
|
self.query['select_sessionscache'] = """
|
||||||
SELECT sessionStart,
|
SELECT id,
|
||||||
|
sessionStart,
|
||||||
sessionEnd,
|
sessionEnd,
|
||||||
ringHDs,
|
ringHDs,
|
||||||
tourHDs,
|
tourHDs,
|
||||||
totalProfit,
|
ringProfitUSD,
|
||||||
bigBets
|
ringProfitEUR
|
||||||
FROM SessionsCache
|
FROM SessionsCache
|
||||||
WHERE sessionEnd>=%s
|
WHERE sessionEnd>=%s
|
||||||
AND sessionStart<=%s"""
|
AND sessionStart<=%s"""
|
||||||
|
@ -4308,8 +4313,8 @@ class Sql:
|
||||||
sessionEnd,
|
sessionEnd,
|
||||||
ringHDs,
|
ringHDs,
|
||||||
tourHDs,
|
tourHDs,
|
||||||
totalProfit,
|
ringProfitUSD,
|
||||||
bigBets
|
ringProfitEUR
|
||||||
FROM SessionsCache
|
FROM SessionsCache
|
||||||
WHERE sessionEnd>=%s
|
WHERE sessionEnd>=%s
|
||||||
AND sessionStart<=%s"""
|
AND sessionStart<=%s"""
|
||||||
|
@ -4319,8 +4324,8 @@ class Sql:
|
||||||
sessionEnd,
|
sessionEnd,
|
||||||
ringHDs,
|
ringHDs,
|
||||||
tourHDs,
|
tourHDs,
|
||||||
totalProfit,
|
ringProfitUSD,
|
||||||
bigBets
|
ringProfitEUR
|
||||||
FROM SessionsCache
|
FROM SessionsCache
|
||||||
WHERE sessionStart>%s
|
WHERE sessionStart>%s
|
||||||
AND sessionEnd>=%s
|
AND sessionEnd>=%s
|
||||||
|
@ -4330,8 +4335,8 @@ class Sql:
|
||||||
UPDATE SessionsCache SET
|
UPDATE SessionsCache SET
|
||||||
ringHDs=ringHDs+%s,
|
ringHDs=ringHDs+%s,
|
||||||
tourHDs=tourHDs+%s,
|
tourHDs=tourHDs+%s,
|
||||||
totalProfit=totalProfit+%s,
|
ringProfitUSD=ringProfitUSD+%s,
|
||||||
bigBets=bigBets+%s
|
ringProfitEUR=ringProfitEUR+%s
|
||||||
WHERE sessionStart<=%s
|
WHERE sessionStart<=%s
|
||||||
AND sessionEnd>=%s"""
|
AND sessionEnd>=%s"""
|
||||||
|
|
||||||
|
@ -4340,8 +4345,8 @@ class Sql:
|
||||||
sessionStart=%s,
|
sessionStart=%s,
|
||||||
ringHDs=ringHDs+%s,
|
ringHDs=ringHDs+%s,
|
||||||
tourHDs=tourHDs+%s,
|
tourHDs=tourHDs+%s,
|
||||||
totalProfit=totalProfit+%s,
|
ringProfitUSD=ringProfitUSD+%s,
|
||||||
bigBets=bigBets+%s
|
ringProfitEUR=ringProfitEUR+%s
|
||||||
WHERE sessionStart>%s
|
WHERE sessionStart>%s
|
||||||
AND sessionEnd>=%s
|
AND sessionEnd>=%s
|
||||||
AND sessionStart<=%s"""
|
AND sessionStart<=%s"""
|
||||||
|
@ -4351,8 +4356,8 @@ class Sql:
|
||||||
sessionEnd=%s,
|
sessionEnd=%s,
|
||||||
ringHDs=ringHDs+%s,
|
ringHDs=ringHDs+%s,
|
||||||
tourHDs=tourHDs+%s,
|
tourHDs=tourHDs+%s,
|
||||||
totalProfit=totalProfit+%s,
|
ringProfitUSD=ringProfitUSD+%s,
|
||||||
bigBets=bigBets+%s
|
ringProfitEUR=ringProfitEUR+%s
|
||||||
WHERE sessionEnd<%s
|
WHERE sessionEnd<%s
|
||||||
AND sessionEnd>=%s
|
AND sessionEnd>=%s
|
||||||
AND sessionStart<=%s"""
|
AND sessionStart<=%s"""
|
||||||
|
@ -4363,20 +4368,27 @@ class Sql:
|
||||||
sessionEnd,
|
sessionEnd,
|
||||||
ringHDs,
|
ringHDs,
|
||||||
tourHDs,
|
tourHDs,
|
||||||
totalProfit,
|
ringProfitUSD,
|
||||||
bigBets)
|
ringProfitEUR)
|
||||||
VALUES (%s, %s, %s, %s, %s, %s)"""
|
VALUES (%s, %s, %s, %s, %s, %s)"""
|
||||||
|
|
||||||
self.query['merge_sessionscache'] = """
|
self.query['merge_sessionscache'] = """
|
||||||
SELECT min(sessionStart), max(sessionEnd), sum(ringHDs), sum(tourHDs), sum(totalProfit), sum(bigBets)
|
SELECT min(sessionStart), max(sessionEnd), sum(ringHDs), sum(tourHDs), sum(ringProfitUSD), sum(ringProfitEUR)
|
||||||
FROM SessionsCache
|
FROM SessionsCache
|
||||||
WHERE sessionEnd>=%s
|
WHERE (case when id=%s or id=%s then 1 else 0 end)=1"""
|
||||||
AND sessionStart<=%s"""
|
|
||||||
|
|
||||||
self.query['delete_sessions'] = """
|
self.query['delete_sessions'] = """
|
||||||
DELETE FROM SessionsCache
|
DELETE FROM SessionsCache
|
||||||
WHERE sessionEnd>=%s
|
WHERE id=%s"""
|
||||||
AND sessionStart<=%s"""
|
|
||||||
|
self.query['update_hands_sessionid'] = """
|
||||||
|
UPDATE Hands SET
|
||||||
|
sessionId=%s
|
||||||
|
WHERE (case when sessionId=%s or sessionId=%s then 1 else 0 end)=1"""
|
||||||
|
|
||||||
|
####################################
|
||||||
|
# Database management queries
|
||||||
|
####################################
|
||||||
|
|
||||||
if db_server == 'mysql':
|
if db_server == 'mysql':
|
||||||
self.query['analyze'] = """
|
self.query['analyze'] = """
|
||||||
|
@ -4566,11 +4578,12 @@ class Sql:
|
||||||
self.query['handsPlayersTTypeId_joiner'] = " OR TourneysPlayersId+0="
|
self.query['handsPlayersTTypeId_joiner'] = " OR TourneysPlayersId+0="
|
||||||
self.query['handsPlayersTTypeId_joiner_id'] = " OR id="
|
self.query['handsPlayersTTypeId_joiner_id'] = " OR id="
|
||||||
|
|
||||||
self.query['store_hand'] = """INSERT INTO Hands (
|
self.query['store_hand'] = """insert into Hands (
|
||||||
tablename,
|
tablename,
|
||||||
gametypeid,
|
|
||||||
sitehandno,
|
sitehandno,
|
||||||
tourneyId,
|
tourneyId,
|
||||||
|
gametypeid,
|
||||||
|
sessionId,
|
||||||
startTime,
|
startTime,
|
||||||
importtime,
|
importtime,
|
||||||
seats,
|
seats,
|
||||||
|
@ -4598,13 +4611,13 @@ class Sql:
|
||||||
street4Pot,
|
street4Pot,
|
||||||
showdownPot
|
showdownPot
|
||||||
)
|
)
|
||||||
VALUES
|
values
|
||||||
(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s,
|
(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,
|
||||||
%s, %s, %s, %s, %s, %s, %s, %s, %s, %s,
|
%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,
|
||||||
%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"""
|
%s, %s, %s, %s, %s, %s, %s, %s, %s)"""
|
||||||
|
|
||||||
|
|
||||||
self.query['store_hands_players'] = """INSERT INTO HandsPlayers (
|
self.query['store_hands_players'] = """insert into HandsPlayers (
|
||||||
handId,
|
handId,
|
||||||
playerId,
|
playerId,
|
||||||
startCash,
|
startCash,
|
||||||
|
@ -4708,7 +4721,7 @@ class Sql:
|
||||||
street3Raises,
|
street3Raises,
|
||||||
street4Raises
|
street4Raises
|
||||||
)
|
)
|
||||||
VALUES (
|
values (
|
||||||
%s, %s, %s, %s, %s,
|
%s, %s, %s, %s, %s,
|
||||||
%s, %s, %s, %s, %s,
|
%s, %s, %s, %s, %s,
|
||||||
%s, %s, %s, %s, %s,
|
%s, %s, %s, %s, %s,
|
||||||
|
@ -4732,8 +4745,9 @@ class Sql:
|
||||||
%s, %s
|
%s, %s
|
||||||
)"""
|
)"""
|
||||||
|
|
||||||
self.query['store_hands_actions'] = """INSERT INTO HandsActions (
|
self.query['store_hands_actions'] = """insert into HandsActions (
|
||||||
handsPlayerId,
|
handId,
|
||||||
|
playerId,
|
||||||
street,
|
street,
|
||||||
actionNo,
|
actionNo,
|
||||||
streetActionNo,
|
streetActionNo,
|
||||||
|
@ -4745,10 +4759,10 @@ class Sql:
|
||||||
cardsDiscarded,
|
cardsDiscarded,
|
||||||
allIn
|
allIn
|
||||||
)
|
)
|
||||||
VALUES (
|
values (
|
||||||
%s, %s, %s, %s, %s,
|
%s, %s, %s, %s, %s,
|
||||||
%s, %s, %s, %s, %s,
|
%s, %s, %s, %s, %s,
|
||||||
%s
|
%s, %s
|
||||||
)"""
|
)"""
|
||||||
|
|
||||||
################################
|
################################
|
||||||
|
|
4
pyfpdb/TestHandsPlayers.py
Executable file → Normal file
4
pyfpdb/TestHandsPlayers.py
Executable file → Normal file
|
@ -152,14 +152,14 @@ def compare_hands_file(filename, importer, errors):
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
# Stats don't match.
|
# Stats don't match.
|
||||||
if datum == "gametypeId":
|
if datum == "gametypeId" or datum == 'sessionId':
|
||||||
# Not an error. gametypeIds are dependent on the order added to the db.
|
# Not an error. gametypeIds are dependent on the order added to the db.
|
||||||
#print "DEBUG: Skipping mismatched gamtypeId"
|
#print "DEBUG: Skipping mismatched gamtypeId"
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
errors.error_report(filename, hand, datum, ghash, testhash, None)
|
errors.error_report(filename, hand, datum, ghash, testhash, None)
|
||||||
except KeyError, e:
|
except KeyError, e:
|
||||||
errors.error_report(filename, False, "KeyError: '%s'" % stat, False, False, p)
|
errors.error_report(filename, False, "KeyError: '%s'" % datum, False, False, None)
|
||||||
|
|
||||||
|
|
||||||
def compare(leaf, importer, errors, site):
|
def compare(leaf, importer, errors, site):
|
||||||
|
|
|
@ -259,8 +259,7 @@ class fpdb:
|
||||||
, ('PyGTK', '.'.join([str(x) for x in gtk.pygtk_version]))
|
, ('PyGTK', '.'.join([str(x) for x in gtk.pygtk_version]))
|
||||||
, ('matplotlib', matplotlib_version)
|
, ('matplotlib', matplotlib_version)
|
||||||
, ('numpy', numpy_version)
|
, ('numpy', numpy_version)
|
||||||
, ('sqlite3', sqlite3_version)
|
, ('sqlite', sqlite_version)
|
||||||
, ('sqlite', sqlite_version)
|
|
||||||
, ('fpdb version', VERSION)
|
, ('fpdb version', VERSION)
|
||||||
, ('database used', self.settings['db-server'])
|
, ('database used', self.settings['db-server'])
|
||||||
]
|
]
|
||||||
|
|
|
@ -83,7 +83,6 @@ class Importer:
|
||||||
self.pos_in_file = {} # dict to remember how far we have read in the file
|
self.pos_in_file = {} # dict to remember how far we have read in the file
|
||||||
#Set defaults
|
#Set defaults
|
||||||
self.callHud = self.config.get_import_parameters().get("callFpdbHud")
|
self.callHud = self.config.get_import_parameters().get("callFpdbHud")
|
||||||
self.cacheSessions = self.config.get_import_parameters().get("cacheSessions")
|
|
||||||
|
|
||||||
# CONFIGURATION OPTIONS
|
# CONFIGURATION OPTIONS
|
||||||
self.settings.setdefault("handCount", 0)
|
self.settings.setdefault("handCount", 0)
|
||||||
|
@ -470,12 +469,20 @@ class Importer:
|
||||||
handlist = hhc.getProcessedHands()
|
handlist = hhc.getProcessedHands()
|
||||||
self.pos_in_file[file] = hhc.getLastCharacterRead()
|
self.pos_in_file[file] = hhc.getLastCharacterRead()
|
||||||
to_hud = []
|
to_hud = []
|
||||||
|
hp_bulk = []
|
||||||
|
ha_bulk = []
|
||||||
|
i = 0
|
||||||
|
|
||||||
for hand in handlist:
|
for hand in handlist:
|
||||||
|
i += 1
|
||||||
if hand is not None:
|
if hand is not None:
|
||||||
hand.prepInsert(self.database, printtest = self.settings['testData'])
|
hand.prepInsert(self.database, printtest = self.settings['testData'])
|
||||||
try:
|
try:
|
||||||
hand.insert(self.database, printtest = self.settings['testData'])
|
hp_inserts, ha_inserts = hand.insert(self.database, hp_data = hp_bulk,
|
||||||
|
ha_data = ha_bulk, insert_data = len(handlist)==i,
|
||||||
|
printtest = self.settings['testData'])
|
||||||
|
hp_bulk += hp_inserts
|
||||||
|
ha_bulk += ha_inserts
|
||||||
except Exceptions.FpdbHandDuplicate:
|
except Exceptions.FpdbHandDuplicate:
|
||||||
duplicates += 1
|
duplicates += 1
|
||||||
else:
|
else:
|
||||||
|
@ -491,13 +498,6 @@ class Importer:
|
||||||
if hand is not None and not hand.is_duplicate:
|
if hand is not None and not hand.is_duplicate:
|
||||||
hand.updateHudCache(self.database)
|
hand.updateHudCache(self.database)
|
||||||
self.database.commit()
|
self.database.commit()
|
||||||
|
|
||||||
# Call sessionsCache update
|
|
||||||
if self.cacheSessions:
|
|
||||||
for hand in handlist:
|
|
||||||
if hand is not None and not hand.is_duplicate:
|
|
||||||
hand.updateSessionsCache(self.database)
|
|
||||||
self.database.commit()
|
|
||||||
|
|
||||||
#pipe the Hands.id out to the HUD
|
#pipe the Hands.id out to the HUD
|
||||||
if self.caller:
|
if self.caller:
|
||||||
|
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
|
@ -6,11 +6,13 @@ python /usr/share/doc/python-2.*/examples/Tools/i18n/pygettext.py --output-dir=l
|
||||||
|
|
||||||
echo "merging template with existing translations"
|
echo "merging template with existing translations"
|
||||||
msgmerge --update locale/fpdb-de_DE.po locale/fpdb-en_GB.pot
|
msgmerge --update locale/fpdb-de_DE.po locale/fpdb-en_GB.pot
|
||||||
|
msgmerge --update locale/fpdb-es_ES.po locale/fpdb-en_GB.pot
|
||||||
msgmerge --update locale/fpdb-fr_FR.po locale/fpdb-en_GB.pot
|
msgmerge --update locale/fpdb-fr_FR.po locale/fpdb-en_GB.pot
|
||||||
msgmerge --update locale/fpdb-hu_HU.po locale/fpdb-en_GB.pot
|
msgmerge --update locale/fpdb-hu_HU.po locale/fpdb-en_GB.pot
|
||||||
|
|
||||||
echo "compiling mo files"
|
echo "compiling mo files"
|
||||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/de/LC_MESSAGES/fpdb.mo locale/fpdb-de_DE.po
|
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/de/LC_MESSAGES/fpdb.mo locale/fpdb-de_DE.po
|
||||||
|
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/es/LC_MESSAGES/fpdb.mo locale/fpdb-es_ES.po
|
||||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/fr/LC_MESSAGES/fpdb.mo locale/fpdb-fr_FR.po
|
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/fr/LC_MESSAGES/fpdb.mo locale/fpdb-fr_FR.po
|
||||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/hu/LC_MESSAGES/fpdb.mo locale/fpdb-hu_HU.po
|
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/hu/LC_MESSAGES/fpdb.mo locale/fpdb-hu_HU.po
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
(1, 'USD', 'ring', 'draw', 'fivedraw', 'fl', 'h', 5, 10, 10, 20)
|
|
@ -0,0 +1,30 @@
|
||||||
|
{ 'boardcard1': 0,
|
||||||
|
'boardcard2': 0,
|
||||||
|
'boardcard3': 0,
|
||||||
|
'boardcard4': 0,
|
||||||
|
'boardcard5': 0,
|
||||||
|
'gametypeId': 1,
|
||||||
|
'importTime': None,
|
||||||
|
'maxSeats': 6,
|
||||||
|
'playersAtShowdown': 3,
|
||||||
|
'playersAtStreet1': 4,
|
||||||
|
'playersAtStreet2': 3,
|
||||||
|
'playersAtStreet3': 3,
|
||||||
|
'playersAtStreet4': 0,
|
||||||
|
'playersVpi': 4,
|
||||||
|
'seats': 5,
|
||||||
|
'showdownPot': 0,
|
||||||
|
'siteHandNo': u'25319060000',
|
||||||
|
'startTime': datetime.datetime(2010, 11, 6, 16, 4, tzinfo=pytz.utc),
|
||||||
|
'street0Raises': 1,
|
||||||
|
'street1Pot': 0,
|
||||||
|
'street1Raises': 2,
|
||||||
|
'street2Pot': 0,
|
||||||
|
'street2Raises': 0,
|
||||||
|
'street3Pot': 0,
|
||||||
|
'street3Raises': 0,
|
||||||
|
'street4Pot': 0,
|
||||||
|
'street4Raises': 0,
|
||||||
|
'tableName': u'Shady Oak',
|
||||||
|
'texture': None,
|
||||||
|
'tourneyId': None}
|
|
@ -0,0 +1,515 @@
|
||||||
|
{ u'Hero': { 'card1': 0,
|
||||||
|
'card2': 0,
|
||||||
|
'card3': 0,
|
||||||
|
'card4': 0,
|
||||||
|
'card5': 0,
|
||||||
|
'card6': 0,
|
||||||
|
'card7': 0,
|
||||||
|
'foldBbToStealChance': False,
|
||||||
|
'foldSbToStealChance': False,
|
||||||
|
'foldToOtherRaisedStreet0': False,
|
||||||
|
'foldToOtherRaisedStreet1': False,
|
||||||
|
'foldToOtherRaisedStreet2': False,
|
||||||
|
'foldToOtherRaisedStreet3': False,
|
||||||
|
'foldToOtherRaisedStreet4': False,
|
||||||
|
'foldToStreet1CBChance': False,
|
||||||
|
'foldToStreet1CBDone': False,
|
||||||
|
'foldToStreet2CBChance': False,
|
||||||
|
'foldToStreet2CBDone': False,
|
||||||
|
'foldToStreet3CBChance': False,
|
||||||
|
'foldToStreet3CBDone': False,
|
||||||
|
'foldToStreet4CBChance': False,
|
||||||
|
'foldToStreet4CBDone': False,
|
||||||
|
'foldedBbToSteal': False,
|
||||||
|
'foldedSbToSteal': False,
|
||||||
|
'other3BStreet0': False,
|
||||||
|
'other4BStreet0': False,
|
||||||
|
'otherRaisedStreet0': False,
|
||||||
|
'otherRaisedStreet1': False,
|
||||||
|
'otherRaisedStreet2': False,
|
||||||
|
'otherRaisedStreet3': False,
|
||||||
|
'otherRaisedStreet4': False,
|
||||||
|
'position': 2,
|
||||||
|
'raiseFirstInChance': True,
|
||||||
|
'raisedFirstIn': False,
|
||||||
|
'rake': 0,
|
||||||
|
'sawShowdown': False,
|
||||||
|
'seatNo': 5,
|
||||||
|
'sitout': False,
|
||||||
|
'startCards': 0,
|
||||||
|
'startCash': 200,
|
||||||
|
'street0Aggr': False,
|
||||||
|
'street0Bets': 0,
|
||||||
|
'street0Calls': 0,
|
||||||
|
'street0Raises': 0,
|
||||||
|
'street0VPI': False,
|
||||||
|
'street0_3BChance': False,
|
||||||
|
'street0_3BDone': False,
|
||||||
|
'street0_4BChance': False,
|
||||||
|
'street0_4BDone': False,
|
||||||
|
'street0_C4BChance': False,
|
||||||
|
'street0_C4BDone': False,
|
||||||
|
'street0_FoldTo3BChance': False,
|
||||||
|
'street0_FoldTo3BDone': False,
|
||||||
|
'street0_FoldTo4BChance': False,
|
||||||
|
'street0_FoldTo4BDone': False,
|
||||||
|
'street0_SqueezeChance': False,
|
||||||
|
'street0_SqueezeDone': False,
|
||||||
|
'street1Aggr': False,
|
||||||
|
'street1Bets': 0,
|
||||||
|
'street1CBChance': False,
|
||||||
|
'street1CBDone': False,
|
||||||
|
'street1Calls': 0,
|
||||||
|
'street1CheckCallRaiseChance': False,
|
||||||
|
'street1CheckCallRaiseDone': False,
|
||||||
|
'street1Raises': 0,
|
||||||
|
'street1Seen': False,
|
||||||
|
'street2Aggr': False,
|
||||||
|
'street2Bets': 0,
|
||||||
|
'street2CBChance': False,
|
||||||
|
'street2CBDone': False,
|
||||||
|
'street2Calls': 0,
|
||||||
|
'street2CheckCallRaiseChance': False,
|
||||||
|
'street2CheckCallRaiseDone': False,
|
||||||
|
'street2Raises': 0,
|
||||||
|
'street2Seen': False,
|
||||||
|
'street3Aggr': False,
|
||||||
|
'street3Bets': 0,
|
||||||
|
'street3CBChance': False,
|
||||||
|
'street3CBDone': False,
|
||||||
|
'street3Calls': 0,
|
||||||
|
'street3CheckCallRaiseChance': False,
|
||||||
|
'street3CheckCallRaiseDone': False,
|
||||||
|
'street3Raises': 0,
|
||||||
|
'street3Seen': False,
|
||||||
|
'street4Aggr': False,
|
||||||
|
'street4Bets': 0,
|
||||||
|
'street4CBChance': False,
|
||||||
|
'street4CBDone': False,
|
||||||
|
'street4Calls': 0,
|
||||||
|
'street4CheckCallRaiseChance': False,
|
||||||
|
'street4CheckCallRaiseDone': False,
|
||||||
|
'street4Raises': 0,
|
||||||
|
'street4Seen': False,
|
||||||
|
'success_Steal': False,
|
||||||
|
'totalProfit': 0,
|
||||||
|
'tourneyTypeId': None,
|
||||||
|
'tourneysPlayersIds': None,
|
||||||
|
'winnings': 0,
|
||||||
|
'wonAtSD': 0.0,
|
||||||
|
'wonWhenSeenStreet1': 0.0,
|
||||||
|
'wonWhenSeenStreet2': 0.0,
|
||||||
|
'wonWhenSeenStreet3': 0.0,
|
||||||
|
'wonWhenSeenStreet4': 0.0},
|
||||||
|
u'Player1': { 'card1': 0,
|
||||||
|
'card2': 0,
|
||||||
|
'card3': 0,
|
||||||
|
'card4': 0,
|
||||||
|
'card5': 0,
|
||||||
|
'card6': 0,
|
||||||
|
'card7': 0,
|
||||||
|
'foldBbToStealChance': False,
|
||||||
|
'foldSbToStealChance': False,
|
||||||
|
'foldToOtherRaisedStreet0': False,
|
||||||
|
'foldToOtherRaisedStreet1': False,
|
||||||
|
'foldToOtherRaisedStreet2': False,
|
||||||
|
'foldToOtherRaisedStreet3': False,
|
||||||
|
'foldToOtherRaisedStreet4': False,
|
||||||
|
'foldToStreet1CBChance': False,
|
||||||
|
'foldToStreet1CBDone': False,
|
||||||
|
'foldToStreet2CBChance': False,
|
||||||
|
'foldToStreet2CBDone': False,
|
||||||
|
'foldToStreet3CBChance': False,
|
||||||
|
'foldToStreet3CBDone': False,
|
||||||
|
'foldToStreet4CBChance': False,
|
||||||
|
'foldToStreet4CBDone': False,
|
||||||
|
'foldedBbToSteal': False,
|
||||||
|
'foldedSbToSteal': False,
|
||||||
|
'other3BStreet0': False,
|
||||||
|
'other4BStreet0': False,
|
||||||
|
'otherRaisedStreet0': False,
|
||||||
|
'otherRaisedStreet1': True,
|
||||||
|
'otherRaisedStreet2': False,
|
||||||
|
'otherRaisedStreet3': False,
|
||||||
|
'otherRaisedStreet4': False,
|
||||||
|
'position': 1,
|
||||||
|
'raiseFirstInChance': True,
|
||||||
|
'raisedFirstIn': True,
|
||||||
|
'rake': 10,
|
||||||
|
'sawShowdown': True,
|
||||||
|
'seatNo': 1,
|
||||||
|
'sitout': False,
|
||||||
|
'startCards': 0,
|
||||||
|
'startCash': 273,
|
||||||
|
'street0Aggr': True,
|
||||||
|
'street0Bets': 0,
|
||||||
|
'street0Calls': 0,
|
||||||
|
'street0Raises': 0,
|
||||||
|
'street0VPI': True,
|
||||||
|
'street0_3BChance': False,
|
||||||
|
'street0_3BDone': False,
|
||||||
|
'street0_4BChance': False,
|
||||||
|
'street0_4BDone': False,
|
||||||
|
'street0_C4BChance': False,
|
||||||
|
'street0_C4BDone': False,
|
||||||
|
'street0_FoldTo3BChance': False,
|
||||||
|
'street0_FoldTo3BDone': False,
|
||||||
|
'street0_FoldTo4BChance': False,
|
||||||
|
'street0_FoldTo4BDone': False,
|
||||||
|
'street0_SqueezeChance': False,
|
||||||
|
'street0_SqueezeDone': False,
|
||||||
|
'street1Aggr': True,
|
||||||
|
'street1Bets': 0,
|
||||||
|
'street1CBChance': False,
|
||||||
|
'street1CBDone': False,
|
||||||
|
'street1Calls': 0,
|
||||||
|
'street1CheckCallRaiseChance': False,
|
||||||
|
'street1CheckCallRaiseDone': False,
|
||||||
|
'street1Raises': 0,
|
||||||
|
'street1Seen': True,
|
||||||
|
'street2Aggr': False,
|
||||||
|
'street2Bets': 0,
|
||||||
|
'street2CBChance': False,
|
||||||
|
'street2CBDone': False,
|
||||||
|
'street2Calls': 0,
|
||||||
|
'street2CheckCallRaiseChance': False,
|
||||||
|
'street2CheckCallRaiseDone': False,
|
||||||
|
'street2Raises': 0,
|
||||||
|
'street2Seen': True,
|
||||||
|
'street3Aggr': False,
|
||||||
|
'street3Bets': 0,
|
||||||
|
'street3CBChance': False,
|
||||||
|
'street3CBDone': False,
|
||||||
|
'street3Calls': 0,
|
||||||
|
'street3CheckCallRaiseChance': False,
|
||||||
|
'street3CheckCallRaiseDone': False,
|
||||||
|
'street3Raises': 0,
|
||||||
|
'street3Seen': True,
|
||||||
|
'street4Aggr': False,
|
||||||
|
'street4Bets': 0,
|
||||||
|
'street4CBChance': False,
|
||||||
|
'street4CBDone': False,
|
||||||
|
'street4Calls': 0,
|
||||||
|
'street4CheckCallRaiseChance': False,
|
||||||
|
'street4CheckCallRaiseDone': False,
|
||||||
|
'street4Raises': 0,
|
||||||
|
'street4Seen': False,
|
||||||
|
'success_Steal': False,
|
||||||
|
'totalProfit': 130,
|
||||||
|
'tourneyTypeId': None,
|
||||||
|
'tourneysPlayersIds': None,
|
||||||
|
'winnings': 190,
|
||||||
|
'wonAtSD': 1.0,
|
||||||
|
'wonWhenSeenStreet1': 1.0,
|
||||||
|
'wonWhenSeenStreet2': 1.0,
|
||||||
|
'wonWhenSeenStreet3': 1.0,
|
||||||
|
'wonWhenSeenStreet4': 0.0},
|
||||||
|
u'Player2': { 'card1': 0,
|
||||||
|
'card2': 0,
|
||||||
|
'card3': 0,
|
||||||
|
'card4': 0,
|
||||||
|
'card5': 0,
|
||||||
|
'card6': 0,
|
||||||
|
'card7': 0,
|
||||||
|
'foldBbToStealChance': False,
|
||||||
|
'foldSbToStealChance': False,
|
||||||
|
'foldToOtherRaisedStreet0': False,
|
||||||
|
'foldToOtherRaisedStreet1': False,
|
||||||
|
'foldToOtherRaisedStreet2': False,
|
||||||
|
'foldToOtherRaisedStreet3': False,
|
||||||
|
'foldToOtherRaisedStreet4': False,
|
||||||
|
'foldToStreet1CBChance': False,
|
||||||
|
'foldToStreet1CBDone': False,
|
||||||
|
'foldToStreet2CBChance': False,
|
||||||
|
'foldToStreet2CBDone': False,
|
||||||
|
'foldToStreet3CBChance': False,
|
||||||
|
'foldToStreet3CBDone': False,
|
||||||
|
'foldToStreet4CBChance': False,
|
||||||
|
'foldToStreet4CBDone': False,
|
||||||
|
'foldedBbToSteal': False,
|
||||||
|
'foldedSbToSteal': False,
|
||||||
|
'other3BStreet0': False,
|
||||||
|
'other4BStreet0': False,
|
||||||
|
'otherRaisedStreet0': False,
|
||||||
|
'otherRaisedStreet1': True,
|
||||||
|
'otherRaisedStreet2': False,
|
||||||
|
'otherRaisedStreet3': False,
|
||||||
|
'otherRaisedStreet4': False,
|
||||||
|
'position': 0,
|
||||||
|
'raiseFirstInChance': False,
|
||||||
|
'raisedFirstIn': False,
|
||||||
|
'rake': 0,
|
||||||
|
'sawShowdown': True,
|
||||||
|
'seatNo': 2,
|
||||||
|
'sitout': False,
|
||||||
|
'startCards': 0,
|
||||||
|
'startCash': 404,
|
||||||
|
'street0Aggr': False,
|
||||||
|
'street0Bets': 0,
|
||||||
|
'street0Calls': 1,
|
||||||
|
'street0Raises': 0,
|
||||||
|
'street0VPI': True,
|
||||||
|
'street0_3BChance': True,
|
||||||
|
'street0_3BDone': False,
|
||||||
|
'street0_4BChance': False,
|
||||||
|
'street0_4BDone': False,
|
||||||
|
'street0_C4BChance': False,
|
||||||
|
'street0_C4BDone': False,
|
||||||
|
'street0_FoldTo3BChance': False,
|
||||||
|
'street0_FoldTo3BDone': False,
|
||||||
|
'street0_FoldTo4BChance': False,
|
||||||
|
'street0_FoldTo4BDone': False,
|
||||||
|
'street0_SqueezeChance': 0,
|
||||||
|
'street0_SqueezeDone': False,
|
||||||
|
'street1Aggr': False,
|
||||||
|
'street1Bets': 0,
|
||||||
|
'street1CBChance': False,
|
||||||
|
'street1CBDone': False,
|
||||||
|
'street1Calls': 1,
|
||||||
|
'street1CheckCallRaiseChance': False,
|
||||||
|
'street1CheckCallRaiseDone': False,
|
||||||
|
'street1Raises': 0,
|
||||||
|
'street1Seen': True,
|
||||||
|
'street2Aggr': False,
|
||||||
|
'street2Bets': 0,
|
||||||
|
'street2CBChance': False,
|
||||||
|
'street2CBDone': False,
|
||||||
|
'street2Calls': 0,
|
||||||
|
'street2CheckCallRaiseChance': False,
|
||||||
|
'street2CheckCallRaiseDone': False,
|
||||||
|
'street2Raises': 0,
|
||||||
|
'street2Seen': True,
|
||||||
|
'street3Aggr': False,
|
||||||
|
'street3Bets': 0,
|
||||||
|
'street3CBChance': False,
|
||||||
|
'street3CBDone': False,
|
||||||
|
'street3Calls': 0,
|
||||||
|
'street3CheckCallRaiseChance': False,
|
||||||
|
'street3CheckCallRaiseDone': False,
|
||||||
|
'street3Raises': 0,
|
||||||
|
'street3Seen': True,
|
||||||
|
'street4Aggr': False,
|
||||||
|
'street4Bets': 0,
|
||||||
|
'street4CBChance': False,
|
||||||
|
'street4CBDone': False,
|
||||||
|
'street4Calls': 0,
|
||||||
|
'street4CheckCallRaiseChance': False,
|
||||||
|
'street4CheckCallRaiseDone': False,
|
||||||
|
'street4Raises': 0,
|
||||||
|
'street4Seen': False,
|
||||||
|
'success_Steal': False,
|
||||||
|
'totalProfit': -60,
|
||||||
|
'tourneyTypeId': None,
|
||||||
|
'tourneysPlayersIds': None,
|
||||||
|
'winnings': 0,
|
||||||
|
'wonAtSD': 0.0,
|
||||||
|
'wonWhenSeenStreet1': 0.0,
|
||||||
|
'wonWhenSeenStreet2': 0.0,
|
||||||
|
'wonWhenSeenStreet3': 0.0,
|
||||||
|
'wonWhenSeenStreet4': 0.0},
|
||||||
|
u'Player3': { 'card1': 0,
|
||||||
|
'card2': 0,
|
||||||
|
'card3': 0,
|
||||||
|
'card4': 0,
|
||||||
|
'card5': 0,
|
||||||
|
'card6': 0,
|
||||||
|
'card7': 0,
|
||||||
|
'foldBbToStealChance': False,
|
||||||
|
'foldSbToStealChance': False,
|
||||||
|
'foldToOtherRaisedStreet0': False,
|
||||||
|
'foldToOtherRaisedStreet1': False,
|
||||||
|
'foldToOtherRaisedStreet2': False,
|
||||||
|
'foldToOtherRaisedStreet3': False,
|
||||||
|
'foldToOtherRaisedStreet4': False,
|
||||||
|
'foldToStreet1CBChance': False,
|
||||||
|
'foldToStreet1CBDone': False,
|
||||||
|
'foldToStreet2CBChance': False,
|
||||||
|
'foldToStreet2CBDone': False,
|
||||||
|
'foldToStreet3CBChance': False,
|
||||||
|
'foldToStreet3CBDone': False,
|
||||||
|
'foldToStreet4CBChance': False,
|
||||||
|
'foldToStreet4CBDone': False,
|
||||||
|
'foldedBbToSteal': False,
|
||||||
|
'foldedSbToSteal': False,
|
||||||
|
'other3BStreet0': False,
|
||||||
|
'other4BStreet0': False,
|
||||||
|
'otherRaisedStreet0': False,
|
||||||
|
'otherRaisedStreet1': True,
|
||||||
|
'otherRaisedStreet2': False,
|
||||||
|
'otherRaisedStreet3': False,
|
||||||
|
'otherRaisedStreet4': False,
|
||||||
|
'position': 'S',
|
||||||
|
'raiseFirstInChance': False,
|
||||||
|
'raisedFirstIn': False,
|
||||||
|
'rake': 0,
|
||||||
|
'sawShowdown': True,
|
||||||
|
'seatNo': 3,
|
||||||
|
'sitout': False,
|
||||||
|
'startCards': 0,
|
||||||
|
'startCash': 188,
|
||||||
|
'street0Aggr': False,
|
||||||
|
'street0Bets': 0,
|
||||||
|
'street0Calls': 1,
|
||||||
|
'street0Raises': 0,
|
||||||
|
'street0VPI': True,
|
||||||
|
'street0_3BChance': True,
|
||||||
|
'street0_3BDone': False,
|
||||||
|
'street0_4BChance': False,
|
||||||
|
'street0_4BDone': False,
|
||||||
|
'street0_C4BChance': False,
|
||||||
|
'street0_C4BDone': False,
|
||||||
|
'street0_FoldTo3BChance': False,
|
||||||
|
'street0_FoldTo3BDone': False,
|
||||||
|
'street0_FoldTo4BChance': False,
|
||||||
|
'street0_FoldTo4BDone': False,
|
||||||
|
'street0_SqueezeChance': 1,
|
||||||
|
'street0_SqueezeDone': False,
|
||||||
|
'street1Aggr': True,
|
||||||
|
'street1Bets': 1,
|
||||||
|
'street1CBChance': False,
|
||||||
|
'street1CBDone': False,
|
||||||
|
'street1Calls': 1,
|
||||||
|
'street1CheckCallRaiseChance': False,
|
||||||
|
'street1CheckCallRaiseDone': False,
|
||||||
|
'street1Raises': 0,
|
||||||
|
'street1Seen': True,
|
||||||
|
'street2Aggr': False,
|
||||||
|
'street2Bets': 0,
|
||||||
|
'street2CBChance': False,
|
||||||
|
'street2CBDone': False,
|
||||||
|
'street2Calls': 0,
|
||||||
|
'street2CheckCallRaiseChance': False,
|
||||||
|
'street2CheckCallRaiseDone': False,
|
||||||
|
'street2Raises': 0,
|
||||||
|
'street2Seen': True,
|
||||||
|
'street3Aggr': False,
|
||||||
|
'street3Bets': 0,
|
||||||
|
'street3CBChance': False,
|
||||||
|
'street3CBDone': False,
|
||||||
|
'street3Calls': 0,
|
||||||
|
'street3CheckCallRaiseChance': False,
|
||||||
|
'street3CheckCallRaiseDone': False,
|
||||||
|
'street3Raises': 0,
|
||||||
|
'street3Seen': True,
|
||||||
|
'street4Aggr': False,
|
||||||
|
'street4Bets': 0,
|
||||||
|
'street4CBChance': False,
|
||||||
|
'street4CBDone': False,
|
||||||
|
'street4Calls': 0,
|
||||||
|
'street4CheckCallRaiseChance': False,
|
||||||
|
'street4CheckCallRaiseDone': False,
|
||||||
|
'street4Raises': 0,
|
||||||
|
'street4Seen': False,
|
||||||
|
'success_Steal': False,
|
||||||
|
'totalProfit': -60,
|
||||||
|
'tourneyTypeId': None,
|
||||||
|
'tourneysPlayersIds': None,
|
||||||
|
'winnings': 0,
|
||||||
|
'wonAtSD': 0.0,
|
||||||
|
'wonWhenSeenStreet1': 0.0,
|
||||||
|
'wonWhenSeenStreet2': 0.0,
|
||||||
|
'wonWhenSeenStreet3': 0.0,
|
||||||
|
'wonWhenSeenStreet4': 0.0},
|
||||||
|
u'Player4': { 'card1': 0,
|
||||||
|
'card2': 0,
|
||||||
|
'card3': 0,
|
||||||
|
'card4': 0,
|
||||||
|
'card5': 0,
|
||||||
|
'card6': 0,
|
||||||
|
'card7': 0,
|
||||||
|
'foldBbToStealChance': False,
|
||||||
|
'foldSbToStealChance': False,
|
||||||
|
'foldToOtherRaisedStreet0': False,
|
||||||
|
'foldToOtherRaisedStreet1': True,
|
||||||
|
'foldToOtherRaisedStreet2': False,
|
||||||
|
'foldToOtherRaisedStreet3': False,
|
||||||
|
'foldToOtherRaisedStreet4': False,
|
||||||
|
'foldToStreet1CBChance': False,
|
||||||
|
'foldToStreet1CBDone': False,
|
||||||
|
'foldToStreet2CBChance': False,
|
||||||
|
'foldToStreet2CBDone': False,
|
||||||
|
'foldToStreet3CBChance': False,
|
||||||
|
'foldToStreet3CBDone': False,
|
||||||
|
'foldToStreet4CBChance': False,
|
||||||
|
'foldToStreet4CBDone': False,
|
||||||
|
'foldedBbToSteal': False,
|
||||||
|
'foldedSbToSteal': False,
|
||||||
|
'other3BStreet0': False,
|
||||||
|
'other4BStreet0': False,
|
||||||
|
'otherRaisedStreet0': False,
|
||||||
|
'otherRaisedStreet1': True,
|
||||||
|
'otherRaisedStreet2': False,
|
||||||
|
'otherRaisedStreet3': False,
|
||||||
|
'otherRaisedStreet4': False,
|
||||||
|
'position': 'B',
|
||||||
|
'raiseFirstInChance': False,
|
||||||
|
'raisedFirstIn': False,
|
||||||
|
'rake': 0,
|
||||||
|
'sawShowdown': False,
|
||||||
|
'seatNo': 4,
|
||||||
|
'sitout': False,
|
||||||
|
'startCards': 0,
|
||||||
|
'startCash': 200,
|
||||||
|
'street0Aggr': False,
|
||||||
|
'street0Bets': 0,
|
||||||
|
'street0Calls': 1,
|
||||||
|
'street0Raises': 0,
|
||||||
|
'street0VPI': True,
|
||||||
|
'street0_3BChance': True,
|
||||||
|
'street0_3BDone': False,
|
||||||
|
'street0_4BChance': False,
|
||||||
|
'street0_4BDone': False,
|
||||||
|
'street0_C4BChance': False,
|
||||||
|
'street0_C4BDone': False,
|
||||||
|
'street0_FoldTo3BChance': False,
|
||||||
|
'street0_FoldTo3BDone': False,
|
||||||
|
'street0_FoldTo4BChance': False,
|
||||||
|
'street0_FoldTo4BDone': False,
|
||||||
|
'street0_SqueezeChance': 1,
|
||||||
|
'street0_SqueezeDone': False,
|
||||||
|
'street1Aggr': False,
|
||||||
|
'street1Bets': 0,
|
||||||
|
'street1CBChance': False,
|
||||||
|
'street1CBDone': False,
|
||||||
|
'street1Calls': 0,
|
||||||
|
'street1CheckCallRaiseChance': False,
|
||||||
|
'street1CheckCallRaiseDone': False,
|
||||||
|
'street1Raises': 0,
|
||||||
|
'street1Seen': True,
|
||||||
|
'street2Aggr': False,
|
||||||
|
'street2Bets': 0,
|
||||||
|
'street2CBChance': False,
|
||||||
|
'street2CBDone': False,
|
||||||
|
'street2Calls': 0,
|
||||||
|
'street2CheckCallRaiseChance': False,
|
||||||
|
'street2CheckCallRaiseDone': False,
|
||||||
|
'street2Raises': 0,
|
||||||
|
'street2Seen': False,
|
||||||
|
'street3Aggr': False,
|
||||||
|
'street3Bets': 0,
|
||||||
|
'street3CBChance': False,
|
||||||
|
'street3CBDone': False,
|
||||||
|
'street3Calls': 0,
|
||||||
|
'street3CheckCallRaiseChance': False,
|
||||||
|
'street3CheckCallRaiseDone': False,
|
||||||
|
'street3Raises': 0,
|
||||||
|
'street3Seen': False,
|
||||||
|
'street4Aggr': False,
|
||||||
|
'street4Bets': 0,
|
||||||
|
'street4CBChance': False,
|
||||||
|
'street4CBDone': False,
|
||||||
|
'street4Calls': 0,
|
||||||
|
'street4CheckCallRaiseChance': False,
|
||||||
|
'street4CheckCallRaiseDone': False,
|
||||||
|
'street4Raises': 0,
|
||||||
|
'street4Seen': False,
|
||||||
|
'success_Steal': False,
|
||||||
|
'totalProfit': -20,
|
||||||
|
'tourneyTypeId': None,
|
||||||
|
'tourneysPlayersIds': None,
|
||||||
|
'winnings': 0,
|
||||||
|
'wonAtSD': 0.0,
|
||||||
|
'wonWhenSeenStreet1': 0.0,
|
||||||
|
'wonWhenSeenStreet2': 0.0,
|
||||||
|
'wonWhenSeenStreet3': 0.0,
|
||||||
|
'wonWhenSeenStreet4': 0.0}}
|
Loading…
Reference in New Issue
Block a user