diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 0eabcdda..9582354a 100755 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -26,8 +26,8 @@ Create and manage the database objects. # Standard Library modules import sys import traceback -import string from datetime import datetime, date, time, timedelta +import string # pyGTK modules @@ -85,9 +85,9 @@ class Database: sys.exit() self.type = db_params['db-type'] - self.db_server = c.supported_databases[db_name].db_server - self.sql = SQL.Sql(game = game, type = self.type, db_server = self.db_server) - self.connection.rollback() + self.sql = SQL.Sql(game = game, type = self.type) + self.connection.rollback() + # To add to config: self.hud_style = 'T' # A=All-time # S=Session @@ -177,7 +177,7 @@ class Database: """Get and return the community cards for the specified hand.""" cards = {} c = self.connection.cursor() - c.execute(self.sql.query['get_common_cards'], (hand,)) + c.execute(self.sql.query['get_common_cards'], [hand]) colnames = [desc[0] for desc in c.description] for row in c.fetchall(): s_dict = {} @@ -325,8 +325,9 @@ if __name__=="__main__": h = db_connection.get_last_hand() print "last hand = ", h - hero = db_connection.get_player_id(c, 'Full Tilt Poker', 'PokerAscetic') - print "nutOmatic is id_player = %d" % hero + hero = db_connection.get_player_id(c, 'PokerStars', 'nutOmatic') + if hero: + print "nutOmatic is id_player = %d" % hero stat_dict = db_connection.get_stats_from_hand(h) for p in stat_dict.keys(): diff --git a/pyfpdb/EverleafToFpdb.py b/pyfpdb/EverleafToFpdb.py index 6ed2b6ba..ee4942f1 100755 --- a/pyfpdb/EverleafToFpdb.py +++ b/pyfpdb/EverleafToFpdb.py @@ -158,7 +158,7 @@ or None if we fail to get the info """ # 2008/11/10 3:58:52 ET #TODO: Do conversion from GMT to ET #TODO: Need some date functions to convert to different timezones (Date::Manip for perl rocked for this) - hand.starttime = time.strptime(m.group('DATETIME'), "%Y/%m/%d - %H:%M:%S") + hand.starttime = datetime.datetime.strptime(m.group('DATETIME'), "%Y/%m/%d - %H:%M:%S") return def readPlayerStacks(self, hand): diff --git a/pyfpdb/FulltiltToFpdb.py b/pyfpdb/FulltiltToFpdb.py index a84f683c..f7b834a6 100755 --- a/pyfpdb/FulltiltToFpdb.py +++ b/pyfpdb/FulltiltToFpdb.py @@ -124,7 +124,7 @@ follow : whether to tail -f the input""" hand.handid = m.group('HID') hand.tablename = m.group('TABLE') - hand.starttime = time.strptime(m.group('DATETIME'), "%H:%M:%S ET - %Y/%m/%d") + hand.starttime = datetime.datetime.strptime(m.group('DATETIME'), "%H:%M:%S ET - %Y/%m/%d") hand.maxseats = 8 # assume 8-max until we see otherwise if m.group('TABLEATTRIBUTES'): m2 = re.search("(deep )?(\d+)( max)?", m.group('TABLEATTRIBUTES')) diff --git a/pyfpdb/fpdb_db.py b/pyfpdb/fpdb_db.py index 583ecfc8..e0ccd813 100644 --- a/pyfpdb/fpdb_db.py +++ b/pyfpdb/fpdb_db.py @@ -172,27 +172,20 @@ class fpdb_db: raise fpdb_simple.FpdbError("MySQL connection failed") elif backend==self.PGSQL: import psycopg2 - import psycopg2.extensions + import psycopg2.extensions psycopg2.extensions.register_type(psycopg2.extensions.UNICODE) # If DB connection is made over TCP, then the variables # host, user and password are required - # print "host=%s user=%s pass=%s." % (host, user, password) - if self.host and self.user and self.password: - try: - self.db = psycopg2.connect(host = host, - user = user, - password = password, - database = database) - except: - raise fpdb_simple.FpdbError("PostgreSQL connection failed") # For local domain-socket connections, only DB name is # needed, and everything else is in fact undefined and/or # flat out wrong + if self.host == "localhost" or self.host == "127.0.0.1": + self.db = psycopg2.connect(database = database) else: - try: - self.db = psycopg2.connect(database = database) - except: - raise fpdb_simple.FpdbError("PostgreSQL connection failed") + self.db = psycopg2.connect(host = host, + user = user, + password = password, + database = database) else: raise fpdb_simple.FpdbError("unrecognised database backend:"+backend) self.cursor=self.db.cursor() diff --git a/pyfpdb/fpdb_save_to_db.py b/pyfpdb/fpdb_save_to_db.py index 0dbcbf61..3c99d084 100644 --- a/pyfpdb/fpdb_save_to_db.py +++ b/pyfpdb/fpdb_save_to_db.py @@ -26,13 +26,14 @@ MYSQL_INNODB = 2 PGSQL = 3 SQLITE = 4 -fastStoreHudCache = False # set this to True to test the new storeHudCache routine +#fastStoreHudCache = False # set this to True to test the new storeHudCache routine +# +#saveActions = True # set this to False to avoid storing action data +# # Pros: speeds up imports +# # Cons: no action data is saved, so you need to keep the hand histories +# # variance not available on stats page +# # no graphs -saveActions = True # set this to False to avoid storing action data - # Pros: speeds up imports - # Cons: no action data is saved, so you need to keep the hand histories - # variance not available on stats page - # : No graphs #stores a stud/razz hand into the database def ring_stud(config, backend, db, cursor, base, category, site_hand_no, gametype_id, hand_start_time ,names, player_ids, start_cashes, antes, card_values, card_suits, winnings, rakes diff --git a/pyfpdb/test_fpdb_simple.py b/pyfpdb/test_fpdb_simple.py index 463e704e..3d9615cb 100755 --- a/pyfpdb/test_fpdb_simple.py +++ b/pyfpdb/test_fpdb_simple.py @@ -16,24 +16,12 @@ def testPokerStarsHHDate(): datetime.datetime(2008,9,7,11,23,14)) ) -def testFullTiltHHDate(): - sitngo1 = "Full Tilt Poker Game #10311865543: $1 + $0.25 Sit & Go (78057629), Table 1 - 25/50 - No Limit Hold'em - 0:07:45 ET - 2009/01/29" - cash1 = "Full Tilt Poker Game #9403951181: Table CR - tay - $0.05/$0.10 - No Limit Hold'em - 9:40:20 ET - 2008/12/09" - cash2 = "Full Tilt Poker Game #9468383505: Table Bike (deep 6) - $0.05/$0.10 - No Limit Hold'em - 5:09:36 ET - 2008/12/13" - - result = fpdb_simple.parseHandStartTime(sitngo1,"ftp") - assert result==datetime.datetime(2009,1,29,05,07,45) - result = fpdb_simple.parseHandStartTime(cash1,"ftp") - assert result==datetime.datetime(2008,12,9,14,40,20) - result = fpdb_simple.parseHandStartTime(cash2,"ftp") - assert result==datetime.datetime(2008,12,13,10,9,36) - - def testTableDetection(): - result = Tables.clean_title("French (deep)") - assert result == "French" - result = Tables.clean_title("French (deep) - $0.25/$0.50 - No Limit Hold'em - Logged In As xxxx") - assert result == "French" - - for (header, site, result) in tuples: - yield checkDateParse, header, site, result +#def testTableDetection(): +# result = Tables.clean_title("French (deep)") +# assert result == "French" +# result = Tables.clean_title("French (deep) - $0.25/$0.50 - No Limit Hold'em - Logged In As xxxx") +# assert result == "French" +# +# for (header, site, result) in tuples: +# yield checkDateParse, header, site, result