git6 - it displays (in brackets behind the percentage) how many hands AF/FF/AT/FT/AR/FR is based on
commented out some prints split off a "before alpha release" section off the known-bugs list
This commit is contained in:
parent
02d928fb1e
commit
b377fd08c6
|
@ -1,40 +1,40 @@
|
|||
todolist (db=database, imp=importer, tv=tableviewer)
|
||||
|
||||
before beta
|
||||
before alpha
|
||||
===========
|
||||
add back postflop and stud functionality to hud and import-HudData
|
||||
take into account count of opportunities for 3B/4B PF.
|
||||
change save_to_db into one method and probably move into parse_logic
|
||||
change action_no to be total for this street rather than just for one player
|
||||
properly read 3B/4B percentage
|
||||
fix load profile
|
||||
Any comment or print with "todo" in it in the sourcecode except what is marked todo in the menu
|
||||
find out if i can SQL for the rowcount, rather than select a field and then just take the rowcount. this might bring a significant performance improvement
|
||||
make a quick benchmark of mysql and postgresql: import of my whole db, some tableviewer refreshes with and without updated file
|
||||
fix tv browse button size
|
||||
tourney bug: sometimes truncuates position on store -> possibly indicates much bigger problem
|
||||
tourney bug: fails recognisePlayer
|
||||
tourney bug: fails with tuple error in recogniseplayerid
|
||||
verify at least 2 or 3 sng hands
|
||||
db+imp+tv WtSD (went to showdown)
|
||||
db+imp+tv W$SD (won $ when seeing showdown - partial win counts partially here)
|
||||
db+imp+tv WwSF (Won when seen flop - partial taken into account)
|
||||
db+imp+tv steal blind from btn, co, lmp. fold SB/BB/BI to steal
|
||||
remove unused flags fields
|
||||
update install instructions
|
||||
setup wizard
|
||||
change action_no to be total for this street rather than just for one player
|
||||
config wizard
|
||||
catch index error, type error, file not found error
|
||||
add field for if a game was mixed
|
||||
update install instructions
|
||||
implement error file in importer
|
||||
remove mysql/myisam support.
|
||||
|
||||
|
||||
before beta
|
||||
===========
|
||||
make bulk importer display a grand total in the GUI
|
||||
change save_to_db into one method and probably move into parse_logic
|
||||
Any comment or print with "todo" in it in the sourcecode except what is marked todo in the menu
|
||||
make a quick benchmark of mysql and postgresql: import of my whole db, some tableviewer refreshes with and without updated file
|
||||
db+imp+tv steal blind from btn, co, lmp. fold SB/BB/BI to steal
|
||||
Make tab and enter work as sensible in GUIs and implement Ctrl+Q, Ctrl+X and Alt+F4 for close.
|
||||
use profile file for bulk import and table viewer settings and pathes
|
||||
fold% also counts rounds where nobody raised
|
||||
handle errors properly, in particular wrt to SQL rollback.
|
||||
remove mysql/myisam support.
|
||||
check that we read sitout correctly in: Full Tilt Poker Game #6150325318: Table Bogside
|
||||
setup database, database-user and permission from GUI.
|
||||
update prepare-git to check for license header and copyright.
|
||||
|
||||
change/expand print_hand to cover everything new and update verified hands' .found file
|
||||
verify at least 2 or 3 sng hands
|
||||
|
||||
no rush but before 1.0RC
|
||||
========================
|
||||
|
@ -42,13 +42,13 @@ make tv work with ftp e.g. by making importer return site as well (easy)
|
|||
make the gui display errors
|
||||
log file
|
||||
move directory import code from gui to backend
|
||||
convert fpdb_import to not require passing "self"
|
||||
convert fpdb_import to not require passing "self", generally clean the parameter passing
|
||||
(tedious general stability improvement for unusual playernames): change all the str.find so they dont accidentially count player names containing the searched phrase. e.g. with rfind.
|
||||
Doesn't handle Daylight Saving Time (I don't think at least)
|
||||
Need to store if someone goes all-in, particularly for better NL/PL support.
|
||||
verify at least 3 hands per category per site per limit_type (when cap then do 2 normal and one 1 capped) incl tv display
|
||||
put lines in tv to make it easier to read
|
||||
speed up so that refresh takes no more than 10 seks on my P3M-800
|
||||
speed up so that refresh after importing my whole DB takes no more than 10 seks on my P3M-800 (a quick run on git5+ indicates this is ok now), or 5 with remote DB
|
||||
select range of stakes and sng/mtt values and types for tv
|
||||
change "for i" to more sensible var name instead of i
|
||||
change stud street storage from 3-7 to 0-4 throughout
|
||||
|
|
|
@ -1208,6 +1208,7 @@ def store_hands_players_stud_tourney(cursor, hands_id, player_ids, start_cashes,
|
|||
|
||||
def calculateHudImport(player_ids, category, action_types):
|
||||
"""calculates data for the HUD during import. IMPORTANT: if you change this method make sure to also change the following storage method and table_viewer.prepare_data if necessary"""
|
||||
#setup subarrays of the result dictionary.
|
||||
VPIP=[]
|
||||
PFR=[]
|
||||
PFOtherRaisedBefore=[]
|
||||
|
@ -1226,6 +1227,7 @@ def calculateHudImport(player_ids, category, action_types):
|
|||
otherRaisedRiver=[]
|
||||
otherRaisedRiverFold=[]
|
||||
for player in range (len(player_ids)):
|
||||
#set default values
|
||||
myVPIP=False
|
||||
myPFR=False
|
||||
myPFOtherRaisedBefore=False #todo
|
||||
|
@ -1244,19 +1246,36 @@ def calculateHudImport(player_ids, category, action_types):
|
|||
myOtherRaisedRiver=False #todo
|
||||
myOtherRaisedRiverFold=False #todo
|
||||
|
||||
#calculate preflop values
|
||||
street=0
|
||||
pfRaiseCount=0
|
||||
heroPfRaiseCount=0
|
||||
for count in range (len(action_types[street][player])):#finally individual actions
|
||||
currentAction=action_types[street][player][count]
|
||||
if currentAction!="bet":
|
||||
pfRaiseCount+=1
|
||||
heroPfRaiseCount+=1
|
||||
if (currentAction=="bet" or currentAction=="call"):
|
||||
myVPIP=True
|
||||
if pfRaiseCount>=1:
|
||||
if heroPfRaiseCount>=1:
|
||||
myPFR=True
|
||||
if pfRaiseCount>=2:#todo: this doesnt catch all 3B4B
|
||||
if heroPfRaiseCount>=2:#todo: this doesnt catch all 3B4B
|
||||
myPF3B4B=True
|
||||
|
||||
#calculate saw* values
|
||||
if (len(action_types[1][player])>0):
|
||||
mySawFlop=True
|
||||
if (len(action_types[2][player])>0):
|
||||
mySawTurn=True
|
||||
if (len(action_types[3][player])>0):
|
||||
mySawRiver=True
|
||||
for count in range (len(action_types[3][player])):
|
||||
if action_types[3][player][count]=="fold":
|
||||
mySawShowdown=True
|
||||
|
||||
#print "todo: finish boolean recognition"
|
||||
|
||||
|
||||
|
||||
#add each value to the appropriate array
|
||||
VPIP.append(myVPIP)
|
||||
PFR.append(myPFR)
|
||||
PFOtherRaisedBefore.append(myPFOtherRaisedBefore)
|
||||
|
@ -1275,6 +1294,7 @@ def calculateHudImport(player_ids, category, action_types):
|
|||
otherRaisedRiver.append(myOtherRaisedRiver)
|
||||
otherRaisedRiverFold.append(myOtherRaisedRiverFold)
|
||||
|
||||
#add each array to the to-be-returned dictionary
|
||||
result={'VPIP':VPIP}
|
||||
result['PFR']=PFR
|
||||
result['PFOtherRaisedBefore']=PFOtherRaisedBefore
|
||||
|
@ -1300,14 +1320,14 @@ def storeHudData(cursor, category, gametypeId, playerIds, hudImportData):
|
|||
for player in range (len(playerIds)):
|
||||
cursor.execute("SELECT * FROM HudDataHoldemOmaha WHERE gametypeId=%s AND playerId=%s AND activeSeats=%s", (gametypeId, playerIds[player], len(playerIds)))
|
||||
row=cursor.fetchone()
|
||||
print "gametypeId:", gametypeId, "playerIds[player]",playerIds[player], "len(playerIds):",len(playerIds), "row:",row
|
||||
#print "gametypeId:", gametypeId, "playerIds[player]",playerIds[player], "len(playerIds):",len(playerIds), "row:",row
|
||||
|
||||
try: len(row)
|
||||
except TypeError:
|
||||
row=[]
|
||||
|
||||
if (len(row)==0):
|
||||
print "new huddata row"
|
||||
#print "new huddata row"
|
||||
doInsert=True
|
||||
row=[]
|
||||
row.append(0)#blank for id
|
||||
|
@ -1344,18 +1364,18 @@ def storeHudData(cursor, category, gametypeId, playerIds, hudImportData):
|
|||
if hudImportData['otherRaisedRiverFold'][player]: row[21]+=1
|
||||
|
||||
if doInsert:
|
||||
print "playerid before insert:",row[2]
|
||||
#print "playerid before insert:",row[2]
|
||||
cursor.execute("""INSERT INTO HudDataHoldemOmaha
|
||||
(gametypeId, playerId, activeSeats, HDs, VPIP, PFR, PFOtherRaisedBefore, PF3B4B, sawFlop, sawTurn, sawRiver, sawShowdown, raisedFlop, raisedTurn, raisedRiver, otherRaisedFlop, otherRaisedFlopFold, otherRaisedTurn, otherRaisedTurnFold, otherRaisedRiver, otherRaisedRiverFold)
|
||||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""", (row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19], row[20], row[21]))
|
||||
else:
|
||||
print "storing updated hud data line"
|
||||
#print "storing updated hud data line"
|
||||
cursor.execute("""UPDATE HudDataHoldemOmaha
|
||||
SET HDs=%s, VPIP=%s, PFR=%s, PFOtherRaisedBefore=%s, PF3B4B=%s, sawFlop=%s, sawTurn=%s, sawRiver=%s, sawShowdown=%s, raisedFlop=%s, raisedTurn=%s, raisedRiver=%s, otherRaisedFlop=%s, otherRaisedFlopFold=%s, otherRaisedTurn=%s, otherRaisedTurnFold=%s, otherRaisedRiver=%s, otherRaisedRiverFold=%s
|
||||
WHERE gametypeId=%s AND playerId=%s AND activeSeats=%s""", (row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19], row[20], row[21], row[1], row[2], row[3]))
|
||||
else:
|
||||
raise FpdbError("todo")
|
||||
#end def store_hands_players_flags(cursor, hands_players_ids, hands_players_flags)
|
||||
#end def storeHudData
|
||||
|
||||
def store_tourneys(cursor, site_id, site_tourney_no, buyin, fee, knockout, entries, prizepool, start_time):
|
||||
cursor.execute("SELECT id FROM tourneys WHERE site_tourney_no=%s AND site_id=%s", (site_tourney_no, site_id))
|
||||
|
|
|
@ -77,13 +77,13 @@ class table_viewer (threading.Thread):
|
|||
tmp.append(str(row[4]))#Hands
|
||||
tmp.append(self.hudDivide(row[5],row[4])) #VPIP
|
||||
tmp.append(self.hudDivide(row[6],row[4])) #PFR
|
||||
tmp.append(self.hudDivide(row[8],row[4])) #PF3B4B
|
||||
tmp.append(self.hudDivide(row[13],row[9])) #AF
|
||||
tmp.append(self.hudDivide(row[16],row[17])) #FF
|
||||
tmp.append(self.hudDivide(row[14],row[10])) #AT
|
||||
tmp.append(self.hudDivide(row[18],row[19])) #FT
|
||||
tmp.append(self.hudDivide(row[15],row[11])) #AR
|
||||
tmp.append(self.hudDivide(row[20],row[21])) #FR
|
||||
tmp.append(self.hudDivide(row[8],row[7])) #PF3B4B
|
||||
tmp.append(self.hudDivide(row[13],row[9])+" ("+str(row[9])+")") #AF
|
||||
tmp.append(self.hudDivide(row[17],row[16])+" ("+str(row[16])+")") #FF
|
||||
tmp.append(self.hudDivide(row[14],row[10])+" ("+str(row[10])+")") #AT
|
||||
tmp.append(self.hudDivide(row[19],row[18])+" ("+str(row[18])+")") #FT
|
||||
tmp.append(self.hudDivide(row[15],row[11])+" ("+str(row[11])+")") #AR
|
||||
tmp.append(self.hudDivide(row[21],row[20])+" ("+str(row[20])+")") #FR
|
||||
|
||||
arr.append(tmp)
|
||||
return arr
|
||||
|
|
Loading…
Reference in New Issue
Block a user