Merge branch 'master' of git://git.assembla.com/free_poker_tools.git
This commit is contained in:
commit
9b93cd42e3
|
@ -1,5 +1,5 @@
|
||||||
README.txt
|
README.txt
|
||||||
updated 26 March 2009, REB
|
updated 22 February 2010, REB
|
||||||
|
|
||||||
fpdb - Free Poker Database
|
fpdb - Free Poker Database
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ fpdb supports:
|
||||||
Omaha (incl Hi/low)
|
Omaha (incl Hi/low)
|
||||||
7 Card Stud (incl Hi/low)
|
7 Card Stud (incl Hi/low)
|
||||||
Razz
|
Razz
|
||||||
Draw support is under development
|
Triple Draw and Badugi
|
||||||
Mixed Games -- HUD under development
|
Mixed Games -- HUD under development
|
||||||
|
|
||||||
Operating Systems:
|
Operating Systems:
|
||||||
|
@ -38,23 +38,38 @@ fpdb supports:
|
||||||
Mac OS/X -- no support for HUD
|
Mac OS/X -- no support for HUD
|
||||||
|
|
||||||
Databases:
|
Databases:
|
||||||
|
SQLite configured by default
|
||||||
MySQL
|
MySQL
|
||||||
PostgreSQL
|
PostgreSQL
|
||||||
SQLite under development
|
|
||||||
|
|
||||||
Downloads:
|
Downloads:
|
||||||
Releases: http://sourceforge.net/project/showfiles.php?group_id=226872
|
Releases: http://sourceforge.net/project/showfiles.php?group_id=226872
|
||||||
Development code via git: http://www.assembla.com/spaces/free_poker_tools/trac_git_tool
|
Development code via git: http://www.assembla.com/spaces/free_poker_tools/trac_git_tool
|
||||||
|
|
||||||
Developers:
|
Developers:
|
||||||
At least 7 people have contributed code or patches. Others are welcome.
|
At least 10 people have contributed code or patches. Others are welcome.
|
||||||
|
|
||||||
|
Source Code:
|
||||||
|
If you received fpdb as the Windows compressed exe, then you did not
|
||||||
|
receive souce code for fpdb or the included libraries. If you wish, you can
|
||||||
|
obtain the source code here:
|
||||||
|
|
||||||
|
fpdb: see Downloads, above.
|
||||||
|
python: http://python.org/
|
||||||
|
gtk: http://www.gtk.org/download.html
|
||||||
|
pygtk: http://www.pygtk.org/downloads.html
|
||||||
|
psycopg2: http://initd.org/pub/software/psycopg/
|
||||||
|
mysqldb: http://sourceforge.net/projects/mysql-python/files/
|
||||||
|
sqlalchemy: http://www.sqlalchemy.org/download.html
|
||||||
|
numpy: http://www.scipy.org/Download
|
||||||
|
matplotlib: http://sourceforge.net/projects/matplotlib/files/
|
||||||
|
|
||||||
License
|
License
|
||||||
=======
|
=======
|
||||||
Trademarks of third parties have been used under Fair Use or similar laws.
|
Trademarks of third parties have been used under Fair Use or similar laws.
|
||||||
|
|
||||||
Copyright 2008 Steffen Jobbagy-Felso
|
Copyright 2008 Steffen Jobbagy-Felso
|
||||||
Copyright 2009 Ray E. Barker
|
Copyright 2009,2010 Ray E. Barker
|
||||||
Permission is granted to copy, distribute and/or modify this
|
Permission is granted to copy, distribute and/or modify this
|
||||||
document under the terms of the GNU Free Documentation License,
|
document under the terms of the GNU Free Documentation License,
|
||||||
Version 1.2 as published by the Free Software Foundation; with
|
Version 1.2 as published by the Free Software Foundation; with
|
||||||
|
|
|
@ -414,6 +414,7 @@ class Import:
|
||||||
self.hhArchiveBase = node.getAttribute("hhArchiveBase")
|
self.hhArchiveBase = node.getAttribute("hhArchiveBase")
|
||||||
self.saveActions = string_to_bool(node.getAttribute("saveActions"), default=True)
|
self.saveActions = string_to_bool(node.getAttribute("saveActions"), default=True)
|
||||||
self.fastStoreHudCache = string_to_bool(node.getAttribute("fastStoreHudCache"), default=False)
|
self.fastStoreHudCache = string_to_bool(node.getAttribute("fastStoreHudCache"), default=False)
|
||||||
|
self.saveStarsHH = string_to_bool(node.getAttribute("saveStarsHH"), default=False)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return " interval = %s\n callFpdbHud = %s\n hhArchiveBase = %s\n saveActions = %s\n fastStoreHudCache = %s\n" \
|
return " interval = %s\n callFpdbHud = %s\n hhArchiveBase = %s\n saveActions = %s\n fastStoreHudCache = %s\n" \
|
||||||
|
@ -469,7 +470,8 @@ class Config:
|
||||||
|
|
||||||
self.file = file
|
self.file = file
|
||||||
self.dir_self = get_exec_path()
|
self.dir_self = get_exec_path()
|
||||||
self.dir_config = os.path.dirname(self.file)
|
# self.dir_config = os.path.dirname(self.file)
|
||||||
|
self.dir_config = get_default_config_path()
|
||||||
self.dir_log = os.path.join(self.dir_config, 'log')
|
self.dir_log = os.path.join(self.dir_config, 'log')
|
||||||
self.dir_database = os.path.join(self.dir_config, 'database')
|
self.dir_database = os.path.join(self.dir_config, 'database')
|
||||||
self.log_file = os.path.join(self.dir_log, 'fpdb-log.txt')
|
self.log_file = os.path.join(self.dir_log, 'fpdb-log.txt')
|
||||||
|
@ -822,8 +824,12 @@ class Config:
|
||||||
try: imp['saveActions'] = self.imp.saveActions
|
try: imp['saveActions'] = self.imp.saveActions
|
||||||
except: imp['saveActions'] = True
|
except: imp['saveActions'] = True
|
||||||
|
|
||||||
|
try: imp['saveStarsHH'] = self.imp.saveStarsHH
|
||||||
|
except: imp['saveStarsHH'] = False
|
||||||
|
|
||||||
try: imp['fastStoreHudCache'] = self.imp.fastStoreHudCache
|
try: imp['fastStoreHudCache'] = self.imp.fastStoreHudCache
|
||||||
except: imp['fastStoreHudCache'] = True
|
except: imp['fastStoreHudCache'] = True
|
||||||
|
|
||||||
return imp
|
return imp
|
||||||
|
|
||||||
def get_default_paths(self, site = None):
|
def get_default_paths(self, site = None):
|
||||||
|
|
|
@ -61,7 +61,7 @@ import Hud
|
||||||
|
|
||||||
|
|
||||||
# get config and set up logger
|
# get config and set up logger
|
||||||
c = Configuration.Config(file=options.config)
|
c = Configuration.Config(file=options.config, dbname=options.dbname)
|
||||||
log = Configuration.get_logger("logging.conf", "hud", log_dir=c.dir_log, log_file='HUD-log.txt')
|
log = Configuration.get_logger("logging.conf", "hud", log_dir=c.dir_log, log_file='HUD-log.txt')
|
||||||
|
|
||||||
|
|
||||||
|
@ -237,7 +237,7 @@ class HUD_main(object):
|
||||||
try:
|
try:
|
||||||
(table_name, max, poker_game, type, site_id, site_name, num_seats, tour_number, tab_number) = \
|
(table_name, max, poker_game, type, site_id, site_name, num_seats, tour_number, tab_number) = \
|
||||||
self.db_connection.get_table_info(new_hand_id)
|
self.db_connection.get_table_info(new_hand_id)
|
||||||
except Exception, err:
|
except Exception:
|
||||||
log.error("db error: skipping %s" % new_hand_id)
|
log.error("db error: skipping %s" % new_hand_id)
|
||||||
continue
|
continue
|
||||||
t1 = time.time()
|
t1 = time.time()
|
||||||
|
|
|
@ -69,6 +69,7 @@ out_path (default '-' = sys.stdout)
|
||||||
follow : whether to tail -f the input"""
|
follow : whether to tail -f the input"""
|
||||||
|
|
||||||
self.config = config
|
self.config = config
|
||||||
|
self.import_parameters = self.config.get_import_parameters()
|
||||||
#log = Configuration.get_logger("logging.conf", "parser", log_dir=self.config.dir_log)
|
#log = Configuration.get_logger("logging.conf", "parser", log_dir=self.config.dir_log)
|
||||||
log.info("HandHistory init - %s subclass, in_path '%s'; out_path '%s'" % (self.sitename, in_path, out_path) )
|
log.info("HandHistory init - %s subclass, in_path '%s'; out_path '%s'" % (self.sitename, in_path, out_path) )
|
||||||
|
|
||||||
|
@ -87,12 +88,8 @@ follow : whether to tail -f the input"""
|
||||||
|
|
||||||
if in_path == '-':
|
if in_path == '-':
|
||||||
self.in_fh = sys.stdin
|
self.in_fh = sys.stdin
|
||||||
|
self.out_fh = get_out_fh(out_path, self.import_parameters)
|
||||||
|
|
||||||
if out_path == '-':
|
|
||||||
self.out_fh = sys.stdout
|
|
||||||
else:
|
|
||||||
# TODO: out_path should be sanity checked.
|
|
||||||
self.out_fh = sys.stdout
|
|
||||||
self.follow = follow
|
self.follow = follow
|
||||||
self.compiledPlayers = set()
|
self.compiledPlayers = set()
|
||||||
self.maxseats = 10
|
self.maxseats = 10
|
||||||
|
@ -446,8 +443,8 @@ or None if we fail to get the info """
|
||||||
def guessMaxSeats(self, hand):
|
def guessMaxSeats(self, hand):
|
||||||
"""Return a guess at maxseats when not specified in HH."""
|
"""Return a guess at maxseats when not specified in HH."""
|
||||||
# if some other code prior to this has already set it, return it
|
# if some other code prior to this has already set it, return it
|
||||||
if maxseats > 1 and maxseats < 11:
|
if self.maxseats > 1 and self.maxseats < 11:
|
||||||
return maxseats
|
return self.maxseats
|
||||||
mo = self.maxOccSeat(hand)
|
mo = self.maxOccSeat(hand)
|
||||||
|
|
||||||
if mo == 10: return 10 #that was easy
|
if mo == 10: return 10 #that was easy
|
||||||
|
@ -515,3 +512,23 @@ def getSiteHhc(config, sitename):
|
||||||
hhcName = config.supported_sites[sitename].converter
|
hhcName = config.supported_sites[sitename].converter
|
||||||
hhcModule = __import__(hhcName)
|
hhcModule = __import__(hhcName)
|
||||||
return getattr(hhcModule, hhcName[:-6])
|
return getattr(hhcModule, hhcName[:-6])
|
||||||
|
|
||||||
|
def get_out_fh(out_path, parameters):
|
||||||
|
if out_path == '-':
|
||||||
|
return(sys.stdout)
|
||||||
|
elif parameters['saveStarsHH']:
|
||||||
|
out_dir = os.path.dirname(out_path)
|
||||||
|
if not os.path.isdir(out_dir) and out_dir != '':
|
||||||
|
try:
|
||||||
|
os.makedirs(out_dir)
|
||||||
|
except: # we get a WindowsError here in Windows.. pretty sure something else for Linux :D
|
||||||
|
log.error("Unable to create output directory %s for HHC!" % out_dir)
|
||||||
|
print "*** ERROR: UNABLE TO CREATE OUTPUT DIRECTORY", out_dir
|
||||||
|
else:
|
||||||
|
log.info("Created directory '%s'" % out_dir)
|
||||||
|
try:
|
||||||
|
return(codecs.open(out_path, 'w', 'utf8'))
|
||||||
|
except:
|
||||||
|
log.error("out_path %s couldn't be opened" % (out_path))
|
||||||
|
else:
|
||||||
|
return(sys.stdout)
|
||||||
|
|
|
@ -89,7 +89,6 @@ class Table(Table_Window):
|
||||||
# break
|
# break
|
||||||
|
|
||||||
if window_number is None:
|
if window_number is None:
|
||||||
print "Window %s not found. Skipping." % search_string
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# my_geo = self.window.get_geometry()
|
# my_geo = self.window.get_geometry()
|
||||||
|
|
|
@ -1025,6 +1025,7 @@ This program is licensed under the AGPL3, see docs"""+os.sep+"agpl-3.0.txt")
|
||||||
return response
|
return response
|
||||||
|
|
||||||
def validate_config(self):
|
def validate_config(self):
|
||||||
|
if self.config.get_import_parameters().get('saveStarsHH'):
|
||||||
hhbase = self.config.get_import_parameters().get("hhArchiveBase")
|
hhbase = self.config.get_import_parameters().get("hhArchiveBase")
|
||||||
hhbase = os.path.expanduser(hhbase)
|
hhbase = os.path.expanduser(hhbase)
|
||||||
#hhdir = os.path.join(hhbase,site)
|
#hhdir = os.path.join(hhbase,site)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user