Merge branch 'master' of git://git.assembla.com/fpdboz.git
This commit is contained in:
commit
2589d2ecd3
|
@ -132,8 +132,8 @@ class Site:
|
||||||
|
|
||||||
if self.use_frames == "": self.use_frames = False
|
if self.use_frames == "": self.use_frames = False
|
||||||
if self.font == "": self.font = "Sans"
|
if self.font == "": self.font = "Sans"
|
||||||
if self.hudbgcolor == "": self.hudbgcolor = "000000"
|
if self.hudbgcolor == "": self.hudbgcolor = "#000000"
|
||||||
if self.hudfgcolor == "": self.hudfgcolor = "FFFFFF"
|
if self.hudfgcolor == "": self.hudfgcolor = "#FFFFFF"
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
temp = "Site = " + self.site_name + "\n"
|
temp = "Site = " + self.site_name + "\n"
|
||||||
|
|
|
@ -20,6 +20,7 @@ import pygtk
|
||||||
pygtk.require('2.0')
|
pygtk.require('2.0')
|
||||||
import gtk
|
import gtk
|
||||||
import os
|
import os
|
||||||
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
from time import *
|
from time import *
|
||||||
#import pokereval
|
#import pokereval
|
||||||
|
@ -32,11 +33,12 @@ try:
|
||||||
from matplotlib.backends.backend_gtkagg import NavigationToolbar2GTKAgg as NavigationToolbar
|
from matplotlib.backends.backend_gtkagg import NavigationToolbar2GTKAgg as NavigationToolbar
|
||||||
from numpy import arange, cumsum
|
from numpy import arange, cumsum
|
||||||
from pylab import *
|
from pylab import *
|
||||||
except ImportError:
|
except ImportError, inst:
|
||||||
print """Failed to load libs for graphing, graphing will not function. Please in
|
print """Failed to load libs for graphing, graphing will not function. Please in
|
||||||
stall numpy and matplotlib if you want to use graphs."""
|
stall numpy and matplotlib if you want to use graphs."""
|
||||||
print """This is of no consequence for other parts of the program, e.g. import
|
print """This is of no consequence for other parts of the program, e.g. import
|
||||||
and HUD are NOT affected by this problem."""
|
and HUD are NOT affected by this problem."""
|
||||||
|
print "ImportError: %s" % inst.args
|
||||||
|
|
||||||
import fpdb_import
|
import fpdb_import
|
||||||
import Database
|
import Database
|
||||||
|
|
|
@ -37,11 +37,10 @@ try:
|
||||||
# from matplotlib.dates import DateFormatter, WeekdayLocator, HourLocator, \
|
# from matplotlib.dates import DateFormatter, WeekdayLocator, HourLocator, \
|
||||||
# DayLocator, MONDAY, timezone
|
# DayLocator, MONDAY, timezone
|
||||||
|
|
||||||
except:
|
except ImportError, inst:
|
||||||
err = traceback.extract_tb(sys.exc_info()[2])[-1]
|
|
||||||
print "***Error: "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1])
|
|
||||||
print """Failed to load numpy in Session Viewer"""
|
print """Failed to load numpy in Session Viewer"""
|
||||||
print """This is of no consequence as the module currently doesn't do anything."""
|
print """This is of no consequence as the page is broken and only of interest to developers."""
|
||||||
|
print "ImportError: %s" % inst.args
|
||||||
|
|
||||||
import Card
|
import Card
|
||||||
import fpdb_import
|
import fpdb_import
|
||||||
|
|
|
@ -28,11 +28,12 @@ from HandHistoryConverter import *
|
||||||
|
|
||||||
class PartyPokerParseError(FpdbParseError):
|
class PartyPokerParseError(FpdbParseError):
|
||||||
"Usage: raise PartyPokerParseError(<msg>[, hh=<hh>][, hid=<hid>])"
|
"Usage: raise PartyPokerParseError(<msg>[, hh=<hh>][, hid=<hid>])"
|
||||||
|
|
||||||
def __init__(self, msg='', hh=None, hid=None):
|
def __init__(self, msg='', hh=None, hid=None):
|
||||||
if hh is not None:
|
if hh is not None:
|
||||||
msg += "\n\nHand history attached below:\n" + self.wrapHh(hh)
|
msg += "\n\nHand history attached below:\n" + self.wrapHh(hh)
|
||||||
return super(PartyPokerParseError, self).__init__(hid=hid)
|
return super(PartyPokerParseError, self).__init__(msg, hid=hid)
|
||||||
#return super(PartyPokerParseError, self).__init__(msg, hid=hid)
|
|
||||||
def wrapHh(self, hh):
|
def wrapHh(self, hh):
|
||||||
return ("%(DELIMETER)s\n%(HH)s\n%(DELIMETER)s") % \
|
return ("%(DELIMETER)s\n%(HH)s\n%(DELIMETER)s") % \
|
||||||
{'DELIMETER': '#'*50, 'HH': hh}
|
{'DELIMETER': '#'*50, 'HH': hh}
|
||||||
|
@ -93,7 +94,7 @@ class PartyPoker(HandHistoryConverter):
|
||||||
""",
|
""",
|
||||||
re.MULTILINE|re.VERBOSE)
|
re.MULTILINE|re.VERBOSE)
|
||||||
|
|
||||||
re_TotalPlayers = re.compile("^Total\s+number\s+of\s+players\s*:\s*(?P<MAXSEATS>\d+)", re.MULTILINE)
|
# re_TotalPlayers = re.compile("^Total\s+number\s+of\s+players\s*:\s*(?P<MAXSEATS>\d+)", re.MULTILINE)
|
||||||
re_SplitHands = re.compile('\x00+')
|
re_SplitHands = re.compile('\x00+')
|
||||||
re_TailSplitHands = re.compile('(\x00+)')
|
re_TailSplitHands = re.compile('(\x00+)')
|
||||||
lineSplitter = '\n'
|
lineSplitter = '\n'
|
||||||
|
@ -229,7 +230,6 @@ class PartyPoker(HandHistoryConverter):
|
||||||
"Unknown game type '%s'" % mg['GAME'],
|
"Unknown game type '%s'" % mg['GAME'],
|
||||||
hh = handText)
|
hh = handText)
|
||||||
|
|
||||||
|
|
||||||
if 'TOURNO' in mg:
|
if 'TOURNO' in mg:
|
||||||
info['type'] = 'tour'
|
info['type'] = 'tour'
|
||||||
else:
|
else:
|
||||||
|
@ -237,15 +237,12 @@ class PartyPoker(HandHistoryConverter):
|
||||||
|
|
||||||
if info['type'] == 'ring':
|
if info['type'] == 'ring':
|
||||||
info['sb'], info['bb'] = ringBlinds(mg['RINGLIMIT'])
|
info['sb'], info['bb'] = ringBlinds(mg['RINGLIMIT'])
|
||||||
# FIXME: there are only $ and play money availible for cash
|
|
||||||
# to be honest, party doesn't save play money hh
|
|
||||||
info['currency'] = currencies[mg['CURRENCY']]
|
info['currency'] = currencies[mg['CURRENCY']]
|
||||||
else:
|
else:
|
||||||
info['sb'] = clearMoneyString(mg['SB'])
|
info['sb'] = clearMoneyString(mg['SB'])
|
||||||
info['bb'] = clearMoneyString(mg['BB'])
|
info['bb'] = clearMoneyString(mg['BB'])
|
||||||
info['currency'] = 'T$'
|
info['currency'] = 'T$'
|
||||||
|
|
||||||
# NB: SB, BB must be interpreted as blinds or bets depending on limit type.
|
|
||||||
return info
|
return info
|
||||||
|
|
||||||
|
|
||||||
|
@ -269,8 +266,8 @@ class PartyPoker(HandHistoryConverter):
|
||||||
hh=hand.handText, hid = info['HID'])
|
hh=hand.handText, hid = info['HID'])
|
||||||
|
|
||||||
|
|
||||||
m = self.re_TotalPlayers.search(hand.handText)
|
# m = self.re_TotalPlayers.search(hand.handText)
|
||||||
if m: info.update(m.groupdict())
|
# if m: info.update(m.groupdict())
|
||||||
|
|
||||||
|
|
||||||
# FIXME: it's dirty hack
|
# FIXME: it's dirty hack
|
||||||
|
@ -318,7 +315,7 @@ class PartyPoker(HandHistoryConverter):
|
||||||
hand.tourNo = info[key]
|
hand.tourNo = info[key]
|
||||||
if key == 'BUYIN':
|
if key == 'BUYIN':
|
||||||
# FIXME: it's dirty hack T_T
|
# FIXME: it's dirty hack T_T
|
||||||
# code below assumes that rake is equal to zero
|
# code below assumes that tournament rake is equal to zero
|
||||||
cur = info[key][0] if info[key][0] not in '0123456789' else ''
|
cur = info[key][0] if info[key][0] not in '0123456789' else ''
|
||||||
hand.buyin = info[key] + '+%s0' % cur
|
hand.buyin = info[key] + '+%s0' % cur
|
||||||
if key == 'LEVEL':
|
if key == 'LEVEL':
|
||||||
|
@ -474,11 +471,9 @@ class PartyPoker(HandHistoryConverter):
|
||||||
if m.group('CARDS') is not None:
|
if m.group('CARDS') is not None:
|
||||||
cards = renderCards(m.group('CARDS'))
|
cards = renderCards(m.group('CARDS'))
|
||||||
|
|
||||||
(shown, mucked) = (False, False)
|
mucked = m.group('SHOWED') != "show"
|
||||||
if m.group('SHOWED') == "show": shown = True
|
|
||||||
else: mucked = True
|
|
||||||
|
|
||||||
hand.addShownCards(cards=cards, player=m.group('PNAME'), shown=shown, mucked=mucked)
|
hand.addShownCards(cards=cards, player=m.group('PNAME'), shown=True, mucked=mucked)
|
||||||
|
|
||||||
def ringBlinds(ringLimit):
|
def ringBlinds(ringLimit):
|
||||||
"Returns blinds for current limit in cash games"
|
"Returns blinds for current limit in cash games"
|
||||||
|
|
|
@ -1895,9 +1895,9 @@ class Sql:
|
||||||
self.query['playerDetailedStats'] = """
|
self.query['playerDetailedStats'] = """
|
||||||
select <hgameTypeId> AS hgametypeid
|
select <hgameTypeId> AS hgametypeid
|
||||||
,gt.base
|
,gt.base
|
||||||
,gt.category
|
,gt.category AS category
|
||||||
,upper(gt.limitType) AS limittype
|
,upper(gt.limitType) AS limittype
|
||||||
,s.name
|
,s.name AS name
|
||||||
,min(gt.bigBlind) AS minbigblind
|
,min(gt.bigBlind) AS minbigblind
|
||||||
,max(gt.bigBlind) AS maxbigblind
|
,max(gt.bigBlind) AS maxbigblind
|
||||||
/*,<hcgametypeId> AS gtid*/
|
/*,<hcgametypeId> AS gtid*/
|
||||||
|
@ -1939,7 +1939,8 @@ class Sql:
|
||||||
,100.0*avg((hp.totalProfit+hp.rake)/(gt.bigBlind+0.0)) AS bb100xr
|
,100.0*avg((hp.totalProfit+hp.rake)/(gt.bigBlind+0.0)) AS bb100xr
|
||||||
,avg((hp.totalProfit+hp.rake)/100.0) AS profhndxr
|
,avg((hp.totalProfit+hp.rake)/100.0) AS profhndxr
|
||||||
,avg(h.seats+0.0) AS avgseats
|
,avg(h.seats+0.0) AS avgseats
|
||||||
,variance(hp.totalProfit/100.0) AS variance
|
/*,variance(hp.totalProfit/100.0) AS variance*/
|
||||||
|
,0.0 AS variance
|
||||||
from HandsPlayers hp
|
from HandsPlayers hp
|
||||||
inner join Hands h on (h.id = hp.handId)
|
inner join Hands h on (h.id = hp.handId)
|
||||||
inner join Gametypes gt on (gt.Id = h.gameTypeId)
|
inner join Gametypes gt on (gt.Id = h.gameTypeId)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user