From 2ecfbf6c2d3261abe9ef02bd47a16bdc88e1a00d Mon Sep 17 00:00:00 2001 From: eblade Date: Tue, 4 Nov 2008 05:02:41 -0500 Subject: [PATCH 1/3] fpdb_import: auto-import bases it's decisions to check files on file-size changes rather than mtime - could you guys check it out in nix and other poker sites, and tell me if that breaks anything? HUD: if update() errors due to not enough stat windows being available (ie, your broken site converter tells us we have a 6 max table, but there are people in seats 7-10), it will re-assess the table as a 10-max add StatWindow.relocate(x,y) --- pyfpdb/Hud.py | 18 ++++++++++++++++-- pyfpdb/fpdb_import.py | 7 ++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index f1d0cfae..9dca15d8 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -160,7 +160,10 @@ class Hud: # create the stat windows for i in range(1, self.max + 1): (x, y) = loc[adj[i]] - self.stat_windows[i] = Stat_Window(game = config.supported_games[self.poker_game], + if self.stat_windows.has_key(i): + self.stat_windows[i].relocate(x, y) + else: + self.stat_windows[i] = Stat_Window(game = config.supported_games[self.poker_game], parent = self, table = self.table, x = x, @@ -185,7 +188,13 @@ class Hud: def update(self, hand, config, stat_dict): self.hand = hand # this is the last hand, so it is available later for s in stat_dict.keys(): - self.stat_windows[stat_dict[s]['seat']].player_id = stat_dict[s]['player_id'] + try: + self.stat_windows[stat_dict[s]['seat']].player_id = stat_dict[s]['player_id'] + except: # omg, we have more seats than stat windows .. damn poker sites with incorrect max seating info .. let's force 10 here + self.max = 10 + self.create(hand, config) + self.stat_windows[stat_dict[s]['seat']].player_id = stat_dict[s]['player_id'] + for r in range(0, config.supported_games[self.poker_game].rows): for c in range(0, config.supported_games[self.poker_game].cols): this_stat = config.supported_games[self.poker_game].stats[self.stats[r][c]] @@ -283,6 +292,11 @@ class Stat_Window: else: top.set_decorated(1) top.move(x, y) + + def relocate(self, x, y): + self.x = x + self.table.x + self.y = y + self.table.y + self.window.move(self.x, self.y) def __init__(self, parent, game, table, seat, x, y, player_id, font): self.parent = parent # Hud object that this stat window belongs to diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index 4a855d1d..b5c1dd3e 100755 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -147,12 +147,13 @@ class Importer: try: lastupdate = self.updated[file] # print "Is " + str(stat_info.st_mtime) + " > " + str(lastupdate) - if stat_info.st_mtime > lastupdate: + #if stat_info.st_mtime > lastupdate: + if stat_info.st_size > lastupdate: self.import_file_dict(file) - self.updated[file] = time() + self.updated[file] = stat_info.st_size except: # print "Adding " + str(file) + " at approx " + str(time()) - self.updated[file] = time() + self.updated[file] = 0 # This is now an internal function that should not be called directly. def import_file_dict(self, file): From 22831cc8c6173dffdf22bcc42d8a5cb3b61d97a8 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 5 Nov 2008 15:04:04 -0500 Subject: [PATCH 2/3] added get_converter to support Carl's importer change --- pyfpdb/Configuration.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index 01521fb0..bdc5f356 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -480,7 +480,10 @@ class Config: ( 0, 280), (121, 280), ( 46, 30) ) return locations - + def get_converter(self, site): + if not self.supported_sites.has_key(site): + return None + return self.supported_sites[site].converter if __name__== "__main__": c = Config() @@ -528,3 +531,4 @@ if __name__== "__main__": print "paths = ", c.get_default_paths("PokerStars") print "colors = ", c.get_default_colors("PokerStars") print "locs = ", c.get_locations("PokerStars", 8) + print "converter = ", c.get_converter("Everleaf") From a41aec44dde9660b0dc47ed7a3a7949eacd99439 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 5 Nov 2008 16:52:47 -0500 Subject: [PATCH 3/3] added set/get _sit_parameters to Config + removed keep_above in Hud --- pyfpdb/Configuration.py | 50 ++++++++++++++++++++++++++++++++++++++--- pyfpdb/Hud.py | 2 +- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index bdc5f356..5e599d4b 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -480,10 +480,52 @@ class Config: ( 0, 280), (121, 280), ( 46, 30) ) return locations - def get_converter(self, site): + def get_site_parameters(self, site): + """Returns a dict of the site parameters for the specified site""" if not self.supported_sites.has_key(site): return None - return self.supported_sites[site].converter + parms = {} + parms["converter"] = self.supported_sites[site].converter + parms["decoder"] = self.supported_sites[site].decoder + parms["hudbgcolor"] = self.supported_sites[site].hudbgcolor + parms["hudfgcolor"] = self.supported_sites[site].hudfgcolor + parms["hudopacity"] = self.supported_sites[site].hudopacity + parms["screen_name"] = self.supported_sites[site].screen_name + parms["site_path"] = self.supported_sites[site].site_path + parms["table_finder"] = self.supported_sites[site].table_finder + parms["HH_path"] = self.supported_sites[site].HH_path + return parms + + def set_site_parameters(self, site_name, converter = None, decoder = None, + hudbgcolor = None, hudfgcolor = None, + hudopacity = None, screen_name = None, + site_path = None, table_finder = None, + HH_path = None): + """Sets the specified site parameters for the specified site.""" + site_node = self.get_site_node(site_name) + if not db_node == None: + if not converter == None: site_node.setAttribute("converter", converter) + if not decoder == None: site_node.setAttribute("decoder", decoder) + if not hudbgcolor == None: site_node.setAttribute("hudbgcolor", hudbgcolor) + if not hudfgcolor == None: site_node.setAttribute("hudfgcolor", hudfgcolor) + if not hudopacity == None: site_node.setAttribute("hudopacity", hudopacity) + if not screen_name == None: site_node.setAttribute("screen_name", screen_name) + if not site_path == None: site_node.setAttribute("site_path", site_path) + if not table_finder == None: site_node.setAttribute("table_finder", table_finder) + if not HH_path == None: site_node.setAttribute("HH_path", HH_path) + + if self.supported_databases.has_key(db_name): + if not converter == None: self.supported_sites[site].converter = converter + if not decoder == None: self.supported_sites[site].decoder = decoder + if not hudbgcolor == None: self.supported_sites[site].hudbgcolor = hudbgcolor + if not hudfgcolor == None: self.supported_sites[site].hudfgcolor = hudfgcolor + if not hudopacity == None: self.supported_sites[site].hudopacity = hudopacity + if not screen_name == None: self.supported_sites[site].screen_name = screen_name + if not site_path == None: self.supported_sites[site].site_path = site_path + if not table_finder == None: self.supported_sites[site].table_finder = table_finder + if not HH_path == None: self.supported_sites[site].HH_path = HH_path + return + if __name__== "__main__": c = Config() @@ -531,4 +573,6 @@ if __name__== "__main__": print "paths = ", c.get_default_paths("PokerStars") print "colors = ", c.get_default_colors("PokerStars") print "locs = ", c.get_locations("PokerStars", 8) - print "converter = ", c.get_converter("Everleaf") + for site in c.supported_sites.keys(): + print "site = ", site, + print c.get_site_parameters(site) \ No newline at end of file diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index 9dca15d8..ebea595a 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -385,7 +385,7 @@ class Popup_window: self.window = gtk.Window() self.window.set_decorated(0) self.window.set_gravity(gtk.gdk.GRAVITY_STATIC) - self.window.set_keep_above(1) +# self.window.set_keep_above(1) self.window.set_title("popup") self.window.set_property("skip-taskbar-hint", True) self.window.set_transient_for(parent.get_toplevel())