Merge branch 'master' of git://git.assembla.com/fpdb
Conflicts: pyfpdb/DerivedStats.py
This commit is contained in:
commit
37fcca55b9
|
@ -38,7 +38,12 @@ import sys
|
||||||
import traceback
|
import traceback
|
||||||
from datetime import datetime, date, time, timedelta
|
from datetime import datetime, date, time, timedelta
|
||||||
from time import time, strftime, sleep
|
from time import time, strftime, sleep
|
||||||
from decimal import Decimal
|
|
||||||
|
try:
|
||||||
|
from cdecimal import *
|
||||||
|
except ImportError:
|
||||||
|
from decimal import *
|
||||||
|
|
||||||
import string
|
import string
|
||||||
import re
|
import re
|
||||||
import Queue
|
import Queue
|
||||||
|
@ -454,7 +459,7 @@ class Database:
|
||||||
self.connection = sqlite3.connect(self.db_path, detect_types=sqlite3.PARSE_DECLTYPES )
|
self.connection = sqlite3.connect(self.db_path, detect_types=sqlite3.PARSE_DECLTYPES )
|
||||||
self.__connected = True
|
self.__connected = True
|
||||||
sqlite3.register_converter("bool", lambda x: bool(int(x)))
|
sqlite3.register_converter("bool", lambda x: bool(int(x)))
|
||||||
sqlite3.register_adapter(bool, lambda x: "1" if x else "0")
|
sqlite3.register_adapter(bool, lambda x: 1 if x else 0)
|
||||||
self.connection.create_function("floor", 1, math.floor)
|
self.connection.create_function("floor", 1, math.floor)
|
||||||
tmp = sqlitemath()
|
tmp = sqlitemath()
|
||||||
self.connection.create_function("mod", 2, tmp.mod)
|
self.connection.create_function("mod", 2, tmp.mod)
|
||||||
|
|
|
@ -30,73 +30,78 @@ class DerivedStats():
|
||||||
self.hands = {}
|
self.hands = {}
|
||||||
self.handsplayers = {}
|
self.handsplayers = {}
|
||||||
self.handsactions = {}
|
self.handsactions = {}
|
||||||
|
self._initStats = DerivedStats._buildStatsInitializer()
|
||||||
|
|
||||||
def getStats(self, hand):
|
@staticmethod
|
||||||
|
def _buildStatsInitializer():
|
||||||
for player in hand.players:
|
init = {}
|
||||||
self.handsplayers[player[1]] = {}
|
|
||||||
#Init vars that may not be used, but still need to be inserted.
|
#Init vars that may not be used, but still need to be inserted.
|
||||||
# All stud street4 need this when importing holdem
|
# All stud street4 need this when importing holdem
|
||||||
self.handsplayers[player[1]]['winnings'] = 0
|
init['winnings'] = 0
|
||||||
self.handsplayers[player[1]]['rake'] = 0
|
init['rake'] = 0
|
||||||
self.handsplayers[player[1]]['totalProfit'] = 0
|
init['totalProfit'] = 0
|
||||||
self.handsplayers[player[1]]['street4Aggr'] = False
|
init['street4Aggr'] = False
|
||||||
self.handsplayers[player[1]]['wonWhenSeenStreet1'] = 0.0
|
init['wonWhenSeenStreet1'] = 0.0
|
||||||
self.handsplayers[player[1]]['sawShowdown'] = False
|
init['sawShowdown'] = False
|
||||||
self.handsplayers[player[1]]['wonAtSD'] = 0.0
|
init['wonAtSD'] = 0.0
|
||||||
self.handsplayers[player[1]]['startCards'] = 0
|
init['startCards'] = 0
|
||||||
self.handsplayers[player[1]]['position'] = 2
|
init['position'] = 2
|
||||||
self.handsplayers[player[1]]['street0_3BChance'] = False
|
init['street0_3BChance'] = False
|
||||||
self.handsplayers[player[1]]['street0_3BDone'] = False
|
init['street0_3BDone'] = False
|
||||||
self.handsplayers[player[1]]['street0_4BChance'] = False
|
init['street0_4BChance'] = False
|
||||||
self.handsplayers[player[1]]['street0_4BDone'] = False
|
init['street0_4BDone'] = False
|
||||||
self.handsplayers[player[1]]['street0_C4BChance'] = False
|
init['street0_C4BChance'] = False
|
||||||
self.handsplayers[player[1]]['street0_C4BDone'] = False
|
init['street0_C4BDone'] = False
|
||||||
self.handsplayers[player[1]]['street0_FoldTo3BChance']= False
|
init['street0_FoldTo3BChance']= False
|
||||||
self.handsplayers[player[1]]['street0_FoldTo3BDone']= False
|
init['street0_FoldTo3BDone']= False
|
||||||
self.handsplayers[player[1]]['street0_FoldTo4BChance']= False
|
init['street0_FoldTo4BChance']= False
|
||||||
self.handsplayers[player[1]]['street0_FoldTo4BDone']= False
|
init['street0_FoldTo4BDone']= False
|
||||||
self.handsplayers[player[1]]['street0_SqueezeChance']= False
|
init['street0_SqueezeChance']= False
|
||||||
self.handsplayers[player[1]]['street0_SqueezeDone'] = False
|
init['street0_SqueezeDone'] = False
|
||||||
self.handsplayers[player[1]]['raiseToStealChance'] = False
|
init['success_Steal'] = False
|
||||||
self.handsplayers[player[1]]['raiseToStealDone'] = False
|
init['raiseToStealChance'] = False
|
||||||
self.handsplayers[player[1]]['success_Steal'] = False
|
init['raiseToStealDone'] = False
|
||||||
self.handsplayers[player[1]]['raiseFirstInChance'] = False
|
init['raiseFirstInChance'] = False
|
||||||
self.handsplayers[player[1]]['raisedFirstIn'] = False
|
init['raisedFirstIn'] = False
|
||||||
self.handsplayers[player[1]]['foldBbToStealChance'] = False
|
init['foldBbToStealChance'] = False
|
||||||
self.handsplayers[player[1]]['foldSbToStealChance'] = False
|
init['foldSbToStealChance'] = False
|
||||||
self.handsplayers[player[1]]['foldedSbToSteal'] = False
|
init['foldedSbToSteal'] = False
|
||||||
self.handsplayers[player[1]]['foldedBbToSteal'] = False
|
init['foldedBbToSteal'] = False
|
||||||
self.handsplayers[player[1]]['tourneyTypeId'] = None
|
init['tourneyTypeId'] = None
|
||||||
self.handsplayers[player[1]]['street1Seen'] = False
|
init['street1Seen'] = False
|
||||||
self.handsplayers[player[1]]['street2Seen'] = False
|
init['street2Seen'] = False
|
||||||
self.handsplayers[player[1]]['street3Seen'] = False
|
init['street3Seen'] = False
|
||||||
self.handsplayers[player[1]]['street4Seen'] = False
|
init['street4Seen'] = False
|
||||||
|
|
||||||
|
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
self.handsplayers[player[1]]['street%dCalls' % i] = 0
|
init['street%dCalls' % i] = 0
|
||||||
self.handsplayers[player[1]]['street%dBets' % i] = 0
|
init['street%dBets' % i] = 0
|
||||||
self.handsplayers[player[1]]['street%dRaises' % i] = 0
|
init['street%dRaises' % i] = 0
|
||||||
for i in range(1,5):
|
for i in range(1,5):
|
||||||
self.handsplayers[player[1]]['street%dCBChance' %i] = False
|
init['street%dCBChance' %i] = False
|
||||||
self.handsplayers[player[1]]['street%dCBDone' %i] = False
|
init['street%dCBDone' %i] = False
|
||||||
self.handsplayers[player[1]]['street%dCheckCallRaiseChance' %i] = False
|
init['street%dCheckCallRaiseChance' %i] = False
|
||||||
self.handsplayers[player[1]]['street%dCheckCallRaiseDone' %i] = False
|
init['street%dCheckCallRaiseDone' %i] = False
|
||||||
self.handsplayers[player[1]]['otherRaisedStreet%d' %i] = False
|
init['otherRaisedStreet%d' %i] = False
|
||||||
self.handsplayers[player[1]]['foldToOtherRaisedStreet%d' %i] = False
|
init['foldToOtherRaisedStreet%d' %i] = False
|
||||||
|
|
||||||
#FIXME - Everything below this point is incomplete.
|
#FIXME - Everything below this point is incomplete.
|
||||||
self.handsplayers[player[1]]['other3BStreet0'] = False
|
init['other3BStreet0'] = False
|
||||||
self.handsplayers[player[1]]['other4BStreet0'] = False
|
init['other4BStreet0'] = False
|
||||||
self.handsplayers[player[1]]['otherRaisedStreet0'] = False
|
init['otherRaisedStreet0'] = False
|
||||||
self.handsplayers[player[1]]['foldToOtherRaisedStreet0'] = False
|
init['foldToOtherRaisedStreet0'] = False
|
||||||
for i in range(1,5):
|
for i in range(1,5):
|
||||||
self.handsplayers[player[1]]['foldToStreet%dCBChance' %i] = False
|
init['foldToStreet%dCBChance' %i] = False
|
||||||
self.handsplayers[player[1]]['foldToStreet%dCBDone' %i] = False
|
init['foldToStreet%dCBDone' %i] = False
|
||||||
self.handsplayers[player[1]]['wonWhenSeenStreet2'] = 0.0
|
init['wonWhenSeenStreet2'] = 0.0
|
||||||
self.handsplayers[player[1]]['wonWhenSeenStreet3'] = 0.0
|
init['wonWhenSeenStreet3'] = 0.0
|
||||||
self.handsplayers[player[1]]['wonWhenSeenStreet4'] = 0.0
|
init['wonWhenSeenStreet4'] = 0.0
|
||||||
|
return init
|
||||||
|
|
||||||
|
def getStats(self, hand):
|
||||||
|
for player in hand.players:
|
||||||
|
self.handsplayers[player[1]] = self._initStats.copy()
|
||||||
|
|
||||||
self.assembleHands(self.hand)
|
self.assembleHands(self.hand)
|
||||||
self.assembleHandsPlayers(self.hand)
|
self.assembleHandsPlayers(self.hand)
|
||||||
|
|
|
@ -57,7 +57,7 @@ class Filters(threading.Thread):
|
||||||
,'groupstitle':_('Grouping:'), 'posnshow':_('Show Position Stats')
|
,'groupstitle':_('Grouping:'), 'posnshow':_('Show Position Stats')
|
||||||
,'datestitle':_('Date:')
|
,'datestitle':_('Date:')
|
||||||
,'groupsall':_('All Players')
|
,'groupsall':_('All Players')
|
||||||
,'limitsFL':'FL', 'limitsNL':'NL', 'limitsPL':'PL', 'ring':_('Ring'), 'tour':_('Tourney')
|
,'limitsFL':'FL', 'limitsNL':'NL', 'limitsPL':'PL', 'limitsCN':'CAP', 'ring':_('Ring'), 'tour':_('Tourney')
|
||||||
}
|
}
|
||||||
|
|
||||||
gen = self.conf.get_general_params()
|
gen = self.conf.get_general_params()
|
||||||
|
@ -79,7 +79,7 @@ class Filters(threading.Thread):
|
||||||
self.sw.show()
|
self.sw.show()
|
||||||
print _("DEBUG: New packing box created!")
|
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, 'cn':False, 'ring':False, 'tour':False}
|
||||||
self.label = {}
|
self.label = {}
|
||||||
self.callback = {}
|
self.callback = {}
|
||||||
|
|
||||||
|
@ -154,9 +154,11 @@ class Filters(threading.Thread):
|
||||||
self.cbFL = None
|
self.cbFL = None
|
||||||
self.cbNL = None
|
self.cbNL = None
|
||||||
self.cbPL = None
|
self.cbPL = None
|
||||||
|
self.cbCN = None
|
||||||
self.rb = {} # radio buttons for ring/tour
|
self.rb = {} # radio buttons for ring/tour
|
||||||
self.type = None # ring/tour
|
self.type = None # ring/tour
|
||||||
self.types = {} # list of all ring/tour values
|
self.types = {} # list of all ring/tour values
|
||||||
|
self.num_limit_types = 0
|
||||||
|
|
||||||
self.num_limit_types = 0
|
self.num_limit_types = 0
|
||||||
self.fillLimitsFrame(vbox, self.display)
|
self.fillLimitsFrame(vbox, self.display)
|
||||||
|
@ -430,7 +432,7 @@ class Filters(threading.Thread):
|
||||||
#print "__set_limit_select: limit =", limit, w.get_active()
|
#print "__set_limit_select: limit =", limit, w.get_active()
|
||||||
self.limits[limit] = w.get_active()
|
self.limits[limit] = w.get_active()
|
||||||
log.debug(_("self.limit[%s] set to %s") %(limit, self.limits[limit]))
|
log.debug(_("self.limit[%s] set to %s") %(limit, self.limits[limit]))
|
||||||
if limit.isdigit() or (len(limit) > 2 and (limit[-2:] == 'nl' or limit[-2:] == 'fl' or limit[-2:] == 'pl')):
|
if limit.isdigit() or (len(limit) > 2 and (limit[-2:] == 'nl' or limit[-2:] == 'fl' or limit[-2:] == 'pl' or limit[-2:] == 'cn')):
|
||||||
# turning a leaf limit on with 'None' checked turns 'None' off
|
# turning a leaf limit on with 'None' checked turns 'None' off
|
||||||
if self.limits[limit]:
|
if self.limits[limit]:
|
||||||
if self.cbNoLimits is not None:
|
if self.cbNoLimits is not None:
|
||||||
|
@ -439,7 +441,7 @@ class Filters(threading.Thread):
|
||||||
else:
|
else:
|
||||||
if self.cbAllLimits is not None:
|
if self.cbAllLimits is not None:
|
||||||
self.cbAllLimits.set_active(False)
|
self.cbAllLimits.set_active(False)
|
||||||
# turning off a leaf limit turns off the corresponding fl. nl, or pl
|
# turning off a leaf limit turns off the corresponding fl. nl, cn or pl
|
||||||
if not self.limits[limit]:
|
if not self.limits[limit]:
|
||||||
if limit.isdigit():
|
if limit.isdigit():
|
||||||
if self.cbFL is not None:
|
if self.cbFL is not None:
|
||||||
|
@ -447,6 +449,9 @@ class Filters(threading.Thread):
|
||||||
elif (len(limit) > 2 and (limit[-2:] == 'nl')):
|
elif (len(limit) > 2 and (limit[-2:] == 'nl')):
|
||||||
if self.cbNL is not None:
|
if self.cbNL is not None:
|
||||||
self.cbNL.set_active(False)
|
self.cbNL.set_active(False)
|
||||||
|
elif (len(limit) > 2 and (limit[-2:] == 'cn')):
|
||||||
|
if self.cbCN is not None:
|
||||||
|
self.cbCN.set_active(False)
|
||||||
else:
|
else:
|
||||||
if self.cbPL is not None:
|
if self.cbPL is not None:
|
||||||
self.cbPL.set_active(False)
|
self.cbPL.set_active(False)
|
||||||
|
@ -462,18 +467,26 @@ class Filters(threading.Thread):
|
||||||
self.cbNL.set_active(True)
|
self.cbNL.set_active(True)
|
||||||
if self.cbPL is not None:
|
if self.cbPL is not None:
|
||||||
self.cbPL.set_active(True)
|
self.cbPL.set_active(True)
|
||||||
|
if self.cbCN is not None:
|
||||||
|
self.cbCN.set_active(True)
|
||||||
elif limit == "none":
|
elif limit == "none":
|
||||||
if self.limits[limit]:
|
if self.limits[limit]:
|
||||||
if self.num_limit_types == 1:
|
if self.num_limit_types > 1:
|
||||||
for cb in self.cbLimits.values():
|
|
||||||
cb.set_active(False)
|
|
||||||
else:
|
|
||||||
if self.cbNL is not None:
|
if self.cbNL is not None:
|
||||||
self.cbNL.set_active(False)
|
self.cbNL.set_active(False)
|
||||||
if self.cbFL is not None:
|
if self.cbFL is not None:
|
||||||
self.cbFL.set_active(False)
|
self.cbFL.set_active(False)
|
||||||
if self.cbPL is not None:
|
if self.cbPL is not None:
|
||||||
self.cbPL.set_active(False)
|
self.cbPL.set_active(False)
|
||||||
|
if self.cbCN is not None:
|
||||||
|
self.cbCN.set_active(False)
|
||||||
|
#
|
||||||
|
# Finally, clean-up all individual limit checkboxes
|
||||||
|
# needed because the overall limit checkbox may
|
||||||
|
# not be set, or num_limit_types == 1
|
||||||
|
#
|
||||||
|
for cb in self.cbLimits.values():
|
||||||
|
cb.set_active(False)
|
||||||
elif limit == "fl":
|
elif limit == "fl":
|
||||||
if not self.limits[limit]:
|
if not self.limits[limit]:
|
||||||
# only toggle all fl limits off if they are all currently on
|
# only toggle all fl limits off if they are all currently on
|
||||||
|
@ -553,6 +566,29 @@ class Filters(threading.Thread):
|
||||||
elif self.type == 'tour':
|
elif self.type == 'tour':
|
||||||
if 'ring' in self.rb:
|
if 'ring' in self.rb:
|
||||||
self.rb['ring'].set_active(True)
|
self.rb['ring'].set_active(True)
|
||||||
|
elif limit == "cn":
|
||||||
|
if not self.limits[limit]:
|
||||||
|
all_cn_on = True
|
||||||
|
for cb in self.cbLimits.values():
|
||||||
|
t = cb.get_children()[0].get_text()
|
||||||
|
if "cn" in t and len(t) > 2:
|
||||||
|
if not cb.get_active():
|
||||||
|
all_cn_on = False
|
||||||
|
found = {'ring':False, 'tour':False}
|
||||||
|
for cb in self.cbLimits.values():
|
||||||
|
t = cb.get_children()[0].get_text()
|
||||||
|
if "cn" in t and len(t) > 2:
|
||||||
|
if self.limits[limit] or all_cn_on:
|
||||||
|
cb.set_active(self.limits[limit])
|
||||||
|
found[self.types[t]] = True
|
||||||
|
if self.limits[limit]:
|
||||||
|
if not found[self.type]:
|
||||||
|
if self.type == 'ring':
|
||||||
|
if 'tour' in self.rb:
|
||||||
|
self.rb['tour'].set_active(True)
|
||||||
|
elif self.type == 'tour':
|
||||||
|
if 'ring' in self.rb:
|
||||||
|
self.rb['ring'].set_active(True)
|
||||||
elif limit == "ring":
|
elif limit == "ring":
|
||||||
log.debug("set", limit, "to", self.limits[limit])
|
log.debug("set", limit, "to", self.limits[limit])
|
||||||
if self.limits[limit]:
|
if self.limits[limit]:
|
||||||
|
@ -726,15 +762,16 @@ class Filters(threading.Thread):
|
||||||
showb = gtk.Button(label="hide", stock=None, use_underline=True)
|
showb = gtk.Button(label="hide", stock=None, use_underline=True)
|
||||||
showb.set_alignment(xalign=1.0, yalign=0.5)
|
showb.set_alignment(xalign=1.0, yalign=0.5)
|
||||||
showb.connect('clicked', self.__toggle_box, 'limits')
|
showb.connect('clicked', self.__toggle_box, 'limits')
|
||||||
|
top_hbox.pack_start(showb, expand=False, padding=1)
|
||||||
|
|
||||||
vbox1 = gtk.VBox(False, 0)
|
vbox1 = gtk.VBox(False, 15)
|
||||||
vbox.pack_start(vbox1, False, False, 0)
|
vbox.pack_start(vbox1, False, False, 0)
|
||||||
self.boxes['limits'] = vbox1
|
self.boxes['limits'] = vbox1
|
||||||
|
|
||||||
self.cursor.execute(self.sql.query['getCashLimits'])
|
self.cursor.execute(self.sql.query['getCashLimits'])
|
||||||
# selects limitType, bigBlind
|
# selects limitType, bigBlind
|
||||||
result = self.db.cursor.fetchall()
|
result = self.db.cursor.fetchall()
|
||||||
self.found = {'nl':False, 'fl':False, 'pl':False, 'ring':False, 'tour':False}
|
self.found = {'nl':False, 'fl':False, 'pl':False, 'cn':False, 'ring':False, 'tour':False}
|
||||||
|
|
||||||
if len(result) >= 1:
|
if len(result) >= 1:
|
||||||
hbox = gtk.HBox(True, 0)
|
hbox = gtk.HBox(True, 0)
|
||||||
|
@ -759,6 +796,9 @@ class Filters(threading.Thread):
|
||||||
elif line[1] == 'pl':
|
elif line[1] == 'pl':
|
||||||
name = str(line[2])+line[1]
|
name = str(line[2])+line[1]
|
||||||
self.found['pl'] = True
|
self.found['pl'] = True
|
||||||
|
elif line[1] == 'cn':
|
||||||
|
name = str(line[2])+line[1]
|
||||||
|
self.found['cn'] = True
|
||||||
else:
|
else:
|
||||||
name = str(line[2])+line[1]
|
name = str(line[2])+line[1]
|
||||||
self.found['nl'] = True
|
self.found['nl'] = True
|
||||||
|
@ -787,6 +827,7 @@ class Filters(threading.Thread):
|
||||||
if self.found['fl']: self.num_limit_types = self.num_limit_types + 1
|
if self.found['fl']: self.num_limit_types = self.num_limit_types + 1
|
||||||
if self.found['pl']: self.num_limit_types = self.num_limit_types + 1
|
if self.found['pl']: self.num_limit_types = self.num_limit_types + 1
|
||||||
if self.found['nl']: self.num_limit_types = self.num_limit_types + 1
|
if self.found['nl']: self.num_limit_types = self.num_limit_types + 1
|
||||||
|
if self.found['cn']: self.num_limit_types = self.num_limit_types + 1
|
||||||
if self.num_limit_types > 1:
|
if self.num_limit_types > 1:
|
||||||
if self.found['fl']:
|
if self.found['fl']:
|
||||||
hbox = gtk.HBox(False, 0)
|
hbox = gtk.HBox(False, 0)
|
||||||
|
@ -800,6 +841,10 @@ class Filters(threading.Thread):
|
||||||
hbox = gtk.HBox(False, 0)
|
hbox = gtk.HBox(False, 0)
|
||||||
vbox3.pack_start(hbox, False, False, 0)
|
vbox3.pack_start(hbox, False, False, 0)
|
||||||
self.cbPL = self.createLimitLine(hbox, 'pl', self.filterText['limitsPL'])
|
self.cbPL = self.createLimitLine(hbox, 'pl', self.filterText['limitsPL'])
|
||||||
|
if self.found['cn']:
|
||||||
|
hbox = gtk.HBox(False, 0)
|
||||||
|
vbox3.pack_start(hbox, False, False, 0)
|
||||||
|
self.cbCN = self.createLimitLine(hbox, 'cn', self.filterText['limitsCN'])
|
||||||
dest = vbox2 # for ring/tour buttons
|
dest = vbox2 # for ring/tour buttons
|
||||||
else:
|
else:
|
||||||
print _("INFO: No games returned from database")
|
print _("INFO: No games returned from database")
|
||||||
|
|
|
@ -490,7 +490,7 @@ For sites (currently only Carbon Poker) which record "all in" as a special actio
|
||||||
amount = amount.replace(u',', u'') #some sites have commas
|
amount = amount.replace(u',', u'') #some sites have commas
|
||||||
Ai = Decimal(amount)
|
Ai = Decimal(amount)
|
||||||
Bp = self.lastBet[street]
|
Bp = self.lastBet[street]
|
||||||
Bc = reduce(operator.add, self.bets[street][player], 0)
|
Bc = sum(self.bets[street][player])
|
||||||
C = Bp - Bc
|
C = Bp - Bc
|
||||||
if Ai <= C:
|
if Ai <= C:
|
||||||
self.addCall(street, player, amount)
|
self.addCall(street, player, amount)
|
||||||
|
@ -592,7 +592,7 @@ Add a raise by amountBy on [street] by [player]
|
||||||
self.checkPlayerExists(player)
|
self.checkPlayerExists(player)
|
||||||
Rb = Decimal(amountBy)
|
Rb = Decimal(amountBy)
|
||||||
Bp = self.lastBet[street]
|
Bp = self.lastBet[street]
|
||||||
Bc = reduce(operator.add, self.bets[street][player], 0)
|
Bc = sum(self.bets[street][player])
|
||||||
C = Bp - Bc
|
C = Bp - Bc
|
||||||
Rt = Bp + Rb
|
Rt = Bp + Rb
|
||||||
|
|
||||||
|
@ -609,7 +609,7 @@ For sites which by "raises x" mean "calls and raises putting a total of x in the
|
||||||
amount = amount.replace(u',', u'') #some sites have commas
|
amount = amount.replace(u',', u'') #some sites have commas
|
||||||
CRb = Decimal(amount)
|
CRb = Decimal(amount)
|
||||||
Bp = self.lastBet[street]
|
Bp = self.lastBet[street]
|
||||||
Bc = reduce(operator.add, self.bets[street][player], 0)
|
Bc = sum(self.bets[street][player])
|
||||||
C = Bp - Bc
|
C = Bp - Bc
|
||||||
Rb = CRb - C
|
Rb = CRb - C
|
||||||
Rt = Bp + Rb
|
Rt = Bp + Rb
|
||||||
|
@ -624,7 +624,7 @@ Add a raise on [street] by [player] to [amountTo]
|
||||||
self.checkPlayerExists(player)
|
self.checkPlayerExists(player)
|
||||||
amountTo = amountTo.replace(u',', u'') #some sites have commas
|
amountTo = amountTo.replace(u',', u'') #some sites have commas
|
||||||
Bp = self.lastBet[street]
|
Bp = self.lastBet[street]
|
||||||
Bc = reduce(operator.add, self.bets[street][player], 0)
|
Bc = sum(self.bets[street][player])
|
||||||
Rt = Decimal(amountTo)
|
Rt = Decimal(amountTo)
|
||||||
C = Bp - Bc
|
C = Bp - Bc
|
||||||
Rb = Rt - C - Bc
|
Rb = Rt - C - Bc
|
||||||
|
@ -1386,7 +1386,7 @@ Add a complete on [street] by [player] to [amountTo]
|
||||||
amountTo = amountTo.replace(u',', u'') #some sites have commas
|
amountTo = amountTo.replace(u',', u'') #some sites have commas
|
||||||
self.checkPlayerExists(player)
|
self.checkPlayerExists(player)
|
||||||
Bp = self.lastBet['THIRD']
|
Bp = self.lastBet['THIRD']
|
||||||
Bc = reduce(operator.add, self.bets[street][player], 0)
|
Bc = sum(self.bets[street][player])
|
||||||
Rt = Decimal(amountTo)
|
Rt = Decimal(amountTo)
|
||||||
C = Bp - Bc
|
C = Bp - Bc
|
||||||
Rb = Rt - C
|
Rb = Rt - C
|
||||||
|
@ -1401,6 +1401,7 @@ Add a complete on [street] by [player] to [amountTo]
|
||||||
def addBringIn(self, player, bringin):
|
def addBringIn(self, player, bringin):
|
||||||
if player is not None:
|
if player is not None:
|
||||||
log.debug(_("Bringin: %s, %s") % (player , bringin))
|
log.debug(_("Bringin: %s, %s") % (player , bringin))
|
||||||
|
bringin = bringin.replace(u',', u'') #some sites have commas
|
||||||
bringin = Decimal(bringin)
|
bringin = Decimal(bringin)
|
||||||
self.bets['THIRD'][player].append(bringin)
|
self.bets['THIRD'][player].append(bringin)
|
||||||
self.stacks[player] -= bringin
|
self.stacks[player] -= bringin
|
||||||
|
|
|
@ -142,7 +142,7 @@ class Table_Window(object):
|
||||||
if self.number is not None: break
|
if self.number is not None: break
|
||||||
trys += 1
|
trys += 1
|
||||||
if trys > 4:
|
if trys > 4:
|
||||||
log.error("Can't find table %s" % table_name)
|
log.error(_("Can't find table %s") % table_name)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
geo = self.get_geometry()
|
geo = self.get_geometry()
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
(1, 'T$', 'tour', 'stud', 'razz', 'fl', 'l', 8000, 16000, 16000, 32000)
|
|
@ -0,0 +1,31 @@
|
||||||
|
{ 'boardcard1': 0,
|
||||||
|
'boardcard2': 0,
|
||||||
|
'boardcard3': 0,
|
||||||
|
'boardcard4': 0,
|
||||||
|
'boardcard5': 0,
|
||||||
|
'gametypeId': 1,
|
||||||
|
'importTime': None,
|
||||||
|
'maxSeats': 2,
|
||||||
|
'playersAtShowdown': 2,
|
||||||
|
'playersAtStreet1': 2,
|
||||||
|
'playersAtStreet2': 2,
|
||||||
|
'playersAtStreet3': 2,
|
||||||
|
'playersAtStreet4': 2,
|
||||||
|
'playersVpi': 1,
|
||||||
|
'seats': 2,
|
||||||
|
'sessionId': None,
|
||||||
|
'showdownPot': 0,
|
||||||
|
'siteHandNo': u'28333847000',
|
||||||
|
'startTime': datetime.datetime(2011, 2, 19, 10, 46, tzinfo=pytz.utc),
|
||||||
|
'street0Raises': 0,
|
||||||
|
'street1Pot': 0,
|
||||||
|
'street1Raises': 0,
|
||||||
|
'street2Pot': 0,
|
||||||
|
'street2Raises': 0,
|
||||||
|
'street3Pot': 0,
|
||||||
|
'street3Raises': 0,
|
||||||
|
'street4Pot': 0,
|
||||||
|
'street4Raises': 0,
|
||||||
|
'tableName': u'220338000 1',
|
||||||
|
'texture': None,
|
||||||
|
'tourneyId': 1}
|
|
@ -0,0 +1,206 @@
|
||||||
|
{ u'Hero': { 'card1': 17,
|
||||||
|
'card2': 44,
|
||||||
|
'card3': 40,
|
||||||
|
'card4': 22,
|
||||||
|
'card5': 10,
|
||||||
|
'card6': 1,
|
||||||
|
'card7': 37,
|
||||||
|
'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': 0,
|
||||||
|
'raiseFirstInChance': True,
|
||||||
|
'raisedFirstIn': False,
|
||||||
|
'rake': 0,
|
||||||
|
'sawShowdown': True,
|
||||||
|
'seatNo': 2,
|
||||||
|
'sitout': False,
|
||||||
|
'startCards': 52,
|
||||||
|
'startCash': 97600,
|
||||||
|
'street0Aggr': False,
|
||||||
|
'street0Bets': 0,
|
||||||
|
'street0Calls': 1,
|
||||||
|
'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': 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': 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': True,
|
||||||
|
'success_Steal': False,
|
||||||
|
'totalProfit': 2400,
|
||||||
|
'tourneyTypeId': 1,
|
||||||
|
'tourneysPlayersIds': 2,
|
||||||
|
'winnings': 4800,
|
||||||
|
'wonAtSD': 1.0,
|
||||||
|
'wonWhenSeenStreet1': 1.0,
|
||||||
|
'wonWhenSeenStreet2': 1.0,
|
||||||
|
'wonWhenSeenStreet3': 1.0,
|
||||||
|
'wonWhenSeenStreet4': 1.0},
|
||||||
|
u'Villain': { 'card1': 52,
|
||||||
|
'card2': 32,
|
||||||
|
'card3': 38,
|
||||||
|
'card4': 49,
|
||||||
|
'card5': 42,
|
||||||
|
'card6': 19,
|
||||||
|
'card7': 35,
|
||||||
|
'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': 'S',
|
||||||
|
'raiseFirstInChance': False,
|
||||||
|
'raisedFirstIn': False,
|
||||||
|
'rake': 0,
|
||||||
|
'sawShowdown': True,
|
||||||
|
'seatNo': 1,
|
||||||
|
'sitout': False,
|
||||||
|
'startCards': 708,
|
||||||
|
'startCash': 2400,
|
||||||
|
'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': 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': True,
|
||||||
|
'success_Steal': False,
|
||||||
|
'totalProfit': -2400,
|
||||||
|
'tourneyTypeId': 1,
|
||||||
|
'tourneysPlayersIds': 1,
|
||||||
|
'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