From 0a563cad53ecf58ad4e4c706730312760bb5beb8 Mon Sep 17 00:00:00 2001 From: Eratosthenes Date: Tue, 3 Nov 2009 21:51:10 -0500 Subject: [PATCH 1/2] Added get_table_info method. --- pyfpdb/Database.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index ba71310b..2cee8336 100755 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -292,6 +292,21 @@ class Database: row = c.fetchone() return row + def get_table_info(self, hand_id): + c = self.connection.cursor() + c.execute(self.sql.query['get_table_name'], (hand_id, )) + row = c.fetchone() + l = list(row) + if row[3] == "ring": # cash game + l.append(None) + l.append(None) + return l + else: # tournament + tour_no, tab_no = re.split(" ", row[0]) + l.append(tour_no) + l.append(tab_no) + return l + def get_last_hand(self): c = self.connection.cursor() c.execute(self.sql.query['get_last_hand']) From 3265766c77fcbd59786a62c340174a1473a4e880 Mon Sep 17 00:00:00 2001 From: Eratosthenes Date: Tue, 3 Nov 2009 21:52:40 -0500 Subject: [PATCH 2/2] Cleanup of HUD_main prior to integrating newTables code. --- pyfpdb/HUD_main.py | 65 ++++++++++++++++------------------------------ 1 file changed, 23 insertions(+), 42 deletions(-) diff --git a/pyfpdb/HUD_main.py b/pyfpdb/HUD_main.py index 8ccc194e..001d0034 100755 --- a/pyfpdb/HUD_main.py +++ b/pyfpdb/HUD_main.py @@ -109,7 +109,7 @@ class HUD_main(object): self.main_window.set_title("HUD Main Window") self.main_window.show_all() - def destroy(*args): # call back for terminating the main eventloop + def destroy(self, *args): # call back for terminating the main eventloop gtk.main_quit() def kill_hud(self, event, table): @@ -190,7 +190,6 @@ class HUD_main(object): # need their own access to the database, but should open their own # if it is required. self.db_connection = Database.Database(self.config) - tourny_finder = re.compile('(\d+) (\d+)') # get hero's screen names and player ids self.hero, self.hero_ids = {}, {} @@ -207,65 +206,47 @@ class HUD_main(object): if new_hand_id == "": # blank line means quit self.destroy() break # this thread is not always killed immediately with gtk.main_quit() + # get basic info about the new hand from the db # if there is a db error, complain, skip hand, and proceed try: - (table_name, max, poker_game, type, site_id) = self.db_connection.get_table_name(new_hand_id) - - cards = self.db_connection.get_cards(new_hand_id) - comm_cards = self.db_connection.get_common_cards(new_hand_id) - if comm_cards != {}: # stud! - cards['common'] = comm_cards['common'] + (table_name, max, poker_game, type, site_id, tour_number, tab_number) = \ + self.db_connection.get_table_info(new_hand_id) except Exception, err: - err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "db error: skipping "+str(new_hand_id)+" "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) - if new_hand_id: # new_hand_id is none if we had an error prior to the store - sys.stderr.write("Database error %s in hand %d. Skipping.\n" % (err, int(new_hand_id))) + print "db error: skipping %s" % new_hand_id + sys.stderr.write("Database error: could not find hand %s.\n" % new_hand_id) continue if type == "tour": # hand is from a tournament - mat_obj = tourny_finder.search(table_name) - if mat_obj: - (tour_number, tab_number) = mat_obj.group(1, 2) - temp_key = tour_number - else: # tourney, but can't get number and table - print "could not find tournament: skipping " - #sys.stderr.write("Could not find tournament %d in hand %d. Skipping.\n" % (int(tour_number), int(new_hand_id))) - continue - + temp_key = tour_number else: temp_key = table_name # Update an existing HUD if temp_key in self.hud_dict: - try: - # get stats using hud's specific params - self.db_connection.init_hud_stat_vars( self.hud_dict[temp_key].hud_params['hud_days'] - , self.hud_dict[temp_key].hud_params['h_hud_days']) - stat_dict = self.db_connection.get_stats_from_hand(new_hand_id, type, self.hud_dict[temp_key].hud_params, self.hero_ids[site_id]) - except: - err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "db get_stats error: skipping "+str(new_hand_id)+" "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) - if new_hand_id: # new_hand_id is none if we had an error prior to the store - sys.stderr.write("Database get_stats error %s in hand %d. Skipping.\n" % (err, int(new_hand_id))) - continue + # get stats using hud's specific params and get cards + self.db_connection.init_hud_stat_vars( self.hud_dict[temp_key].hud_params['hud_days'] + , self.hud_dict[temp_key].hud_params['h_hud_days']) + stat_dict = self.db_connection.get_stats_from_hand(new_hand_id, type, self.hud_dict[temp_key].hud_params, self.hero_ids[site_id]) self.hud_dict[temp_key].stat_dict = stat_dict + cards = self.db_connection.get_cards(new_hand_id) + comm_cards = self.db_connection.get_common_cards(new_hand_id) + if comm_cards != {}: # stud! + cards['common'] = comm_cards['common'] self.hud_dict[temp_key].cards = cards [aw.update_data(new_hand_id, self.db_connection) for aw in self.hud_dict[temp_key].aux_windows] self.update_HUD(new_hand_id, temp_key, self.config) # Or create a new HUD else: - try: - # get stats using default params - self.db_connection.init_hud_stat_vars( self.hud_params['hud_days'], self.hud_params['h_hud_days'] ) - stat_dict = self.db_connection.get_stats_from_hand(new_hand_id, type, self.hud_params, self.hero_ids[site_id]) - except: - err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "db get_stats error: skipping "+str(new_hand_id)+" "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) - if new_hand_id: # new_hand_id is none if we had an error prior to the store - sys.stderr.write("Database get_stats error %s in hand %d. Skipping.\n" % (err, int(new_hand_id))) - continue + # get stats using default params--also get cards + self.db_connection.init_hud_stat_vars( self.hud_params['hud_days'], self.hud_params['h_hud_days'] ) + stat_dict = self.db_connection.get_stats_from_hand(new_hand_id, type, self.hud_params, self.hero_ids[site_id]) + cards = self.db_connection.get_cards(new_hand_id) + comm_cards = self.db_connection.get_common_cards(new_hand_id) + if comm_cards != {}: # stud! + cards['common'] = comm_cards['common'] + if type == "tour": tablewindow = Tables.discover_tournament_table(self.config, tour_number, tab_number) else: