From bb446ad95572eb03eefd0d2d3e438728eb4c5a03 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 18 Dec 2009 20:25:20 +0100 Subject: [PATCH 001/301] Stakes added for limit games. blinds now supported for > 1000 Freerolls supported --> buyin fixed to $0+$0 Table indentification for tourney and ring games supported --> HUD --- pyfpdb/PartyPokerToFpdb.py | 42 ++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/pyfpdb/PartyPokerToFpdb.py b/pyfpdb/PartyPokerToFpdb.py index ba597881..35daca14 100755 --- a/pyfpdb/PartyPokerToFpdb.py +++ b/pyfpdb/PartyPokerToFpdb.py @@ -47,22 +47,22 @@ class PartyPoker(HandHistoryConverter): # $5 USD NL Texas Hold'em - Saturday, July 25, 07:53:52 EDT 2009 # NL Texas Hold'em $1 USD Buy-in Trny:45685440 Level:8 Blinds-Antes(600/1 200 -50) - Sunday, May 17, 11:25:07 MSKS 2009 re_GameInfoRing = re.compile(""" - (?P\$|)\s*(?P[0-9,]+)\s*(?:USD)?\s* - (?P(NL|PL|))\s+ + (?P\$|)\s*(?P[.,0-9]+)\s*(?:USD)?\s* + (?P(NL|PL|))\s* (?P(Texas\ Hold\'em|Omaha)) \s*\-\s* (?P.+) """, re.VERBOSE) re_GameInfoTrny = re.compile(""" - (?P(NL|PL|))\s+ + (?P(NL|PL|))\s* (?P(Texas\ Hold\'em|Omaha))\s+ - (?P\$?[.0-9]+)\s*(?PUSD)?\s*Buy-in\s+ + (?:(?P\$?[.,0-9]+)\s*(?PUSD)?\s*Buy-in\s+)? Trny:\s?(?P\d+)\s+ Level:\s*(?P\d+)\s+ - Blinds(?:-Antes)?\( - (?P[.0-9 ]+)\s* - /(?P[.0-9 ]+) - (?:\s*-\s*(?P[.0-9 ]+)\$?)? + ((Blinds|Stakes)(?:-Antes)?)\( + (?P[,.0-9 ]+)\s* + /(?P[,.0-9 ]+) + (?:\s*-\s*(?P[,.0-9 ]+)\$?)? \) \s*\-\s* (?P.+) @@ -72,10 +72,13 @@ class PartyPoker(HandHistoryConverter): re_PlayerInfo = re.compile(""" Seat\s(?P\d+):\s (?P.*)\s - \(\s*\$?(?P[0-9,.]+)\s*(?:USD|)\s*\) + \(\s*\$?(?P[.,0-9]+)\s*(?:USD|)\s*\) """ , re.VERBOSE) + # Table $250 Freeroll (1810210) Table #309 (Real Money) + # Table Speed #1465003 (Real Money) + re_HandInfo = re.compile(""" ^Table\s+ (?P[^#()]+)\s+ # Regular, Speed, etc @@ -124,7 +127,7 @@ class PartyPoker(HandHistoryConverter): for key in ('CUR_SYM', 'CUR'): subst[key] = re.escape(subst[key]) self.re_PostSB = re.compile( - r"^%(PLYR)s posts small blind \[%(CUR_SYM)s(?P[,.0-9]+) ?%(CUR)s\]\." % subst, + r"^%(PLYR)s posts small blind \[%(CUR_SYM)s(?P[.,0-9]+) ?%(CUR)s\]\." % subst, re.MULTILINE) self.re_PostBB = re.compile( r"^%(PLYR)s posts big blind \[%(CUR_SYM)s(?P[.,0-9]+) ?%(CUR)s\]\." % subst, @@ -133,7 +136,7 @@ class PartyPoker(HandHistoryConverter): r"^%(PLYR)s posts big blind \+ dead \[(?P[.,0-9]+) ?%(CUR_SYM)s\]\." % subst, re.MULTILINE) self.re_Antes = re.compile( - r"^%(PLYR)s posts ante \[%(CUR_SYM)s(?P[.0-9]+) ?%(CUR)s\]" % subst, + r"^%(PLYR)s posts ante \[%(CUR_SYM)s(?P[.,0-9]+) ?%(CUR)s\]" % subst, re.MULTILINE) self.re_HeroCards = re.compile( r"^Dealt to %(PLYR)s \[\s*(?P.+)\s*\]" % subst, @@ -295,20 +298,29 @@ class PartyPoker(HandHistoryConverter): if key == 'BUYIN': # FIXME: it's dirty hack T_T # code below assumes that tournament rake is equal to zero - cur = info[key][0] if info[key][0] not in '0123456789' else '' - hand.buyin = info[key] + '+%s0' % cur + # added handle for freeroll tourney's + # code added for freeroll the buyin is overwritten by $0+$0 + if info[key] == None: #assume freeroll + cur = '$' + hand.buyin = "$0" + '+%s0' % cur + else: + cur = info[key][0] if info[key][0] not in '0123456789' else '' + hand.buyin = info[key] + '+%s0' % cur if key == 'TABLE_ID': hand.tablename = info[key] if key == 'TABLE_NUM': # FIXME: there is no such property in Hand class - hand.table_num = info[key] + if info[key] != None: + hand.tablename = info[key] + hand.tourNo = info['TABLE_ID'] if key == 'COUNTED_SEATS': hand.counted_seats = info[key] if key == 'LEVEL': hand.level = info[key] if key == 'PLAY' and info['PLAY'] != 'Real': # if realy party doesn's save play money hh - hand.gametype['currency'] = 'play' + hand.gametype['currency'] = 'play' + def readButton(self, hand): m = self.re_Button.search(hand.handText) From 545d4f37fb45967e805fc8837422bdd4a9ff8bad Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 19 Dec 2009 10:57:07 +0100 Subject: [PATCH 002/301] Add freeroll support to Pokerstars --- pyfpdb/PokerStarsToFpdb.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index b3463da9..b998bf95 100755 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -40,15 +40,13 @@ class PokerStars(HandHistoryConverter): 'LEGAL_ISO' : "USD|EUR|GBP|CAD|FPP", # legal ISO currency codes 'LS' : "\$|\xe2\x82\xac|" # legal currency symbols - Euro(cp1252, utf-8) } - # Static regexes re_GameInfo = re.compile(u""" PokerStars\sGame\s\#(?P[0-9]+):\s+ (Tournament\s\# # open paren of tournament info (?P\d+),\s - (?P[%(LS)s\+\d\.]+ # here's how I plan to use LS - \s?(?P%(LEGAL_ISO)s)? - )\s)? # close paren of tournament info + # here's how I plan to use LS + (?P([%(LS)s\+\d\.]+\s?(?P%(LEGAL_ISO)s)?)|Freeroll)\s+)? # close paren of tournament info (?PHORSE|8\-Game|HOSE)?\s?\(? (?PHold\'em|Razz|7\sCard\sStud|7\sCard\sStud\sHi/Lo|Omaha|Omaha\sHi/Lo|Badugi|Triple\sDraw\s2\-7\sLowball|5\sCard\sDraw)\s (?PNo\sLimit|Limit|Pot\sLimit)\)?,?\s @@ -148,7 +146,7 @@ class PokerStars(HandHistoryConverter): '7 Card Stud Hi/Lo' : ('stud','studhilo'), 'Badugi' : ('draw','badugi'), 'Triple Draw 2-7 Lowball' : ('draw','27_3draw'), - '5 Card Draw' : ('draw','fivedraw') + '5 Card Draw' : ('draw','fivedraw'), } currencies = { u'€':'EUR', '$':'USD', '':'T$' } # I don't think this is doing what we think. mg will always have all @@ -203,7 +201,10 @@ class PokerStars(HandHistoryConverter): if key == 'TOURNO': hand.tourNo = info[key] if key == 'BUYIN': - hand.buyin = info[key] + if info[key] == 'Freeroll': + hand.buyin = '$0+$0' + else: + hand.buyin = info[key] if key == 'LEVEL': hand.level = info[key] From 3a742148ef7f1b91b8483d7a8fddb45007aef254 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 19 Dec 2009 11:02:45 +0100 Subject: [PATCH 003/301] Close stat window with double-click --- pyfpdb/Hud.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index c9420a8a..944eacd0 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -666,6 +666,9 @@ class Stat_Window: return True if event.button == 1: # left button event + if event.type == gtk.gdk._2BUTTON_PRESS: + self.window.hide() + return True # TODO: make position saving save sizes as well? if event.state & gtk.gdk.SHIFT_MASK: self.window.begin_resize_drag(gtk.gdk.WINDOW_EDGE_SOUTH_EAST, event.button, int(event.x_root), int(event.y_root), event.time) From b3d2a95796bfbe91ad94f359a1b906c1f22dfc53 Mon Sep 17 00:00:00 2001 From: Eric Blade Date: Mon, 30 Nov 2009 21:14:03 +0800 Subject: [PATCH 004/301] fix return tuple in import_file_dict, fix text from autoimport to actually show up in autoimport window --- pyfpdb/fpdb.py | 15 +++++++-------- pyfpdb/fpdb_import.py | 11 ++++++++--- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/pyfpdb/fpdb.py b/pyfpdb/fpdb.py index d5f4faec..b960da05 100755 --- a/pyfpdb/fpdb.py +++ b/pyfpdb/fpdb.py @@ -115,7 +115,7 @@ class fpdb: self.pages.append(new_page) self.tabs.append(event_box) self.tab_names.append(new_tab_name) - + #self.nb.append_page(new_page, gtk.Label(new_tab_name)) self.nb.append_page(page, event_box) self.nb_tabs.append(new_tab_name) @@ -135,12 +135,12 @@ class fpdb: self.nb.set_current_page(tab_no) def create_custom_tab(self, text, nb): - #create a custom tab for notebook containing a + #create a custom tab for notebook containing a #label and a button with STOCK_ICON eventBox = gtk.EventBox() tabBox = gtk.HBox(False, 2) tabLabel = gtk.Label(text) - tabBox.pack_start(tabLabel, False) + tabBox.pack_start(tabLabel, False) eventBox.add(tabBox) if nb.get_n_pages() > 0: @@ -157,7 +157,7 @@ class fpdb: return eventBox def add_icon_to_button(self, button): - iconBox = gtk.HBox(False, 0) + iconBox = gtk.HBox(False, 0) image = gtk.Image() image.set_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_SMALL_TOOLBAR) gtk.Button.set_relief(button, gtk.RELIEF_NONE) @@ -168,8 +168,8 @@ class fpdb: iconBox.pack_start(image, True, False, 0) button.add(iconBox) iconBox.show() - return - + return + # Remove a page from the notebook def remove_tab(self, button, data): (nb, text) = data @@ -183,7 +183,7 @@ class fpdb: #print " removing page", page del self.nb_tabs[page] nb.remove_page(page) - # Need to refresh the widget -- + # Need to refresh the widget -- # This forces the widget to redraw itself. #nb.queue_draw_area(0,0,-1,-1) needed or not?? @@ -752,7 +752,6 @@ This program is licensed under the AGPL3, see docs"""+os.sep+"agpl-3.0.txt") sys.stderr.write("fpdb starting ...") def window_state_event_cb(self, window, event): - print "window_state_event", event if event.changed_mask & gtk.gdk.WINDOW_STATE_ICONIFIED: # -20 = GWL_EXSTYLE can't find it in the pywin32 libs #bits = win32api.GetWindowLong(self.window.window.handle, -20) diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index 19bf18d1..b6cfb821 100644 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -359,10 +359,15 @@ class Importer: # print "file",counter," updated", os.path.basename(file), stat_info.st_size, self.updatedsize[file], stat_info.st_mtime, self.updatedtime[file] try: if not os.path.isdir(file): - self.caller.addText("\n"+file) + self.caller.addText("\n"+os.path.basename(file)) except KeyError: # TODO: What error happens here? pass - self.import_file_dict(self.database, file, self.filelist[file][0], self.filelist[file][1], None) + (stored, duplicates, partial, errors, ttime) = self.import_file_dict(self.database, file, self.filelist[file][0], self.filelist[file][1], None) + try: + if not os.path.isdir(file): + self.caller.addText(" %d stored, %d duplicates, %d partial, %d errors (time = %d)" % (stored, duplicates, partial, errors, ttime)) + except KeyError: # TODO: Again, what error happens here? fix when we find out .. + pass self.updatedsize[file] = stat_info.st_size self.updatedtime[file] = time() else: @@ -393,7 +398,7 @@ class Importer: if os.path.isdir(file): self.addToDirList[file] = [site] + [filter] - return + return (0,0,0,0,0) conv = None (stored, duplicates, partial, errors, ttime) = (0, 0, 0, 0, 0) From d3d8b4afbb426bf3af65e50e66706712d19fab68 Mon Sep 17 00:00:00 2001 From: Eric Blade Date: Mon, 30 Nov 2009 22:08:30 +0800 Subject: [PATCH 005/301] ttime = float with us to ms resolution --- pyfpdb/fpdb_import.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index b6cfb821..541b018f 100644 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -21,7 +21,7 @@ import os # todo: remove this once import_dir is in fpdb_import import sys -from time import time, strftime, sleep +from time import time, strftime, sleep, clock import traceback import math import datetime @@ -101,6 +101,8 @@ class Importer: self.NEWIMPORT = Configuration.NEWIMPORT + clock() # init clock in windows + #Set functions def setCallHud(self, value): self.callHud = value @@ -365,7 +367,7 @@ class Importer: (stored, duplicates, partial, errors, ttime) = self.import_file_dict(self.database, file, self.filelist[file][0], self.filelist[file][1], None) try: if not os.path.isdir(file): - self.caller.addText(" %d stored, %d duplicates, %d partial, %d errors (time = %d)" % (stored, duplicates, partial, errors, ttime)) + self.caller.addText(" %d stored, %d duplicates, %d partial, %d errors (time = %f)" % (stored, duplicates, partial, errors, ttime)) except KeyError: # TODO: Again, what error happens here? fix when we find out .. pass self.updatedsize[file] = stat_info.st_size @@ -477,10 +479,13 @@ class Importer: self.pos_in_file[file] = inputFile.tell() inputFile.close() + x = clock() (stored, duplicates, partial, errors, ttime, handsId) = self.import_fpdb_lines(db, self.lines, starttime, file, site, q) db.commit() - ttime = time() - starttime + y = clock() + ttime = y - x + #ttime = time() - starttime if q is None: log.info("Total stored: %(stored)d\tduplicates:%(duplicates)d\terrors:%(errors)d\ttime:%(ttime)s" % locals()) From c38efd61ef0f8bbd588b3761896f33507f003461 Mon Sep 17 00:00:00 2001 From: Eric Blade Date: Mon, 30 Nov 2009 22:51:47 +0800 Subject: [PATCH 006/301] trap IOError on hud pipe write when hud closed without autoimport stopping, turn off hud --- pyfpdb/fpdb_import.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index 541b018f..d735de04 100644 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -564,7 +564,11 @@ class Importer: #print "call to HUD here. handsId:",handsId #pipe the Hands.id out to the HUD # print "fpdb_import: sending hand to hud", handsId, "pipe =", self.caller.pipe_to_hud - self.caller.pipe_to_hud.stdin.write("%s" % (handsId) + os.linesep) + try: + self.caller.pipe_to_hud.stdin.write("%s" % (handsId) + os.linesep) + except IOError: # hud closed + self.callHud = False + pass # continue import without hud except Exceptions.DuplicateError: duplicates += 1 db.rollback() From 48c36c319bb0a53618f98d9322d4d3b749add7ba Mon Sep 17 00:00:00 2001 From: sqlcoder Date: Tue, 1 Dec 2009 05:43:29 +0800 Subject: [PATCH 007/301] improve rebuild hudcache and indexes dialogs --- pyfpdb/Database.py | 17 ++++++++----- pyfpdb/fpdb.py | 63 +++++++++++++++++++++++++++++++++++++--------- 2 files changed, 62 insertions(+), 18 deletions(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index cd6ad298..1c44bb61 100755 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -58,7 +58,8 @@ class Database: PGSQL = 3 SQLITE = 4 - hero_hudstart_def = '1999-12-31' # default for length of Hero's stats in HUD + hero_hudstart_def = '1999-12-31' # default for length of Hero's stats in HUD + villain_hudstart_def = '1999-12-31' # default for length of Villain's stats in HUD # Data Structures for index and foreign key creation # drop_code is an int with possible values: 0 - don't drop for bulk import @@ -1324,7 +1325,7 @@ class Database: self.dropAllForeignKeys() self.createAllForeignKeys() - def rebuild_hudcache(self, start=None): + def rebuild_hudcache(self, h_start=None, v_start=None): """clears hudcache and rebuilds from the individual handsplayers records""" try: @@ -1344,13 +1345,17 @@ class Database: if p_id: self.hero_ids[site_id] = int(p_id) - if start is None: - start = self.hero_hudstart_def + if h_start is None: + h_start = self.hero_hudstart_def + if v_start is None: + v_start = self.villain_hudstart_def if self.hero_ids == {}: where = "" else: - where = "where hp.playerId not in " + str(tuple(self.hero_ids.values())) \ - + " or h.handStart > '" + start + "'" + where = "where ( hp.playerId not in " + str(tuple(self.hero_ids.values())) \ + + " and h.handStart > '" + v_start + "')" \ + + " or ( hp.playerId in " + str(tuple(self.hero_ids.values())) \ + + " and h.handStart > '" + h_start + "')" rebuild_sql = self.sql.query['rebuildHudCache'].replace('', where) self.get_cursor().execute(self.sql.query['clearHudCache']) diff --git a/pyfpdb/fpdb.py b/pyfpdb/fpdb.py index b960da05..7da93e87 100755 --- a/pyfpdb/fpdb.py +++ b/pyfpdb/fpdb.py @@ -334,27 +334,48 @@ class fpdb: diastring = "Please confirm that you want to re-create the HUD cache." self.dia_confirm.format_secondary_text(diastring) - hb = gtk.HBox(True, 1) + hb1 = gtk.HBox(True, 1) + self.h_start_date = gtk.Entry(max=12) + self.h_start_date.set_text( self.db.get_hero_hudcache_start() ) + lbl = gtk.Label(" Hero's cache starts: ") + btn = gtk.Button() + btn.set_image(gtk.image_new_from_stock(gtk.STOCK_INDEX, gtk.ICON_SIZE_BUTTON)) + btn.connect('clicked', self.__calendar_dialog, self.h_start_date) + + hb1.pack_start(lbl, expand=True, padding=3) + hb1.pack_start(self.h_start_date, expand=True, padding=2) + hb1.pack_start(btn, expand=False, padding=3) + self.dia_confirm.vbox.add(hb1) + hb1.show_all() + + hb2 = gtk.HBox(True, 1) self.start_date = gtk.Entry(max=12) self.start_date.set_text( self.db.get_hero_hudcache_start() ) - lbl = gtk.Label(" Hero's cache starts: ") + lbl = gtk.Label(" Villains' cache starts: ") btn = gtk.Button() btn.set_image(gtk.image_new_from_stock(gtk.STOCK_INDEX, gtk.ICON_SIZE_BUTTON)) btn.connect('clicked', self.__calendar_dialog, self.start_date) - hb.pack_start(lbl, expand=True, padding=3) - hb.pack_start(self.start_date, expand=True, padding=2) - hb.pack_start(btn, expand=False, padding=3) - self.dia_confirm.vbox.add(hb) - hb.show_all() + hb2.pack_start(lbl, expand=True, padding=3) + hb2.pack_start(self.start_date, expand=True, padding=2) + hb2.pack_start(btn, expand=False, padding=3) + self.dia_confirm.vbox.add(hb2) + hb2.show_all() response = self.dia_confirm.run() - self.dia_confirm.destroy() if response == gtk.RESPONSE_YES: - self.db.rebuild_hudcache( self.start_date.get_text() ) + lbl = gtk.Label(" Rebuilding HUD Cache ... ") + self.dia_confirm.vbox.add(lbl) + lbl.show() + while gtk.events_pending(): + gtk.main_iteration_do(False) + + self.db.rebuild_hudcache( self.h_start_date.get_text(), self.start_date.get_text() ) elif response == gtk.RESPONSE_NO: print 'User cancelled rebuilding hud cache' + self.dia_confirm.destroy() + self.release_global_lock() def dia_rebuild_indexes(self, widget, data=None): @@ -368,14 +389,28 @@ class fpdb: self.dia_confirm.format_secondary_text(diastring) response = self.dia_confirm.run() - self.dia_confirm.destroy() if response == gtk.RESPONSE_YES: + lbl = gtk.Label(" Rebuilding Indexes ... ") + self.dia_confirm.vbox.add(lbl) + lbl.show() + while gtk.events_pending(): + gtk.main_iteration_do(False) self.db.rebuild_indexes() + + lbl.set_text(" Cleaning Database ... ") + while gtk.events_pending(): + gtk.main_iteration_do(False) self.db.vacuumDB() + + lbl.set_text(" Analyzing Database ... ") + while gtk.events_pending(): + gtk.main_iteration_do(False) self.db.analyzeDB() elif response == gtk.RESPONSE_NO: print 'User cancelled rebuilding db indexes' + self.dia_confirm.destroy() + self.release_global_lock() def __calendar_dialog(self, widget, entry): @@ -397,10 +432,13 @@ class fpdb: d.show_all() def __get_dates(self): - t1 = self.start_date.get_text() + t1 = self.h_start_date.get_text() if t1 == '': t1 = '1970-01-01' - return (t1) + t2 = self.start_date.get_text() + if t2 == '': + t2 = '1970-01-01' + return (t1, t2) def __get_date(self, widget, calendar, entry, win): # year and day are correct, month is 0..11 @@ -834,6 +872,7 @@ This program is licensed under the AGPL3, see docs"""+os.sep+"agpl-3.0.txt") gtk.main() return 0 + if __name__ == "__main__": me = fpdb() me.main() From 117c377fff326a6e558164370a11c79406370830 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 3 Dec 2009 16:46:10 +0800 Subject: [PATCH 008/301] Repair recent damage to Options --- pyfpdb/Options.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pyfpdb/Options.py b/pyfpdb/Options.py index 9859e7d2..ab226124 100644 --- a/pyfpdb/Options.py +++ b/pyfpdb/Options.py @@ -36,8 +36,11 @@ def fpdb_options(): action="store_true", help="Indicates program was restarted with a different path (only allowed once).") parser.add_option("-i", "--infile", - dest="config", default=None, + dest="infile", default="Slartibartfast", help="Input file") + parser.add_option("-k", "--konverter", + dest="hhc", default="PokerStarsToFpdb", + help="Module name for Hand History Converter") (options, argv) = parser.parse_args() return (options, argv) From 5913c9092a58bc69ba00270109d829459b281e2d Mon Sep 17 00:00:00 2001 From: Eric Blade Date: Thu, 3 Dec 2009 20:22:33 +0800 Subject: [PATCH 009/301] Add some basic error handling at the very beginning of startup, to deal with missing imports and such, update about box --- pyfpdb/fpdb.py | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/pyfpdb/fpdb.py b/pyfpdb/fpdb.py index 7da93e87..239bfbec 100755 --- a/pyfpdb/fpdb.py +++ b/pyfpdb/fpdb.py @@ -37,14 +37,20 @@ if os.name == 'nt' and sys.version[0:3] not in ('2.5', '2.6') and '-r' not in sy os.execvpe('python.exe', ('python.exe', 'fpdb.py', '-r'), os.environ) # first arg is ignored (name of program being run) else: print "\npython 2.5 not found, please install python 2.5 or 2.6 for fpdb\n" - exit + raw_input("Press ENTER to continue.") + exit() else: pass #print "debug - not changing path" if os.name == 'nt': - import win32api - import win32con + try: + import win32api + import win32con + except ImportError: + print "We appear to be running in Windows, but the Windows Python Extensions are not loading. Please install the PYWIN32 package from http://sourceforge.net/projects/pywin32/" + raw_input("Press ENTER to continue.") + exit() print "Python " + sys.version[0:3] + '...\n' @@ -62,9 +68,14 @@ if not options.errorsToConsole: import logging -import pygtk -pygtk.require('2.0') -import gtk +try: + import pygtk + pygtk.require('2.0') + import gtk +except: + print "Unable to load PYGTK modules required for GUI. Please install PyCairo, PyGObject, and PyGTK from www.pygtk.org." + raw_input("Press ENTER to continue.") + exit() import interlocks @@ -196,14 +207,14 @@ class fpdb: def dia_about(self, widget, data=None): #self.warning_box("About FPDB:\n\nFPDB was originally created by a guy named Steffen, sometime in 2008, \nand is mostly worked on these days by people named Eratosthenes, s0rrow, _mt, EricBlade, sqlcoder, and other strange people.\n\n", "ABOUT FPDB") dia = gtk.AboutDialog() - dia.set_name("FPDB") + dia.set_name("Free Poker Database (FPDB)") dia.set_version(VERSION) - dia.set_copyright("2008-2009, Steffen, Eratosthenes, s0rrow, EricBlade, _mt, sqlcoder, and others") + dia.set_copyright("2008-2010, Steffen, Eratosthenes, s0rrow, EricBlade, _mt, sqlcoder, Bostik, and others") dia.set_comments("GTK AboutDialog comments here") dia.set_license("GPL v3") dia.set_website("http://fpdb.sourceforge.net/") - dia.set_authors("Steffen, Eratosthenes, s0rrow, EricBlade, _mt, and others") - dia.set_program_name("FPDB") + dia.set_authors("Steffen, Eratosthenes, s0rrow, EricBlade, _mt, sqlcoder, Bostik, and others") + dia.set_program_name("Free Poker Database (FPDB)") dia.run() dia.destroy() From a6429957fed38e9de81486640688a2a66fbbb64f Mon Sep 17 00:00:00 2001 From: Eric Blade Date: Thu, 3 Dec 2009 20:24:12 +0800 Subject: [PATCH 010/301] comment out some prints, apparently mysqlcoder and my editors do not agree well with each other on spacing. --- pyfpdb/Hud.py | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index 944eacd0..ae20212a 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -173,26 +173,26 @@ class Hud: item = gtk.CheckMenuItem(' All Levels') self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('P',10000)) - setattr(self, 'h_aggBBmultItem10000', item) - # + setattr(self, 'h_aggBBmultItem10000', item) + # item = gtk.MenuItem('For #Seats:') self.aggMenu.append(item) - # + # item = gtk.CheckMenuItem(' Any Number') self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('P','A')) setattr(self, 'h_seatsStyleOptionA', item) - # + # item = gtk.CheckMenuItem(' Custom') self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('P','C')) - setattr(self, 'h_seatsStyleOptionC', item) - # + setattr(self, 'h_seatsStyleOptionC', item) + # item = gtk.CheckMenuItem(' Exact') self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('P','E')) - setattr(self, 'h_seatsStyleOptionE', item) - # + setattr(self, 'h_seatsStyleOptionE', item) + # item = gtk.MenuItem('Since:') self.aggMenu.append(item) # @@ -242,26 +242,26 @@ class Hud: item = gtk.CheckMenuItem(' All Levels') self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('O',10000)) - setattr(self, 'aggBBmultItem10000', item) - # + setattr(self, 'aggBBmultItem10000', item) + # item = gtk.MenuItem('For #Seats:') self.aggMenu.append(item) - # + # item = gtk.CheckMenuItem(' Any Number') self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('O','A')) setattr(self, 'seatsStyleOptionA', item) - # + # item = gtk.CheckMenuItem(' Custom') self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('O','C')) - setattr(self, 'seatsStyleOptionC', item) - # + setattr(self, 'seatsStyleOptionC', item) + # item = gtk.CheckMenuItem(' Exact') self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('O','E')) - setattr(self, 'seatsStyleOptionE', item) - # + setattr(self, 'seatsStyleOptionE', item) + # item = gtk.MenuItem('Since:') self.aggMenu.append(item) # @@ -358,7 +358,7 @@ class Hud: def change_max_seats(self, widget): if self.max != widget.ms: - print 'change_max_seats', widget.ms + #print 'change_max_seats', widget.ms self.max = widget.ms try: self.kill() @@ -402,7 +402,7 @@ class Hud: else: param = 'seats_style' prefix = '' - + if style == 'A' and getattr(self, prefix+'seatsStyleOptionA').get_active(): self.hud_params[param] = 'A' getattr(self, prefix+'seatsStyleOptionC').set_active(False) @@ -681,7 +681,7 @@ class Stat_Window: return True def kill_popup(self, popup): - print "remove popup", popup + #print "remove popup", popup self.popups.remove(popup) popup.window.destroy() From 3f30878bbd6963c02c909ce13e283017b1e14d82 Mon Sep 17 00:00:00 2001 From: Worros Date: Fri, 4 Dec 2009 17:56:56 +0800 Subject: [PATCH 011/301] [NEWIMPORT] Partially fix number of hands parsed reporting --- pyfpdb/HandHistoryConverter.py | 16 +++++++++------- pyfpdb/fpdb_import.py | 4 ++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index 41b7b3d0..27bb9b1a 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -71,6 +71,8 @@ follow : whether to tail -f the input""" self.out_path = out_path self.processedHands = [] + self.numHands = 0 + self.numErrors = 0 # Tourney object used to store TourneyInfo when called to deal with a Summary file self.tourney = None @@ -135,17 +137,17 @@ Otherwise, finish at EOF. return try: - numHands = 0 - numErrors = 0 + self.numHands = 0 + self.numErrors = 0 if self.follow: #TODO: See how summary files can be handled on the fly (here they should be rejected as before) log.info("Tailing '%s'" % self.in_path) for handText in self.tailHands(): try: self.processHand(handText) - numHands += 1 + self.numHands += 1 except FpdbParseError, e: - numErrors += 1 + self.numErrors += 1 log.warning("Failed to convert hand %s" % e.hid) log.warning("Exception msg: '%s'" % str(e)) log.debug(handText) @@ -160,13 +162,13 @@ Otherwise, finish at EOF. try: self.processedHands.append(self.processHand(handText)) except FpdbParseError, e: - numErrors += 1 + self.numErrors += 1 log.warning("Failed to convert hand %s" % e.hid) log.warning("Exception msg: '%s'" % str(e)) log.debug(handText) - numHands = len(handsList) + self.numHands = len(handsList) endtime = time.time() - log.info("Read %d hands (%d failed) in %.3f seconds" % (numHands, numErrors, endtime - starttime)) + log.info("Read %d hands (%d failed) in %.3f seconds" % (self.numHands, self.numErrors, endtime - starttime)) else: self.parsedObjectType = "Summary" summaryParsingStatus = self.readSummaryInfo(handsList) diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index d735de04..7a25fc70 100644 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -434,8 +434,12 @@ class Importer: self.pos_in_file[file] = hhc.getLastCharacterRead() for hand in handlist: + #try, except duplicates here? #hand.prepInsert() hand.insert(self.database) + + errors = getattr(hhc, 'numErrors') + stored = getattr(hhc, 'numHands') else: # conversion didn't work # TODO: appropriate response? From 7212760c67348661b018fba74e15559875112373 Mon Sep 17 00:00:00 2001 From: Worros Date: Sat, 5 Dec 2009 20:15:28 +0800 Subject: [PATCH 012/301] Newimport - comments for a getPosition function. Decided that I needed some test functions before I kick on --- pyfpdb/DerivedStats.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index c244f019..a63a3636 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -149,6 +149,42 @@ class DerivedStats(): for i, card in enumerate(hcs[:7], 1): self.handsplayers[player[1]]['card%s' % i] = Card.encodeCard(card) + # position, + #Stud 3rd street card test + # denny501: brings in for $0.02 + # s0rrow: calls $0.02 + # TomSludge: folds + # Soroka69: calls $0.02 + # rdiezchang: calls $0.02 (Seat 8) + # u.pressure: folds (Seat 1) + # 123smoothie: calls $0.02 + # gashpor: calls $0.02 + # tourneyTypeId, + # startCards, + # street0_3BChance,street0_3BDone, + # otherRaisedStreet1-4 + # foldToOtherRaisedStreet1-4 + # stealAttemptChance,stealAttempted, + # foldBbToStealChance,foldedBbToSteal, + # foldSbToStealChance,foldedSbToSteal, + # foldToStreet1-4CBChance, foldToStreet1-4CBDone, + # street1-4CheckCallRaiseChance, street1-4CheckCallRaiseDone, + + # Additional stats + # 3betSB, 3betBB + # Squeeze, Ratchet? + + + def getPosition(hand, seat): + """Returns position value like 'B', 'S', 0, 1, ...""" + # Flop/Draw games with blinds + # Need a better system??? + # -2 BB - B (all) + # -1 SB - S (all) + # 0 Button + # 1 Cutoff + # 2 Hijack + def assembleHudCache(self, hand): pass From b3f1fc2f8c70b48db5c1cf21cccbaaf28f4c7c83 Mon Sep 17 00:00:00 2001 From: Worros Date: Sat, 5 Dec 2009 20:18:47 +0800 Subject: [PATCH 013/301] Add beginings of test for sawShowdown - unfinished. Some sort of weird commit problem going on. Conmmitiing to work on htat --- pyfpdb/test_PokerStars.py | 44 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/pyfpdb/test_PokerStars.py b/pyfpdb/test_PokerStars.py index 6c97c2d4..f7959134 100644 --- a/pyfpdb/test_PokerStars.py +++ b/pyfpdb/test_PokerStars.py @@ -74,12 +74,52 @@ def testFlopImport(): # """regression-test-files/tour/Stars/Flop/NLHE-USD-MTT-5r-200710.txt""", site="PokerStars") importer.addBulkImportImportFileOrDir( """regression-test-files/cash/Stars/Flop/PLO8-6max-USD-0.01-0.02-200911.txt""", site="PokerStars") + #HID - 36185273365 + # Besides the horrible play it contains lots of useful cases + # Preflop: raise, then 3bet chance for seat 2 + # Flop: Checkraise by hero, 4bet chance not taken by villain + # Turn: Turn continuation bet by hero, called + # River: hero (continuation bets?) all-in and is not called + importer.addBulkImportImportFileOrDir( + """regression-test-files/cash/Stars/Flop/NLHE-6max-USD-0.05-0.10-200912.Stats-comparision.txt""", site="PokerStars") importer.setCallHud(False) (stored, dups, partial, errs, ttime) = importer.runImport() + print "DEBUG: stored: %s dups: %s partial: %s errs: %s ttime: %s" %(stored, dups, partial, errs, ttime) importer.clearFileList() - # Should actually do some testing here - assert 1 == 1 + q = """SELECT + s.name, + g.category, + g.base, + g.type, + g.limitType, + g.hilo, + round(g.smallBlind / 100.0,2) as sb, + round(g.bigBlind / 100.0,2) as bb, + round(g.smallBet / 100.0,2) as SB, + round(g.bigBet / 100.0,2) as BB, + s.currency, + hp.playerId, + hp.sawShowdown +FROM + Hands as h, + Sites as s, + Gametypes as g, + HandsPlayers as hp, + Players as p +WHERE + h.siteHandNo = 36185273365 +and g.id = h.gametypeid +and hp.handid = h.id +and p.id = hp.playerid +and s.id = p.siteid""" + c = db.get_cursor() + c.execute(q) + result = c.fetchall() + print "DEBUG: result: %s" %result + + + assert 1 == 0 def testStudImport(): db.recreate_tables() From 9cade444727b768950d9c4bf1e572ce40f46b7c5 Mon Sep 17 00:00:00 2001 From: sqlcoder Date: Sun, 6 Dec 2009 06:20:44 +0800 Subject: [PATCH 014/301] move print message to log --- pyfpdb/Database.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 1c44bb61..36fdd2d2 100755 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -474,8 +474,9 @@ class Database: else: h_seats_min, h_seats_max = 0, 10 print "bad h_seats_style value:", h_seats_style - print "opp seats style", seats_style, "hero seats style", h_seats_style - print "opp seats:", seats_min, seats_max, " hero seats:", h_seats_min, h_seats_max + log.info("opp seats style %s %d %d hero seats style %s %d %d" + % (seats_style, seats_min, seats_max + ,h_seats_style, h_seats_min, h_seats_max) ) if hud_style == 'S' or h_hud_style == 'S': self.get_stats_from_hand_session(hand, stat_dict, hero_id From 1d53e32f1e07cce028075680e0df7df19eb26dd6 Mon Sep 17 00:00:00 2001 From: Mika Bostrom Date: Sun, 6 Dec 2009 20:08:27 +0800 Subject: [PATCH 015/301] Enclose dict key lookup in try-except block Some recent changes moved the dictionary access outside try-except block again. Widen the block enough again. --- pyfpdb/HUD_main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/HUD_main.py b/pyfpdb/HUD_main.py index 7e2d5fa6..108b89c7 100755 --- a/pyfpdb/HUD_main.py +++ b/pyfpdb/HUD_main.py @@ -159,10 +159,10 @@ class HUD_main(object): # function idle_func() to be run by the gui thread, at its leisure. def idle_func(): gtk.gdk.threads_enter() - self.hud_dict[table_name].update(new_hand_id, config) + try: + self.hud_dict[table_name].update(new_hand_id, config) # The HUD could get destroyed in the above call ^^, which leaves us with a KeyError here vv # if we ever get an error we need to expect ^^ then we need to handle it vv - Eric - try: [aw.update_gui(new_hand_id) for aw in self.hud_dict[table_name].aux_windows] except KeyError: pass From 68b4ebdb573b529fa675ef5de730649ce4f86175 Mon Sep 17 00:00:00 2001 From: Worros Date: Sun, 6 Dec 2009 22:52:45 +0800 Subject: [PATCH 016/301] [NEWIMPORT] Fix sawShowdown stat --- pyfpdb/DerivedStats.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index a63a3636..e4072d8a 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -231,8 +231,9 @@ class DerivedStats(): pas = set.union(self.pfba(actions) - self.pfba(actions, l=('folds',)), alliners) self.hands['playersAtShowdown'] = len(pas) - for player in pas: - self.handsplayers[player]['sawShowdown'] = True + if self.hands['playersAtShowdown'] > 1: + for player in pas: + self.handsplayers[player]['sawShowdown'] = True def streetXRaises(self, hand): # self.actions[street] is a list of all actions in a tuple, contining the action as the second element From d4989fcd1173ea8b2a33ddc7606bc28be8ad762d Mon Sep 17 00:00:00 2001 From: Worros Date: Sun, 6 Dec 2009 22:56:29 +0800 Subject: [PATCH 017/301] Make test file use real database. Please note this could be destructive --- pyfpdb/HUD_config.test.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/HUD_config.test.xml b/pyfpdb/HUD_config.test.xml index 52905a70..1a5f77fa 100644 --- a/pyfpdb/HUD_config.test.xml +++ b/pyfpdb/HUD_config.test.xml @@ -574,7 +574,7 @@ Left-Drag to Move" - + From 135a6eaf202caaedf589b4c88846c6b227d8bce0 Mon Sep 17 00:00:00 2001 From: Worros Date: Sun, 6 Dec 2009 22:57:27 +0800 Subject: [PATCH 018/301] Add test for Stars sawShowdown. Test currently fails in the old import code and passes on NEWIMPORT Tests for uncalled allin bet on river, which has been erronously marked as showdown previously --- pyfpdb/test_PokerStars.py | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/pyfpdb/test_PokerStars.py b/pyfpdb/test_PokerStars.py index f7959134..e3e45c35 100644 --- a/pyfpdb/test_PokerStars.py +++ b/pyfpdb/test_PokerStars.py @@ -87,19 +87,12 @@ def testFlopImport(): print "DEBUG: stored: %s dups: %s partial: %s errs: %s ttime: %s" %(stored, dups, partial, errs, ttime) importer.clearFileList() + col = { 'sawShowdown': 2 + } + q = """SELECT s.name, - g.category, - g.base, - g.type, - g.limitType, - g.hilo, - round(g.smallBlind / 100.0,2) as sb, - round(g.bigBlind / 100.0,2) as bb, - round(g.smallBet / 100.0,2) as SB, - round(g.bigBet / 100.0,2) as BB, - s.currency, - hp.playerId, + p.name, hp.sawShowdown FROM Hands as h, @@ -116,10 +109,10 @@ and s.id = p.siteid""" c = db.get_cursor() c.execute(q) result = c.fetchall() - print "DEBUG: result: %s" %result - - - assert 1 == 0 + for row, data in enumerate(result): + print "DEBUG: result[%s]: %s" %(row, result[row]) + # Assert if any sawShowdown = True + assert result[row][col['sawShowdown']] == 0 def testStudImport(): db.recreate_tables() From 3584e6dcc1e9ef396dd59f15f7436dfd6f2e0104 Mon Sep 17 00:00:00 2001 From: Worros Date: Sun, 6 Dec 2009 23:02:07 +0800 Subject: [PATCH 019/301] [NEWIMPORT] Add call to HUD for auto import Make sure the matching db_handid is recorded in the Hand object for later use --- pyfpdb/Hand.py | 5 +++-- pyfpdb/fpdb_import.py | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pyfpdb/Hand.py b/pyfpdb/Hand.py index efa9c0b6..9ff78249 100644 --- a/pyfpdb/Hand.py +++ b/pyfpdb/Hand.py @@ -54,6 +54,7 @@ class Hand(object): self.starttime = 0 self.handText = handText self.handid = 0 + self.dbid_hands = 0 self.tablename = "" self.hero = "" self.maxseats = None @@ -218,8 +219,8 @@ db: a connected fpdb_db object""" # seats TINYINT NOT NULL, hh['seats'] = len(sqlids) - handid = db.storeHand(hh) - db.storeHandsPlayers(handid, sqlids, self.stats.getHandsPlayers()) + self.dbid_hands = db.storeHand(hh) + db.storeHandsPlayers(self.dbid_hands, sqlids, self.stats.getHandsPlayers()) # HandsActions - all actions for all players for all streets - self.actions # HudCache data can be generated from HandsActions (HandsPlayers?) # Tourneys ? diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index 7a25fc70..760e1f01 100644 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -437,6 +437,11 @@ class Importer: #try, except duplicates here? #hand.prepInsert() hand.insert(self.database) + if self.callHud and hand.dbid_hands != 0: + #print "DEBUG: call to HUD: handsId: %s" % hand.dbid_hands + #pipe the Hands.id out to the HUD + # print "fpdb_import: sending hand to hud", handsId, "pipe =", self.caller.pipe_to_hud + self.caller.pipe_to_hud.stdin.write("%s" % (hand.dbid_hands) + os.linesep) errors = getattr(hhc, 'numErrors') stored = getattr(hhc, 'numHands') From eaa698eb1a288354aa855b8f1b89eb47ab6c2733 Mon Sep 17 00:00:00 2001 From: sqlcoder Date: Sat, 12 Dec 2009 20:08:48 +0800 Subject: [PATCH 020/301] default guiprefs window to larger size --- pyfpdb/fpdb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/fpdb.py b/pyfpdb/fpdb.py index 239bfbec..10daeffe 100755 --- a/pyfpdb/fpdb.py +++ b/pyfpdb/fpdb.py @@ -224,7 +224,7 @@ class fpdb: gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT)) - dia.set_default_size(500, 500) + dia.set_default_size(700, 500) prefs = GuiPrefs.GuiPrefs(self.config, self.window, dia.vbox) response = dia.run() if response == gtk.RESPONSE_ACCEPT: From 2470b9a292f30d7090eb16e842948660cc94d0c4 Mon Sep 17 00:00:00 2001 From: sqlcoder Date: Sat, 12 Dec 2009 20:09:58 +0800 Subject: [PATCH 021/301] add name to nodes --- pyfpdb/GuiPrefs.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pyfpdb/GuiPrefs.py b/pyfpdb/GuiPrefs.py index ada9cb51..b85b3f6a 100755 --- a/pyfpdb/GuiPrefs.py +++ b/pyfpdb/GuiPrefs.py @@ -91,10 +91,15 @@ class GuiPrefs: #iter = self.configStore.append( parent, [node.nodeValue, None] ) iter = None if node.nodeType != node.TEXT_NODE and node.nodeType != node.COMMENT_NODE: + name = "" iter = self.configStore.append( parent, [node, setting, value] ) if node.hasAttributes(): for i in xrange(node.attributes.length): self.configStore.append( iter, [node, node.attributes.item(i).localName, node.attributes.item(i).value] ) + if node.attributes.item(i).localName in ('site_name', 'game_name', 'stat_name', 'name', 'db_server', 'site'): + name = " " + node.attributes.item(i).value + if name != "": + self.configStore.set_value(iter, 1, setting+name) if node.hasChildNodes(): for elem in node.childNodes: self.addTreeRows(iter, elem) @@ -156,7 +161,7 @@ if __name__=="__main__": gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT)) - dia.set_default_size(500, 500) + dia.set_default_size(700, 500) prefs = GuiPrefs(config, win, dia.vbox) response = dia.run() if response == gtk.RESPONSE_ACCEPT: From c8734604c770b06085a82bc335dc632e24ca411d Mon Sep 17 00:00:00 2001 From: Carl Gherardi Date: Sun, 13 Dec 2009 13:47:14 +0800 Subject: [PATCH 022/301] [NEWIMPORT] Enable printInsert, disable hud pipe --- pyfpdb/fpdb_import.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index 760e1f01..ca321de1 100644 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -435,13 +435,13 @@ class Importer: for hand in handlist: #try, except duplicates here? - #hand.prepInsert() + hand.prepInsert(self.database) hand.insert(self.database) if self.callHud and hand.dbid_hands != 0: #print "DEBUG: call to HUD: handsId: %s" % hand.dbid_hands #pipe the Hands.id out to the HUD - # print "fpdb_import: sending hand to hud", handsId, "pipe =", self.caller.pipe_to_hud - self.caller.pipe_to_hud.stdin.write("%s" % (hand.dbid_hands) + os.linesep) + print "fpdb_import: sending hand to hud", handsId, "pipe =", self.caller.pipe_to_hud + #self.caller.pipe_to_hud.stdin.write("%s" % (hand.dbid_hands) + os.linesep) errors = getattr(hhc, 'numErrors') stored = getattr(hhc, 'numHands') From e62c47f963335dbc247b13a510574416a6ad0b03 Mon Sep 17 00:00:00 2001 From: Carl Gherardi Date: Sun, 13 Dec 2009 13:48:17 +0800 Subject: [PATCH 023/301] [NEWIMPORT] Move database prep into prepInsert --- pyfpdb/Hand.py | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/pyfpdb/Hand.py b/pyfpdb/Hand.py index 9ff78249..6901340e 100644 --- a/pyfpdb/Hand.py +++ b/pyfpdb/Hand.py @@ -55,6 +55,8 @@ class Hand(object): self.handText = handText self.handid = 0 self.dbid_hands = 0 + self.dbid_pids = None + self.dbid_gt = 0 self.tablename = "" self.hero = "" self.maxseats = None @@ -189,22 +191,21 @@ dealt whether they were seen in a 'dealt to' line self.holecards[street][player] = [open, closed] def prepInsert(self, db): - pass + ##### + # Players, Gametypes, TourneyTypes are all shared functions that are needed for additional tables + # These functions are intended for prep insert eventually + ##### + # Players - base playerid and siteid tuple + self.dbid_pids = db.getSqlPlayerIDs([p[1] for p in self.players], self.siteId) + + #Gametypes + self.dbid_gt = db.getGameTypeId(self.siteId, self.gametype) def insert(self, db): """ Function to insert Hand into database Should not commit, and do minimal selects. Callers may want to cache commits db: a connected fpdb_db object""" - ##### - # Players, Gametypes, TourneyTypes are all shared functions that are needed for additional tables - # These functions are intended for prep insert eventually - ##### - # Players - base playerid and siteid tuple - sqlids = db.getSqlPlayerIDs([p[1] for p in self.players], self.siteId) - - #Gametypes - gtid = db.getGameTypeId(self.siteId, self.gametype) self.stats.getStats(self) @@ -213,14 +214,14 @@ db: a connected fpdb_db object""" ##### hh = self.stats.getHands() - if not db.isDuplicate(gtid, hh['siteHandNo']): + if not db.isDuplicate(self.dbid_gt, hh['siteHandNo']): # Hands - Summary information of hand indexed by handId - gameinfo - hh['gameTypeId'] = gtid + hh['gameTypeId'] = self.dbid_gt # seats TINYINT NOT NULL, - hh['seats'] = len(sqlids) + hh['seats'] = len(self.dbid_pids) self.dbid_hands = db.storeHand(hh) - db.storeHandsPlayers(self.dbid_hands, sqlids, self.stats.getHandsPlayers()) + db.storeHandsPlayers(self.dbid_hands, self.dbid_pids, self.stats.getHandsPlayers()) # HandsActions - all actions for all players for all streets - self.actions # HudCache data can be generated from HandsActions (HandsPlayers?) # Tourneys ? From d0725f8787c29b813664db55d13e3dbeb683e785 Mon Sep 17 00:00:00 2001 From: sqlcoder Date: Sun, 13 Dec 2009 20:55:15 +0800 Subject: [PATCH 024/301] reload profile after editing Prefs if no other tabs are open, otherwise suggest restart --- pyfpdb/fpdb.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pyfpdb/fpdb.py b/pyfpdb/fpdb.py index 10daeffe..bded6069 100755 --- a/pyfpdb/fpdb.py +++ b/pyfpdb/fpdb.py @@ -225,11 +225,19 @@ class fpdb: (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT)) dia.set_default_size(700, 500) + prefs = GuiPrefs.GuiPrefs(self.config, self.window, dia.vbox) response = dia.run() if response == gtk.RESPONSE_ACCEPT: # save updated config self.config.save() + if len(self.nb_tab_names) == 1: + # only main tab open, reload profile + self.load_profile() + else: + self.warning_box("Updated preferences have not been loaded because " + + "windows are open. Re-start fpdb to load them.") + dia.destroy() def dia_create_del_database(self, widget, data=None): @@ -543,7 +551,7 @@ class fpdb: ('LoadProf', None, '_Load Profile (broken)', 'L', 'Load your profile', self.dia_load_profile), ('EditProf', None, '_Edit Profile (todo)', 'E', 'Edit your profile', self.dia_edit_profile), ('SaveProf', None, '_Save Profile (todo)', 'S', 'Save your profile', self.dia_save_profile), - ('Preferences', None, '_Preferences', None, 'Edit your preferences', self.dia_preferences), + ('Preferences', None, 'Pre_ferences', 'F', 'Edit your preferences', self.dia_preferences), ('import', None, '_Import'), ('sethharchive', None, '_Set HandHistory Archive Directory', None, 'Set HandHistory Archive Directory', self.select_hhArchiveBase), ('bulkimp', None, '_Bulk Import', 'B', 'Bulk Import', self.tab_bulk_import), From 0b711628f992e46f6fc21005d9ca80c286436c0c Mon Sep 17 00:00:00 2001 From: Worros Date: Mon, 14 Dec 2009 17:52:08 +0800 Subject: [PATCH 025/301] [NEWIMPORT] Stub remaining HandsPlayers stats --- pyfpdb/Database.py | 113 +++++++++++++++++++++++++++-------------- pyfpdb/DerivedStats.py | 32 ++++++++---- 2 files changed, 98 insertions(+), 47 deletions(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 36fdd2d2..fa80bbc7 100755 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -1608,6 +1608,40 @@ class Database: pdata[p]['street2Bets'], pdata[p]['street3Bets'], pdata[p]['street4Bets'], + pdata[p]['position'], + pdata[p]['tourneyTypeId'], + pdata[p]['startCards'], + pdata[p]['street0_3BChance'], + pdata[p]['street0_3BDone'], + pdata[p]['otherRaisedStreet1'], + pdata[p]['otherRaisedStreet2'], + pdata[p]['otherRaisedStreet3'], + pdata[p]['otherRaisedStreet4'], + pdata[p]['foldToOtherRaisedStreet1'], + pdata[p]['foldToOtherRaisedStreet2'], + pdata[p]['foldToOtherRaisedStreet3'], + pdata[p]['foldToOtherRaisedStreet4'], + pdata[p]['stealAttemptChance'], + pdata[p]['stealAttempted'], + pdata[p]['foldBbToStealChance'], + pdata[p]['foldedBbToSteal'], + pdata[p]['foldSbToStealChance'], + pdata[p]['foldedSbToSteal'], + pdata[p]['foldToStreet1CBChance'], + pdata[p]['foldToStreet1CBDone'], + pdata[p]['foldToStreet2CBChance'], + pdata[p]['foldToStreet2CBDone'], + pdata[p]['foldToStreet3CBChance'], + pdata[p]['foldToStreet3CBDone'], + pdata[p]['foldToStreet4CBChance'], + pdata[p]['foldToStreet4CBDone'], + pdata[p]['street1CheckCallRaiseChance'], + pdata[p]['street1CheckCallRaiseDone'], + pdata[p]['street2CheckCallRaiseChance'], + pdata[p]['street2CheckCallRaiseDone'], + pdata[p]['street3CheckCallRaiseChance'], + pdata[p]['street3CheckCallRaiseDone'], + pdata[p]['street4CheckCallRaiseChance'] ) ) q = """INSERT INTO HandsPlayers ( @@ -1655,9 +1689,50 @@ class Database: street1Bets, street2Bets, street3Bets, - street4Bets + street4Bets, + position, + tourneyTypeId, + startCards, + street0_3BChance, + street0_3BDone, + otherRaisedStreet1, + otherRaisedStreet2, + otherRaisedStreet3, + otherRaisedStreet4, + foldToOtherRaisedStreet1, + foldToOtherRaisedStreet2, + foldToOtherRaisedStreet3, + foldToOtherRaisedStreet4, + stealAttemptChance, + stealAttempted, + foldBbToStealChance, + foldedBbToSteal, + foldSbToStealChance, + foldedSbToSteal, + foldToStreet1CBChance, + foldToStreet1CBDone, + foldToStreet2CBChance, + foldToStreet2CBDone, + foldToStreet3CBChance, + foldToStreet3CBDone, + foldToStreet4CBChance, + foldToStreet4CBDone, + street1CheckCallRaiseChance, + street1CheckCallRaiseDone, + street2CheckCallRaiseChance, + street2CheckCallRaiseDone, + street3CheckCallRaiseChance, + street3CheckCallRaiseDone, + street4CheckCallRaiseChance ) VALUES ( + %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, @@ -1669,42 +1744,6 @@ class Database: %s, %s, %s, %s, %s )""" -# position, -# tourneyTypeId, -# startCards, -# street0_3BChance, -# street0_3BDone, -# otherRaisedStreet1, -# otherRaisedStreet2, -# otherRaisedStreet3, -# otherRaisedStreet4, -# foldToOtherRaisedStreet1, -# foldToOtherRaisedStreet2, -# foldToOtherRaisedStreet3, -# foldToOtherRaisedStreet4, -# stealAttemptChance, -# stealAttempted, -# foldBbToStealChance, -# foldedBbToSteal, -# foldSbToStealChance, -# foldedSbToSteal, -# foldToStreet1CBChance, -# foldToStreet1CBDone, -# foldToStreet2CBChance, -# foldToStreet2CBDone, -# foldToStreet3CBChance, -# foldToStreet3CBDone, -# foldToStreet4CBChance, -# foldToStreet4CBDone, -# street1CheckCallRaiseChance, -# street1CheckCallRaiseDone, -# street2CheckCallRaiseChance, -# street2CheckCallRaiseDone, -# street3CheckCallRaiseChance, -# street3CheckCallRaiseDone, -# street4CheckCallRaiseChance, -# street4CheckCallRaiseDone, - q = q.replace('%s', self.sql.query['placeholder']) #print "DEBUG: inserts: %s" %inserts diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index e4072d8a..c1edb737 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -53,6 +53,27 @@ class DerivedStats(): self.handsplayers[player[1]]['street%dCBChance' %i] = False self.handsplayers[player[1]]['street%dCBDone' %i] = False + #FIXME - Everything below this point is incomplete. + self.handsplayers[player[1]]['position'] = 2 + self.handsplayers[player[1]]['tourneyTypeId'] = 0 + self.handsplayers[player[1]]['startCards'] = 0 + self.handsplayers[player[1]]['street0_3BChance'] = False + self.handsplayers[player[1]]['street0_3BDone'] = False + self.handsplayers[player[1]]['stealAttemptChance'] = False + self.handsplayers[player[1]]['stealAttempted'] = False + self.handsplayers[player[1]]['foldBbToStealChance'] = False + self.handsplayers[player[1]]['foldBbToStealChance'] = False + self.handsplayers[player[1]]['foldSbToStealChance'] = False + self.handsplayers[player[1]]['foldedSbToSteal'] = False + self.handsplayers[player[1]]['foldedBbToSteal'] = False + for i in range(1,5): + self.handsplayers[player[1]]['otherRaisedStreet%d' %i] = False + self.handsplayers[player[1]]['foldToOtherRaisedStreet%d' %i] = False + self.handsplayers[player[1]]['foldToStreet%dCBChance' %i] = False + self.handsplayers[player[1]]['foldToStreet%dCBDone' %i] = False + self.handsplayers[player[1]]['street%dCheckCallRaiseChance' %i] = False + self.handsplayers[player[1]]['street%dCheckCallRaiseDone' %i] = False + self.assembleHands(self.hand) self.assembleHandsPlayers(self.hand) @@ -149,6 +170,7 @@ class DerivedStats(): for i, card in enumerate(hcs[:7], 1): self.handsplayers[player[1]]['card%s' % i] = Card.encodeCard(card) + # position, #Stud 3rd street card test # denny501: brings in for $0.02 @@ -159,16 +181,6 @@ class DerivedStats(): # u.pressure: folds (Seat 1) # 123smoothie: calls $0.02 # gashpor: calls $0.02 - # tourneyTypeId, - # startCards, - # street0_3BChance,street0_3BDone, - # otherRaisedStreet1-4 - # foldToOtherRaisedStreet1-4 - # stealAttemptChance,stealAttempted, - # foldBbToStealChance,foldedBbToSteal, - # foldSbToStealChance,foldedSbToSteal, - # foldToStreet1-4CBChance, foldToStreet1-4CBDone, - # street1-4CheckCallRaiseChance, street1-4CheckCallRaiseDone, # Additional stats # 3betSB, 3betBB From 318cd105518a0798ba2b0758e16b252e94066d45 Mon Sep 17 00:00:00 2001 From: Worros Date: Mon, 14 Dec 2009 18:01:24 +0800 Subject: [PATCH 026/301] [NEWIMPORT] Move HandsPlayers insert statement into SQL.py --- pyfpdb/Database.py | 101 +-------------------------------------------- pyfpdb/SQL.py | 101 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 100 insertions(+), 102 deletions(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index fa80bbc7..408844ae 100755 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -1644,106 +1644,7 @@ class Database: pdata[p]['street4CheckCallRaiseChance'] ) ) - q = """INSERT INTO HandsPlayers ( - handId, - playerId, - startCash, - seatNo, - card1, - card2, - card3, - card4, - card5, - card6, - card7, - winnings, - rake, - totalProfit, - street0VPI, - street1Seen, - street2Seen, - street3Seen, - street4Seen, - sawShowdown, - wonAtSD, - street0Aggr, - street1Aggr, - street2Aggr, - street3Aggr, - street4Aggr, - street1CBChance, - street2CBChance, - street3CBChance, - street4CBChance, - street1CBDone, - street2CBDone, - street3CBDone, - street4CBDone, - wonWhenSeenStreet1, - street0Calls, - street1Calls, - street2Calls, - street3Calls, - street4Calls, - street0Bets, - street1Bets, - street2Bets, - street3Bets, - street4Bets, - position, - tourneyTypeId, - startCards, - street0_3BChance, - street0_3BDone, - otherRaisedStreet1, - otherRaisedStreet2, - otherRaisedStreet3, - otherRaisedStreet4, - foldToOtherRaisedStreet1, - foldToOtherRaisedStreet2, - foldToOtherRaisedStreet3, - foldToOtherRaisedStreet4, - stealAttemptChance, - stealAttempted, - foldBbToStealChance, - foldedBbToSteal, - foldSbToStealChance, - foldedSbToSteal, - foldToStreet1CBChance, - foldToStreet1CBDone, - foldToStreet2CBChance, - foldToStreet2CBDone, - foldToStreet3CBChance, - foldToStreet3CBDone, - foldToStreet4CBChance, - foldToStreet4CBDone, - street1CheckCallRaiseChance, - street1CheckCallRaiseDone, - street2CheckCallRaiseChance, - street2CheckCallRaiseDone, - street3CheckCallRaiseChance, - street3CheckCallRaiseDone, - street4CheckCallRaiseChance - ) - VALUES ( - %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s - )""" - + q = self.sql.query['store_hands_players'] q = q.replace('%s', self.sql.query['placeholder']) #print "DEBUG: inserts: %s" %inserts diff --git a/pyfpdb/SQL.py b/pyfpdb/SQL.py index e38bc122..e670cfa4 100644 --- a/pyfpdb/SQL.py +++ b/pyfpdb/SQL.py @@ -3325,8 +3325,105 @@ class Sql: %s, %s, %s, %s, %s, %s, %s, %s, %s)""" - - + self.query['store_hands_players'] = """INSERT INTO HandsPlayers ( + handId, + playerId, + startCash, + seatNo, + card1, + card2, + card3, + card4, + card5, + card6, + card7, + winnings, + rake, + totalProfit, + street0VPI, + street1Seen, + street2Seen, + street3Seen, + street4Seen, + sawShowdown, + wonAtSD, + street0Aggr, + street1Aggr, + street2Aggr, + street3Aggr, + street4Aggr, + street1CBChance, + street2CBChance, + street3CBChance, + street4CBChance, + street1CBDone, + street2CBDone, + street3CBDone, + street4CBDone, + wonWhenSeenStreet1, + street0Calls, + street1Calls, + street2Calls, + street3Calls, + street4Calls, + street0Bets, + street1Bets, + street2Bets, + street3Bets, + street4Bets, + position, + tourneyTypeId, + startCards, + street0_3BChance, + street0_3BDone, + otherRaisedStreet1, + otherRaisedStreet2, + otherRaisedStreet3, + otherRaisedStreet4, + foldToOtherRaisedStreet1, + foldToOtherRaisedStreet2, + foldToOtherRaisedStreet3, + foldToOtherRaisedStreet4, + stealAttemptChance, + stealAttempted, + foldBbToStealChance, + foldedBbToSteal, + foldSbToStealChance, + foldedSbToSteal, + foldToStreet1CBChance, + foldToStreet1CBDone, + foldToStreet2CBChance, + foldToStreet2CBDone, + foldToStreet3CBChance, + foldToStreet3CBDone, + foldToStreet4CBChance, + foldToStreet4CBDone, + street1CheckCallRaiseChance, + street1CheckCallRaiseDone, + street2CheckCallRaiseChance, + street2CheckCallRaiseDone, + street3CheckCallRaiseChance, + street3CheckCallRaiseDone, + street4CheckCallRaiseChance + ) + VALUES ( + %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s + )""" if db_server == 'mysql': self.query['placeholder'] = u'%s' From 22a0c75adf73920d9270e120ea5b833be1552ff6 Mon Sep 17 00:00:00 2001 From: Worros Date: Mon, 14 Dec 2009 19:03:01 +0800 Subject: [PATCH 027/301] Fix thinko in stub --- pyfpdb/DerivedStats.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index c1edb737..1064a600 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -55,7 +55,7 @@ class DerivedStats(): #FIXME - Everything below this point is incomplete. self.handsplayers[player[1]]['position'] = 2 - self.handsplayers[player[1]]['tourneyTypeId'] = 0 + self.handsplayers[player[1]]['tourneyTypeId'] = 1 self.handsplayers[player[1]]['startCards'] = 0 self.handsplayers[player[1]]['street0_3BChance'] = False self.handsplayers[player[1]]['street0_3BDone'] = False From f527fe60a807cb0f11b4728277cf41bcb59bc663 Mon Sep 17 00:00:00 2001 From: Worros Date: Tue, 15 Dec 2009 22:56:18 +0800 Subject: [PATCH 028/301] Fix a couple of typos --- pyfpdb/fpdb_db.py | 2 +- pyfpdb/fpdb_import.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pyfpdb/fpdb_db.py b/pyfpdb/fpdb_db.py index 8a0ec54e..90c6a98b 100644 --- a/pyfpdb/fpdb_db.py +++ b/pyfpdb/fpdb_db.py @@ -154,7 +154,7 @@ class fpdb_db: if not os.path.isdir(Configuration.DIR_DATABASES) and not database == ":memory:": print "Creating directory: '%s'" % (Configuration.DIR_DATABASES) os.mkdir(Configuration.DIR_DATABASES) - database = os.path.join(Configuration.DIR_DATABASE, database) + database = os.path.join(Configuration.DIR_DATABASES, database) self.db = sqlite3.connect(database, detect_types=sqlite3.PARSE_DECLTYPES ) sqlite3.register_converter("bool", lambda x: bool(int(x))) sqlite3.register_adapter(bool, lambda x: "1" if x else "0") diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index ca321de1..dd46d7c6 100644 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -440,8 +440,8 @@ class Importer: if self.callHud and hand.dbid_hands != 0: #print "DEBUG: call to HUD: handsId: %s" % hand.dbid_hands #pipe the Hands.id out to the HUD - print "fpdb_import: sending hand to hud", handsId, "pipe =", self.caller.pipe_to_hud - #self.caller.pipe_to_hud.stdin.write("%s" % (hand.dbid_hands) + os.linesep) + print "fpdb_import: sending hand to hud", hand.dbid_hands, "pipe =", self.caller.pipe_to_hud + self.caller.pipe_to_hud.stdin.write("%s" % (hand.dbid_hands) + os.linesep) errors = getattr(hhc, 'numErrors') stored = getattr(hhc, 'numHands') From b3d6da833928b8467ecc92cbc69ae2effbbe7bab Mon Sep 17 00:00:00 2001 From: Worros Date: Wed, 16 Dec 2009 22:41:48 +0800 Subject: [PATCH 029/301] [NEWIMPORT] Convert start stack to cents --- pyfpdb/DerivedStats.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index 1064a600..aaaea60a 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -135,7 +135,7 @@ class DerivedStats(): #hand.players = [[seat, name, chips],[seat, name, chips]] for player in hand.players: self.handsplayers[player[1]]['seatNo'] = player[0] - self.handsplayers[player[1]]['startCash'] = player[2] + self.handsplayers[player[1]]['startCash'] = int(100 * player[2]) for i, street in enumerate(hand.actionStreets[2:]): self.seen(self.hand, i+1) From c1464d64ff83147516284965d7dea60dd0293b9e Mon Sep 17 00:00:00 2001 From: Worros Date: Wed, 16 Dec 2009 22:48:38 +0800 Subject: [PATCH 030/301] [NEWIMPORT] Fix startCash fix --- pyfpdb/DerivedStats.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index aaaea60a..c6216306 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -17,6 +17,7 @@ #fpdb modules import Card +from decimal import Decimal DEBUG = False @@ -135,7 +136,7 @@ class DerivedStats(): #hand.players = [[seat, name, chips],[seat, name, chips]] for player in hand.players: self.handsplayers[player[1]]['seatNo'] = player[0] - self.handsplayers[player[1]]['startCash'] = int(100 * player[2]) + self.handsplayers[player[1]]['startCash'] = int(100 * Decimal(player[2])) for i, street in enumerate(hand.actionStreets[2:]): self.seen(self.hand, i+1) From a717eb437c6d9dfdf2ab4772a5bea0078deff2f4 Mon Sep 17 00:00:00 2001 From: Worros Date: Wed, 16 Dec 2009 22:58:54 +0800 Subject: [PATCH 031/301] [NEWIMPOR] Fix insert type for wonAtSD --- pyfpdb/DerivedStats.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index c6216306..88d8b452 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -46,7 +46,7 @@ class DerivedStats(): self.handsplayers[player[1]]['street4Aggr'] = False self.handsplayers[player[1]]['wonWhenSeenStreet1'] = False self.handsplayers[player[1]]['sawShowdown'] = False - self.handsplayers[player[1]]['wonAtSD'] = False + self.handsplayers[player[1]]['wonAtSD'] = 0.0 for i in range(5): self.handsplayers[player[1]]['street%dCalls' % i] = 0 self.handsplayers[player[1]]['street%dBets' % i] = 0 @@ -158,7 +158,7 @@ class DerivedStats(): if self.handsplayers[player]['street1Seen'] == True: self.handsplayers[player]['wonWhenSeenStreet1'] = True if self.handsplayers[player]['sawShowdown'] == True: - self.handsplayers[player]['wonAtSD'] = True + self.handsplayers[player]['wonAtSD'] = 1.0 for player in hand.pot.committed: self.handsplayers[player]['totalProfit'] = int(self.handsplayers[player]['winnings'] - (100*hand.pot.committed[player])) From 5e4cc1c5eb18e589d34b53de3160dc2f0ab2fee3 Mon Sep 17 00:00:00 2001 From: Worros Date: Wed, 16 Dec 2009 23:11:08 +0800 Subject: [PATCH 032/301] [NEWIMPORT] 'correct' the type for wonWhenSeenStreet1 --- pyfpdb/DerivedStats.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index 88d8b452..1a34db1e 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -44,7 +44,7 @@ class DerivedStats(): self.handsplayers[player[1]]['totalProfit'] = 0 self.handsplayers[player[1]]['street4Seen'] = False self.handsplayers[player[1]]['street4Aggr'] = False - self.handsplayers[player[1]]['wonWhenSeenStreet1'] = False + self.handsplayers[player[1]]['wonWhenSeenStreet1'] = 0.0 self.handsplayers[player[1]]['sawShowdown'] = False self.handsplayers[player[1]]['wonAtSD'] = 0.0 for i in range(5): @@ -156,7 +156,7 @@ class DerivedStats(): # Should be fine for split-pots, but won't be accurate for multi-way pots self.handsplayers[player]['rake'] = int(100* hand.rake)/len(hand.collectees) if self.handsplayers[player]['street1Seen'] == True: - self.handsplayers[player]['wonWhenSeenStreet1'] = True + self.handsplayers[player]['wonWhenSeenStreet1'] = 1.0 if self.handsplayers[player]['sawShowdown'] == True: self.handsplayers[player]['wonAtSD'] = 1.0 From 72cf9a61ca3c7fdbdc3d4db2313a9d9427b7202a Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 17 Dec 2009 00:40:36 +0800 Subject: [PATCH 033/301] [NEWIMPORT] Add a commit at the end of the fpdb_import cycle --- pyfpdb/fpdb_import.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index dd46d7c6..3fc35339 100644 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -442,6 +442,7 @@ class Importer: #pipe the Hands.id out to the HUD print "fpdb_import: sending hand to hud", hand.dbid_hands, "pipe =", self.caller.pipe_to_hud self.caller.pipe_to_hud.stdin.write("%s" % (hand.dbid_hands) + os.linesep) + self.database.commit() errors = getattr(hhc, 'numErrors') stored = getattr(hhc, 'numHands') From 03deefc1a348ec19293ef307fe4aedee428f5c48 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 17 Dec 2009 01:55:48 +0800 Subject: [PATCH 034/301] [NEWIMPORT] Fix thinko on insertPlayer Was returning the player name instead of id in the case where the player exists in the database, but wasn't cached already Removing some merge gunge too --- pyfpdb/Database.py | 6 ++++-- pyfpdb/SQL.py | 2 -- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 408844ae..36d5bc93 100755 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -1857,8 +1857,10 @@ class Database: ,(name, site_id)) #Get last id might be faster here. #c.execute ("SELECT id FROM Players WHERE name=%s", (name,)) - tmp = [self.get_last_insert_id(c)] - return tmp[0] + result = self.get_last_insert_id(c) + else: + result = tmp[1] + return result def insertGameTypes(self, row): c = self.get_cursor() diff --git a/pyfpdb/SQL.py b/pyfpdb/SQL.py index e670cfa4..2ccd7f90 100644 --- a/pyfpdb/SQL.py +++ b/pyfpdb/SQL.py @@ -2787,8 +2787,6 @@ class Sql: ,hp.tourneyTypeId ,date_format(h.handStart, 'd%y%m%d') """ -#>>>>>>> 28ca49d592c8e706ad6ee58dd26655bcc33fc5fb:pyfpdb/SQL.py -#""" elif db_server == 'postgresql': self.query['rebuildHudCache'] = """ INSERT INTO HudCache From f829ed937e2dae90352dff3228620375eac52599 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 17 Dec 2009 02:24:57 +0800 Subject: [PATCH 035/301] [NEWIMPORT] Move hud call to after database commit HUD still doesn't quite work, but getting closer - suspect hud_cache rebuild isn't happening --- pyfpdb/fpdb_import.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index 3fc35339..7b3dd4f1 100644 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -432,18 +432,21 @@ class Importer: #This code doesn't do anything yet handlist = hhc.getProcessedHands() self.pos_in_file[file] = hhc.getLastCharacterRead() + to_hud = [] for hand in handlist: #try, except duplicates here? hand.prepInsert(self.database) hand.insert(self.database) if self.callHud and hand.dbid_hands != 0: - #print "DEBUG: call to HUD: handsId: %s" % hand.dbid_hands - #pipe the Hands.id out to the HUD - print "fpdb_import: sending hand to hud", hand.dbid_hands, "pipe =", self.caller.pipe_to_hud - self.caller.pipe_to_hud.stdin.write("%s" % (hand.dbid_hands) + os.linesep) + to_hud.append(hand.dbid_hands) self.database.commit() + #pipe the Hands.id out to the HUD + for hid in to_hud: + print "fpdb_import: sending hand to hud", hand.dbid_hands, "pipe =", self.caller.pipe_to_hud + self.caller.pipe_to_hud.stdin.write("%s" % (hid) + os.linesep) + errors = getattr(hhc, 'numErrors') stored = getattr(hhc, 'numHands') else: From e18af681cb1e31df45a1fae9be1d1e8f29c28ad7 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 17 Dec 2009 15:59:29 +0800 Subject: [PATCH 036/301] Add test hand - Hand cancelled --- ...LO8-6max-USD-0.05-0.10-20090315.Hand-cancelled.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 pyfpdb/regression-test-files/cash/Stars/Flop/LO8-6max-USD-0.05-0.10-20090315.Hand-cancelled.txt diff --git a/pyfpdb/regression-test-files/cash/Stars/Flop/LO8-6max-USD-0.05-0.10-20090315.Hand-cancelled.txt b/pyfpdb/regression-test-files/cash/Stars/Flop/LO8-6max-USD-0.05-0.10-20090315.Hand-cancelled.txt new file mode 100644 index 00000000..9959180c --- /dev/null +++ b/pyfpdb/regression-test-files/cash/Stars/Flop/LO8-6max-USD-0.05-0.10-20090315.Hand-cancelled.txt @@ -0,0 +1,11 @@ +PokerStars Game #25979907808: Omaha Pot Limit ($0.05/$0.10 USD) - 2009/03/15 6:20:33 ET +Table 'Waterman' 6-max Seat #1 is the button +Seat 1: s0rrow ($11.65 in chips) +s0rrow: posts small blind $0.05 +ritalinIV: is sitting out +Hand cancelled +*** SUMMARY *** +Seat 1: s0rrow (button) collected ($0) + + + From ff0872f8def0aecae01758e251fde6c1024c19b6 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 17 Dec 2009 15:53:12 +0800 Subject: [PATCH 037/301] Add some code to kinda detect hand cancellation hhc.readHandInfo(self) hhc.readPlayerStacks(self) hhc.compilePlayerRegexs(self) hhc.markStreets(self) Is the order, the first correctly failing regex is markStreets --- pyfpdb/Hand.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pyfpdb/Hand.py b/pyfpdb/Hand.py index 6901340e..32140256 100644 --- a/pyfpdb/Hand.py +++ b/pyfpdb/Hand.py @@ -54,6 +54,7 @@ class Hand(object): self.starttime = 0 self.handText = handText self.handid = 0 + self.cancelled = False self.dbid_hands = 0 self.dbid_pids = None self.dbid_gt = 0 @@ -263,6 +264,8 @@ If a player has None chips he won't be added.""" log.debug("markStreets:\n"+ str(self.streets)) else: log.error("markstreets didn't match") + log.error(" - Assuming hand cancelled") + self.cancelled = True def checkPlayerExists(self,player): if player not in [p[1] for p in self.players]: @@ -613,6 +616,8 @@ class HoldemOmahaHand(Hand): hhc.readPlayerStacks(self) hhc.compilePlayerRegexs(self) hhc.markStreets(self) + if self.cancelled: + return hhc.readBlinds(self) hhc.readAntes(self) hhc.readButton(self) From 9650fe7a0df68e90b67420926e5236f74bed9796 Mon Sep 17 00:00:00 2001 From: Worros Date: Fri, 18 Dec 2009 10:27:43 +0800 Subject: [PATCH 038/301] [NEWIMPORT] Add stubbed variable to insert --- pyfpdb/Database.py | 3 ++- pyfpdb/SQL.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 36d5bc93..e0bbf70a 100755 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -1641,7 +1641,8 @@ class Database: pdata[p]['street2CheckCallRaiseDone'], pdata[p]['street3CheckCallRaiseChance'], pdata[p]['street3CheckCallRaiseDone'], - pdata[p]['street4CheckCallRaiseChance'] + pdata[p]['street4CheckCallRaiseChance'], + pdata[p]['street4CheckCallRaiseDone'] ) ) q = self.sql.query['store_hands_players'] diff --git a/pyfpdb/SQL.py b/pyfpdb/SQL.py index 2ccd7f90..3e7a2c76 100644 --- a/pyfpdb/SQL.py +++ b/pyfpdb/SQL.py @@ -3402,10 +3402,11 @@ class Sql: street2CheckCallRaiseDone, street3CheckCallRaiseChance, street3CheckCallRaiseDone, - street4CheckCallRaiseChance + street4CheckCallRaiseChance, + street4CheckCallRaiseDone ) VALUES ( - %s, %s, %s, %s, + %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, From ff88823c1a1bb456bf4dbcc4c14c562dd9344fe0 Mon Sep 17 00:00:00 2001 From: Worros Date: Fri, 18 Dec 2009 13:32:09 +0800 Subject: [PATCH 039/301] [NEWIMPORT] Fix syntax to be 2.5 compatible. Python 2.6 enumerate() function contains a useful 'start' paramater, apparently this did not exist in 2.5. Patch frim Mika Bostrom --- pyfpdb/DerivedStats.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index 1a34db1e..5943a10f 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -168,8 +168,10 @@ class DerivedStats(): for player in hand.players: hcs = hand.join_holecards(player[1], asList=True) hcs = hcs + [u'0x', u'0x', u'0x', u'0x', u'0x'] - for i, card in enumerate(hcs[:7], 1): - self.handsplayers[player[1]]['card%s' % i] = Card.encodeCard(card) + #for i, card in enumerate(hcs[:7], 1): #Python 2.6 syntax + # self.handsplayers[player[1]]['card%s' % i] = Card.encodeCard(card) + for i, card in enumerate(hcs[:7]): + self.handsplayers[player[1]]['card%s' % (i+1)] = Card.encodeCard(card) # position, @@ -266,13 +268,17 @@ class DerivedStats(): # Then no bets before the player with initiatives first action on current street # ie. if player on street-1 had initiative # and no donkbets occurred - for i, street in enumerate(hand.actionStreets[2:], start=1): - name = self.lastBetOrRaiser(hand.actionStreets[i]) + + # XXX: enumerate(list, start=x) is python 2.6 syntax; 'start' + # came there + #for i, street in enumerate(hand.actionStreets[2:], start=1): + for i, street in enumerate(hand.actionStreets[2:]: + name = self.lastBetOrRaiser(hand.actionStreets[i+1]) if name: - chance = self.noBetsBefore(hand.actionStreets[i+1], name) - self.handsplayers[name]['street%dCBChance' %i] = True + chance = self.noBetsBefore(hand.actionStreets[i+2], name) + self.handsplayers[name]['street%dCBChance' % (i+1)] = True if chance == True: - self.handsplayers[name]['street%dCBDone' %i] = self.betStreet(hand.actionStreets[i+1], name) + self.handsplayers[name]['street%dCBDone' % (i+1)] = self.betStreet(hand.actionStreets[i+2], name) def seen(self, hand, i): pas = set() From 4c49d7163b4bb335de17c692e53b611c3536a0b8 Mon Sep 17 00:00:00 2001 From: Worros Date: Sat, 19 Dec 2009 10:07:53 +0800 Subject: [PATCH 040/301] [NEWIMPORT] Syntax fix --- pyfpdb/DerivedStats.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index 5943a10f..dbd655a3 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -272,7 +272,7 @@ class DerivedStats(): # XXX: enumerate(list, start=x) is python 2.6 syntax; 'start' # came there #for i, street in enumerate(hand.actionStreets[2:], start=1): - for i, street in enumerate(hand.actionStreets[2:]: + for i, street in enumerate(hand.actionStreets[2:]): name = self.lastBetOrRaiser(hand.actionStreets[i+1]) if name: chance = self.noBetsBefore(hand.actionStreets[i+2], name) From f8dccd43a317fd87b04abc855f3ddf766fe975ea Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 17 Dec 2009 18:42:50 +0800 Subject: [PATCH 041/301] Add ability to import Stars archive files. PokerStars support can provide a HH archive. The format is similar but not the same as a a standard hh format as it contains an additional line "Hand #X" between each hand. Patch adds an option -s to GuiBulkImport, which when specified will strip these lines out and continue parsing. --- pyfpdb/GuiBulkImport.py | 4 ++++ pyfpdb/Hand.py | 1 + pyfpdb/HandHistoryConverter.py | 8 +++++++- pyfpdb/fpdb_import.py | 19 +++++++++++++------ 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/pyfpdb/GuiBulkImport.py b/pyfpdb/GuiBulkImport.py index 7db420c7..16131ab2 100755 --- a/pyfpdb/GuiBulkImport.py +++ b/pyfpdb/GuiBulkImport.py @@ -326,6 +326,8 @@ def main(argv=None): help="How often to print a one-line status report (0 (default) means never)") parser.add_option("-u", "--usage", action="store_true", dest="usage", default=False, help="Print some useful one liners") + parser.add_option("-s", "--starsarchive", action="store_true", dest="starsArchive", default=False, + help="Do the required conversion for Stars Archive format (ie. as provided by support") (options, argv) = parser.parse_args(args = argv) if options.usage == True: @@ -369,6 +371,8 @@ def main(argv=None): importer.setThreads(-1) importer.addBulkImportImportFileOrDir(os.path.expanduser(options.filename), site=options.filtername) importer.setCallHud(False) + if options.starsArchive: + importer.setStarsArchive(True) (stored, dups, partial, errs, ttime) = importer.runImport() importer.clearFileList() print 'GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d in %s seconds - %.0f/sec'\ diff --git a/pyfpdb/Hand.py b/pyfpdb/Hand.py index 32140256..3467216a 100644 --- a/pyfpdb/Hand.py +++ b/pyfpdb/Hand.py @@ -266,6 +266,7 @@ If a player has None chips he won't be added.""" log.error("markstreets didn't match") log.error(" - Assuming hand cancelled") self.cancelled = True + raise FpdbParseError def checkPlayerExists(self,player): if player not in [p[1] for p in self.players]: diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index 27bb9b1a..a18797df 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -57,7 +57,7 @@ class HandHistoryConverter(): codepage = "cp1252" - def __init__(self, in_path = '-', out_path = '-', follow=False, index=0, autostart=True): + def __init__(self, in_path = '-', out_path = '-', follow=False, index=0, autostart=True, starsArchive=False): """\ in_path (default '-' = sys.stdin) out_path (default '-' = sys.stdout) @@ -66,6 +66,7 @@ follow : whether to tail -f the input""" log.info("HandHistory init - %s subclass, in_path '%s'; out_path '%s'" % (self.sitename, in_path, out_path) ) self.index = 0 + self.starsArchive = starsArchive self.in_path = in_path self.out_path = out_path @@ -254,6 +255,11 @@ which it expects to find at self.re_TailSplitHands -- see for e.g. Everleaf.py. self.readFile() self.obs = self.obs.strip() self.obs = self.obs.replace('\r\n', '\n') + if self.starsArchive == True: + log.debug("Converting starsArchive format to readable") + m = re.compile('^Hand #\d+', re.MULTILINE) + self.obs = m.sub('', self.obs) + if self.obs is None or self.obs == "": log.info("Read no hands.") return [] diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index 7b3dd4f1..8921d9d8 100644 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -91,6 +91,7 @@ class Importer: self.settings.setdefault("writeQMaxWait", 10) # not used self.settings.setdefault("dropIndexes", "don't drop") self.settings.setdefault("dropHudCache", "don't drop") + self.settings.setdefault("starsArchive", False) self.writeq = None self.database = Database.Database(self.config, sql = self.sql) @@ -134,6 +135,9 @@ class Importer: def setDropHudCache(self, value): self.settings['dropHudCache'] = value + def setStarsArchive(self, value): + self.settings['starsArchive'] = value + # def setWatchTime(self): # self.updated = time() @@ -425,7 +429,7 @@ class Importer: mod = __import__(filter) obj = getattr(mod, filter_name, None) if callable(obj): - hhc = obj(in_path = file, out_path = out_path, index = 0) # Index into file 0 until changeover + hhc = obj(in_path = file, out_path = out_path, index = 0, starsArchive = self.settings['starsArchive']) # Index into file 0 until changeover if hhc.getStatus() and self.NEWIMPORT == False: (stored, duplicates, partial, errors, ttime) = self.import_fpdb_file(db, out_path, site, q) elif hhc.getStatus() and self.NEWIMPORT == True: @@ -435,11 +439,14 @@ class Importer: to_hud = [] for hand in handlist: - #try, except duplicates here? - hand.prepInsert(self.database) - hand.insert(self.database) - if self.callHud and hand.dbid_hands != 0: - to_hud.append(hand.dbid_hands) + if hand is not None: + #try, except duplicates here? + hand.prepInsert(self.database) + hand.insert(self.database) + if self.callHud and hand.dbid_hands != 0: + to_hud.append(hand.dbid_hands) + else: + log.error("Hand processed but empty") self.database.commit() #pipe the Hands.id out to the HUD From f1e6b597a25a3cc2c91ca1c2fcb13e8488f73f75 Mon Sep 17 00:00:00 2001 From: Gerko de Roo Date: Wed, 23 Dec 2009 21:12:56 +0100 Subject: [PATCH 042/301] search string for table detect changed --- pyfpdb/HandHistoryConverter.py | 2 +- pyfpdb/Tables.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index a18797df..1ea0d203 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -512,7 +512,7 @@ or None if we fail to get the info """ def getTableTitleRe(type, table_name=None, tournament = None, table_number=None): "Returns string to search in windows titles" if type=="tour": - return "%s.+Table\s%s" % (tournament, table_number) + return "%s.+Table.+%s" % (tournament, table_number) else: return table_name diff --git a/pyfpdb/Tables.py b/pyfpdb/Tables.py index ea5dfc4c..28bd313a 100755 --- a/pyfpdb/Tables.py +++ b/pyfpdb/Tables.py @@ -161,7 +161,7 @@ def discover_posix_by_name(c, tablename): def discover_posix_tournament(c, t_number, s_number): """Finds the X window for a client, given tournament and table nos.""" - search_string = "%s.+Table\s%s" % (t_number, s_number) + search_string = "%s.+Table.+%s" % (t_number, s_number) for listing in os.popen('xwininfo -root -tree').readlines(): if re.search(search_string, listing): return decode_xwininfo(c, listing) From 7a17d96a89b2c1af0c848049e4b89b2d853b8685 Mon Sep 17 00:00:00 2001 From: Gerko de Roo Date: Wed, 23 Dec 2009 21:15:55 +0100 Subject: [PATCH 043/301] Added color highlight for stats window. high and low threshold and color can be set in the xml file --- pyfpdb/Configuration.py | 4 ++ pyfpdb/HUD_config.xml.example | 97 ++++++++++++++++++----------------- pyfpdb/Hud.py | 10 ++++ 3 files changed, 63 insertions(+), 48 deletions(-) diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index 996ef60c..117fd0c7 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -267,6 +267,10 @@ class Game: stat.hudprefix = stat_node.getAttribute("hudprefix") stat.hudsuffix = stat_node.getAttribute("hudsuffix") stat.hudcolor = stat_node.getAttribute("hudcolor") + stat.stat_loth = stat_node.getAttribute("stat_loth") + stat.stat_hith = stat_node.getAttribute("stat_hith") + stat.stat_locolor = stat_node.getAttribute("stat_locolor") + stat.stat_hicolor = stat_node.getAttribute("stat_hicolor") self.stats[stat.stat_name] = stat diff --git a/pyfpdb/HUD_config.xml.example b/pyfpdb/HUD_config.xml.example index b1ebd761..a772773e 100644 --- a/pyfpdb/HUD_config.xml.example +++ b/pyfpdb/HUD_config.xml.example @@ -449,59 +449,60 @@ Left-Drag to Move" - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + + diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index ae20212a..00508399 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -632,6 +632,16 @@ class Hud: self.label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(self.colors['hudfgcolor'])) window.label[r][c].modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(this_stat.hudcolor)) + if this_stat.stat_loth != "": + if number[0] < (float(this_stat.stat_loth)/100): + self.label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(self.colors['hudfgcolor'])) + window.label[r][c].modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(this_stat.stat_locolor)) + + if this_stat.stat_hith != "": + if number[0] > (float(this_stat.stat_hith)/100): + self.label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(self.colors['hudfgcolor'])) + window.label[r][c].modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(this_stat.stat_hicolor)) + window.label[r][c].set_text(statstring) if statstring != "xxx": # is there a way to tell if this particular stat window is visible already, or no? window.window.show_all() From 9a145e14ade95b9967069b8dc74ed6e0cbdfa743 Mon Sep 17 00:00:00 2001 From: Gerko de Roo Date: Wed, 23 Dec 2009 21:44:55 +0100 Subject: [PATCH 044/301] Hmm forgot the color reset to default. There must be a better methode --- pyfpdb/Hud.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index 00508399..edb998fc 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -631,7 +631,10 @@ class Hud: if this_stat.hudcolor != "": self.label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(self.colors['hudfgcolor'])) window.label[r][c].modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(this_stat.hudcolor)) - + else: + self.label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(self.colors['hudfgcolor'])) + window.label[r][c].modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#FFFFFF")) + if this_stat.stat_loth != "": if number[0] < (float(this_stat.stat_loth)/100): self.label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(self.colors['hudfgcolor'])) From 1eaa00321bd869aaf44a07907f98442e4acb288e Mon Sep 17 00:00:00 2001 From: grindi Date: Tue, 23 Feb 2010 20:59:27 +0300 Subject: [PATCH 045/301] Prepull commit --- gfx/fpdb_large_icon.ico | Bin 0 -> 4286 bytes packaging/debian/changelog | 6 +- pyfpdb/AlchemyFacilities.py | 116 ++ pyfpdb/AlchemyMappings.py | 464 +++++ pyfpdb/AlchemyTables.py | 438 +++++ pyfpdb/CarbonToFpdb.py | 346 +++- pyfpdb/Card.py | 55 +- pyfpdb/Charset.py | 77 + pyfpdb/Configuration.py | 139 +- pyfpdb/Database.py | 1489 ++++------------- pyfpdb/DerivedStats.py | 274 ++- pyfpdb/EverleafToFpdb.py | 58 +- pyfpdb/Exceptions.py | 8 +- pyfpdb/Filters.py | 291 +++- pyfpdb/FulltiltToFpdb.py | 30 +- pyfpdb/GuiAutoImport.py | 14 +- pyfpdb/GuiBulkImport.py | 21 +- pyfpdb/GuiGraphViewer.py | 72 +- pyfpdb/GuiLogView.py | 15 +- pyfpdb/GuiPlayerStats.py | 60 +- pyfpdb/GuiSessionViewer.py | 6 +- pyfpdb/GuiTableViewer.py | 4 +- pyfpdb/HUD_config.xml.example | 133 +- pyfpdb/HUD_main.py | 115 +- pyfpdb/Hand.py | 85 +- pyfpdb/HandHistoryConverter.py | 101 +- pyfpdb/Hud.py | 41 +- pyfpdb/Mucked.py | 24 +- pyfpdb/Options.py | 10 +- pyfpdb/PartyPokerToFpdb.py | 55 +- pyfpdb/PokerStarsToFpdb.py | 36 +- pyfpdb/SQL.py | 183 +- pyfpdb/Stats.py | 20 +- pyfpdb/TableWindow.py | 22 +- pyfpdb/Tables.py | 3 +- pyfpdb/Tourney.py | 2 +- pyfpdb/WinTables.py | 15 +- pyfpdb/fpdb.py | 222 ++- pyfpdb/fpdb_db.py | 202 --- pyfpdb/fpdb_import.py | 212 +-- pyfpdb/logging.conf | 37 +- pyfpdb/py2exe_setup.py | 151 +- ...HE-6max-USD-0.05-0.10-200912.Allin-pre.txt | 41 + pyfpdb/test2.py | 29 +- pyfpdb/test_Database.py | 6 +- pyfpdb/test_PokerStars.py | 46 +- run_fpdb.bat | 7 + run_fpdb.py | 33 + 48 files changed, 3590 insertions(+), 2224 deletions(-) create mode 100644 gfx/fpdb_large_icon.ico create mode 100644 pyfpdb/AlchemyFacilities.py create mode 100644 pyfpdb/AlchemyMappings.py create mode 100644 pyfpdb/AlchemyTables.py create mode 100644 pyfpdb/Charset.py mode change 100644 => 100755 pyfpdb/PokerStarsToFpdb.py mode change 100644 => 100755 pyfpdb/fpdb.py mode change 100644 => 100755 pyfpdb/fpdb_import.py create mode 100644 pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-6max-USD-0.05-0.10-200912.Allin-pre.txt mode change 100644 => 100755 pyfpdb/test_PokerStars.py create mode 100755 run_fpdb.bat create mode 100755 run_fpdb.py diff --git a/gfx/fpdb_large_icon.ico b/gfx/fpdb_large_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..6be85f1ca732d527e4c63c29812295f762ec392c GIT binary patch literal 4286 zcmc&%2~bm67LC$^<=CUsMKd*J&1fr3Yqx9RD58j{xZ*ZUgBHq?AOZpbT0sz5TnL*A z0TK~qvjIUC7j|qw2p|}?ga9HU%Dzaz011-+?z|r>X{P{-vhA9mI=MIZzIV=j+y6fl z$}Id@vV=l@Q|>OLP}C?C%5n@GqHMz;VTr3T4d?YRWrwH0H|dFfraOcmFW^ zgNCY%dy(3_ul2OQOFr?F)-&pf-7DmRTQ{$kyI&LX}A;V z$-nIFxK^J0BkVsGEs)dB*5A4`+`)1?L|nH)1sS2JydV}r{OM8OtA9IR-snqOHPt^U z=yq)R&d;8vH^IJo3LZZUM%>c7kQC!R=xB4$SWR{QY(>K_uSp9}RNS0#SAOJ;+K86kD0? za{pW*0GLtNE&p1)+4QH4!@<7hkd@+($Z_YSU44I=w$Gm=m?_W4V)8zTiHU#B%gbNf z(o(6;;gqOnWo7@}$;s)f`1ts5-wNL?+pe=x%fxVf=haK5kde$lRh+wc+*i>VyCZ?0 zqphT*^l=%=Jv}{lM4~}XR#qeD?b}{%dwY9MbaeCvk!X|^9vWP1YOLKE;B5jA?_NP% zP6A}41c9f^F@~H(dCpgI_mfsbLt|22U0r>}(9mEnk2gjfIRcW5jPb#Vi4jR|-s7Y7 z_59k?wEe*FJcjq!MVWS1+I6^c!JM3P6_RY>g5S=?B=U~}78VwYUj_zyO$-j~dZ52+ zTeH?Ct#*BV{Ryp2+llX&pOS9a5cxbI;YCUOFSnd+Ec6Aw9!DYVjwgCnk^s36nBePa z5v8U&Z)T!cksPypoed2Q_n4ZVczyiXNvZL_*%Owg$?t#7EhpZzzJ!vZLfE%+=PS*% znxkvhtQ|8pGLCd}KH7FK<~&qB`2~t|BjH|r2t0jS;VK`9#`{O%pZ1O-JGrKH5rZEc0CR<4AzXI!{f(;XEE`+f3qGEn1fN?0SN+?NhuaWQS@sfZj{_l= zAVMMmkx&RJY&Ls<&kt_q^Sg=*3ShmaCeR(7UR*p+&A|KdEQiCP$Hm3{^Aoa@Qg(KB z`>tHNG}KU6hnE3B*gptyw*>(2M*$`#uzfGHBOml{bX8Y})K^t?lWm_oeheDw%S86} z*CLyndt%$$U&nE|Rof?tOcOZg=Jt*2*|U#gBO~EuQ`7j%h6Z5^pWn|ddD8QO$LnsY zsp)DYQCr(lU0&WD-b-w^P4hIU!T~=8-1~)x+c6?5?e44>vYm7d1Cu z@2RW1N#+Ixg4m}yIfdGrwn#NKlX&Uref52PZ8Oq$cXwCv^z`&%1_lzvnVB!kva_p7 z?%(GWr>8$DN=+>&NJ+_moSdASlaP>|6(67ZC^j~ur>2G_tgjC*N={C~zaM1B#oaG2 zD0pr~rAbz-FcWxqNN!YCKBZ3@=oA58217Y0Fz_L{hU7Z)xLl$*Kc6Vd%R_~^x$tXF z4m`=vhrym6*&ZNmL1JP89(!Cvb#))v2a$UNUxk=sAP}h$5gH16ckF;2 zIy%VK(h_9aWO4ZX3442?Bt1RrZA(l3i-v|_S z+SH*CCUac`iv?5@6WFPv1AF!K;K1(P=$N4)VR7OFVQp!NFo=?(BDwy67(a-+yE>&3 z@d!jky#v=X{fKIDlGwk0uin%u(?|US0v6tkh)8sGa)Lux_df>@qT@zJNTyArA$wa} z!pYtqb$4{Y*vJSp^7%tpf4IN5OIlka1Yh6x$lm%k&}h`E=~brA;OUbkZbn9KWrcMcjMT->C+fh+=VId(S4mLJmWnn?sT3Hc4)9HxCWTJlZ{3C?M z#bSKU8pd!P;+ig9S#n5CrK>_2ZxzTPHK1Y;zdOauf>)d zY<5f-lR2K0kN_NfHu2tGc2k@ANrqE-#W?SbWuBFff$xGOJ)L0FW*QkYEhyLYuc2 w20kf1Af+h5kPHi;4cnrR;EnwcP{CFO=SVD&p^dT__tOOl#S3%52Q_T|3&nkXv;Y7A literal 0 HcmV?d00001 diff --git a/packaging/debian/changelog b/packaging/debian/changelog index ec66f4a7..4bacf635 100644 --- a/packaging/debian/changelog +++ b/packaging/debian/changelog @@ -1,8 +1,8 @@ -free-poker-tools (0.12-1) unstable; urgency=low +free-poker-tools (0.12~git20100122) unstable; urgency=low - * New release + * New snapshot release with reworked import code - -- Mika Bostrom Mon, 26 Oct 2009 17:49:07 +0200 + -- Mika Bostrom Fri, 22 Jan 2010 09:25:27 +0200 free-poker-tools (0.11.3+git20091023) unstable; urgency=low diff --git a/pyfpdb/AlchemyFacilities.py b/pyfpdb/AlchemyFacilities.py new file mode 100644 index 00000000..c8284efb --- /dev/null +++ b/pyfpdb/AlchemyFacilities.py @@ -0,0 +1,116 @@ +# -*- coding: utf-8 -*- +from decimal import Decimal + +from sqlalchemy import types +from sqlalchemy.orm.exc import NoResultFound +from sqlalchemy.exc import IntegrityError + +import Card + +class CardColumn(types.TypeDecorator): + """Stores cards as smallints + + Automatically converts values like '9h' to smallint + + >>> CardColumn().process_bind_param( 'Td', '' ) + 22 + >>> CardColumn().process_bind_param( u'Td', '' ) + 22 + >>> CardColumn().process_bind_param( 22, '' ) + 22 + >>> CardColumn().process_result_value( 22, '' ) + 'Td' + """ + + impl = types.SmallInteger + + def process_bind_param(self, value, dialect): + if value is None or isinstance(value, int): + return value + elif isinstance(value, basestring) and len(value) == 2: + return Card.encodeCard(str(value)) + else: + raise Exception, "Incorrect card value: " + repr(value) + + def process_result_value(self, value, dialect): + return Card.valueSuitFromCard( value ) + + +class MoneyColumn(types.TypeDecorator): + """Stores money: bets, pots, etc + + Understands: + Decimal as real amount + int as amount mupliplied by 100 + string as decimal + Returns Decimal + >>> MoneyColumn().process_bind_param( 230, '' ) + 230 + >>> MoneyColumn().process_bind_param( Decimal('2.30'), '' ) + 230 + >>> MoneyColumn().process_bind_param( '2.30', '' ) + 230 + >>> MoneyColumn().process_result_value( 230, '' ) + Decimal('2.3') + """ + + impl = types.Integer + + def process_bind_param(self, value, dialect): + if value is None or isinstance(value, int): + return value + elif isinstance(value, basestring) or isinstance(value, Decimal): + return int(Decimal(value)*100) + else: + raise Exception, "Incorrect amount:" + repr(value) + + def process_result_value(self, value, dialect): + if value is None: + return None + return Decimal(value)/100 + + +class BigIntColumn(types.TypeDecorator, types.Integer): + """Representing db-independent big integer """ + # Integer inheritance required for auto_increment flag + + impl = types.Integer + + def load_dialect_impl(self, dialect): + from sqlalchemy import databases + if dialect.name == 'mysql': + return databases.mysql.MSBigInteger() + elif dialect.name == 'postgres': + return databases.mysql.PGBigInteger() + return types.Integer() + + +class MappedBase(object): + """Provide dummy contrcutor""" + + def __init__(self, **kwargs): + for k, v in kwargs.iteritems(): + setattr(self, k, v) + + def get_columns_names(self): + return [i.name for i in self._sa_class_manager.mapper.c] + +def get_or_create(klass, session, **kwargs): + """ + Looks up an object with the given kwargs, creating one if necessary. + Returns a tuple of (object, created), where created is a boolean + specifying whether an object was created. + """ + assert kwargs, \ + 'get_or_create() must be passed at least one keyword argument' + try: + return session.query(klass).filter_by(**kwargs).one(), False + except NoResultFound: + try: + obj = klass(**kwargs) + session.add(obj) + session.flush() + return obj, True + except IntegrityError: + return session.query(klass).filter_by(**kwargs).one(), False + diff --git a/pyfpdb/AlchemyMappings.py b/pyfpdb/AlchemyMappings.py new file mode 100644 index 00000000..c2e088a9 --- /dev/null +++ b/pyfpdb/AlchemyMappings.py @@ -0,0 +1,464 @@ +# -*- coding: utf-8 -*- +"""@package AlchemyMappings +This package contains all classes to be mapped and mappers themselves +""" + +import logging +import re +from decimal import Decimal +from sqlalchemy.orm import mapper, relation, reconstructor +from sqlalchemy.sql import select +from collections import defaultdict + + +from AlchemyTables import * +from AlchemyFacilities import get_or_create, MappedBase +from DerivedStats import DerivedStats +from Exceptions import IncompleteHandError, FpdbError + + +class Player(MappedBase): + """Class reflecting Players db table""" + + @staticmethod + def get_or_create(session, siteId, name): + return get_or_create(Player, session, siteId=siteId, name=name)[0] + + def __str__(self): + return '' % (self.name, self.site and self.site.name) + + +class Gametype(MappedBase): + """Class reflecting Gametypes db table""" + + @staticmethod + def get_or_create(session, siteId, gametype): + map = zip( + ['type', 'base', 'category', 'limitType', 'smallBlind', 'bigBlind', 'smallBet', 'bigBet'], + ['type', 'base', 'category', 'limitType', 'sb', 'bb', 'dummy', 'dummy', ]) + gametype = dict([(new, gametype.get(old)) for new, old in map ]) + + hilo = "h" + if gametype['category'] in ('studhilo', 'omahahilo'): + hilo = "s" + elif gametype['category'] in ('razz','27_3draw','badugi'): + hilo = "l" + gametype['hiLo'] = hilo + + for f in ['smallBlind', 'bigBlind', 'smallBet', 'bigBet']: + if gametype[f] is None: + gametype[f] = 0 + gametype[f] = int(Decimal(gametype[f])*100) + + gametype['siteId'] = siteId + return get_or_create(Gametype, session, **gametype)[0] + + +class HandActions(object): + """Class reflecting HandsActions db table""" + def initFromImportedHand(self, hand, actions): + self.hand = hand + self.actions = {} + for street, street_actions in actions.iteritems(): + self.actions[street] = [] + for v in street_actions: + hp = hand.handplayers_by_name[v[0]] + self.actions[street].append({'street': street, 'pid': hp.id, 'seat': hp.seatNo, 'action':v}) + + @property + def flat_actions(self): + actions = [] + for street in self.hand.allStreets: + actions += self.actions[street] + return actions + + + +class HandInternal(DerivedStats): + """Class reflecting Hands db table""" + + def parseImportedHandStep1(self, hand): + """Extracts values to insert into from hand returned by HHC. No db is needed he""" + hand.players = hand.getAlivePlayers() + + # also save some data for step2. Those fields aren't in Hands table + self.siteId = hand.siteId + self.gametype_dict = hand.gametype + + self.attachHandPlayers(hand) + self.attachActions(hand) + + self.assembleHands(hand) + self.assembleHandsPlayers(hand) + + def parseImportedHandStep2(self, session): + """Fetching ids for gametypes and players""" + gametype = Gametype.get_or_create(session, self.siteId, self.gametype_dict) + self.gametypeId = gametype.id + for hp in self.handPlayers: + hp.playerId = Player.get_or_create(session, self.siteId, hp.name).id + + def getPlayerByName(self, name): + if not hasattr(self, 'handplayers_by_name'): + self.handplayers_by_name = {} + for hp in self.handPlayers: + pname = getattr(hp, 'name', None) or hp.player.name + self.handplayers_by_name[pname] = hp + return self.handplayers_by_name[name] + + def attachHandPlayers(self, hand): + """Fill HandInternal.handPlayers list. Create self.handplayers_by_name""" + hand.noSb = getattr(hand, 'noSb', None) + if hand.noSb is None and self.gametype_dict['base']=='hold': + saw_sb = False + for action in hand.actions[hand.actionStreets[0]]: # blindsantes + if action[1] == 'posts' and action[2] == 'small blind' and action[0] is not None: + saw_sb = True + hand.noSb = saw_sb + + self.handplayers_by_name = {} + for seat, name, chips in hand.players: + p = HandPlayer(hand = self, imported_hand=hand, seatNo=seat, + name=name, startCash=chips) + self.handplayers_by_name[name] = p + + def attachActions(self, hand): + """Create HandActions object""" + a = HandActions() + a.initFromImportedHand(self, hand.actions) + + def parseImportedTournament(self, hand, session): + """Fetching tourney, its type and players + + Must be called after Step2 + """ + if self.gametype_dict['type'] != 'tour': return + + # check for consistense + for i in ('buyin', 'tourNo'): + if not hasattr(hand, i): + raise IncompleteHandError( + "Field '%s' required for tournaments" % i, self.id, hand ) + + # repair old-style buyin value + m = re.match('\$(\d+)\+\$(\d+)', hand.buyin) + if m is not None: + hand.buyin, self.fee = m.groups() + + # fetch tourney type + tour_type_hand2db = { + 'buyin': 'buyin', + 'fee': 'fee', + 'speed': 'speed', + 'maxSeats': 'maxseats', + 'knockout': 'isKO', + 'rebuyOrAddon': 'isRebuy', + 'headsUp': 'isHU', + 'shootout': 'isShootout', + 'matrix': 'isMatrix', + 'sng': 'isSNG', + } + tour_type_index = dict([ + ( i_db, getattr(hand, i_hand, None) ) + for i_db, i_hand in tour_type_hand2db.iteritems() + ]) + tour_type_index['siteId'] = self.siteId + tour_type = TourneyType.get_or_create(session, **tour_type_index) + + # fetch and update tourney + tour = Tourney.get_or_create(session, hand.tourNo, tour_type.id) + cols = tour.get_columns_names() + for col in cols: + hand_val = getattr(hand, col, None) + if col in ('id', 'tourneyTypeId', 'comment', 'commentTs') or hand_val is None: + continue + db_val = getattr(tour, col, None) + if db_val is None: + setattr(tour, col, hand_val) + elif col == 'koBounty': + setattr(tour, col, max(db_val, hand_val)) + elif col == 'tourStartTime' and hand.handStart: + setattr(tour, col, min(db_val, hand.handStart)) + + if tour.entries is None and tour_type.sng: + tour.entries = tour_type.maxSeats + + # fetch and update tourney players + for hp in self.handPlayers: + tp = TourneyPlayer.get_or_create(session, tour.id, hp.playerId) + # FIXME: other TourneysPlayers should be added here + + session.flush() + + def isDuplicate(self, session): + """Checks if current hand already exists in db + + siteHandNo ans gameTypeId have to be setted + """ + return session.query(HandInternal).filter_by( + siteHandNo=self.siteHandNo, gametypeId=self.gametypeId).count()!=0 + + def __str__(self): + s = list() + for i in self._sa_class_manager.mapper.c: + s.append('%25s %s' % (i, getattr(self, i.name))) + + s+=['', ''] + for i,p in enumerate(self.handPlayers): + s.append('%d. %s' % (i, p.name or '???')) + s.append(str(p)) + return '\n'.join(s) + + @property + def boardcards(self): + cards = [] + for i in range(5): + cards.append(getattr(self, 'boardcard%d' % (i+1), None)) + return filter(bool, cards) + + @property + def HandClass(self): + """Return HoldemOmahaHand or something like this""" + import Hand + if self.gametype.base == 'hold': + return Hand.HoldemOmahaHand + elif self.gametype.base == 'draw': + return Hand.DrawHand + elif self.gametype.base == 'stud': + return Hand.StudHand + raise Exception("Unknow gametype.base: '%s'" % self.gametype.base) + + @property + def allStreets(self): + return self.HandClass.allStreets + + @property + def actionStreets(self): + return self.HandClass.actionStreets + + + +class HandPlayer(MappedBase): + """Class reflecting HandsPlayers db table""" + def __init__(self, **kwargs): + if 'imported_hand' in kwargs and 'seatNo' in kwargs: + imported_hand = kwargs.pop('imported_hand') + self.position = self.getPosition(imported_hand, kwargs['seatNo']) + super(HandPlayer, self).__init__(**kwargs) + + @reconstructor + def init_on_load(self): + self.name = self.player.name + + @staticmethod + def getPosition(hand, seat): + """Returns position value like 'B', 'S', '0', '1', ... + + >>> class A(object): pass + ... + >>> A.noSb = False + >>> A.maxseats = 6 + >>> A.buttonpos = 2 + >>> A.gametype = {'base': 'hold'} + >>> A.players = [(i, None, None) for i in (2, 4, 5, 6)] + >>> HandPlayer.getPosition(A, 6) # cut off + '1' + >>> HandPlayer.getPosition(A, 2) # button + '0' + >>> HandPlayer.getPosition(A, 4) # SB + 'S' + >>> HandPlayer.getPosition(A, 5) # BB + 'B' + >>> A.noSb = True + >>> HandPlayer.getPosition(A, 5) # MP3 + '2' + >>> HandPlayer.getPosition(A, 6) # cut off + '1' + >>> HandPlayer.getPosition(A, 2) # button + '0' + >>> HandPlayer.getPosition(A, 4) # BB + 'B' + """ + from itertools import chain + if hand.gametype['base'] == 'stud': + # FIXME: i've never played stud so plz check & del comment \\grindi + bringin = None + for action in chain(*[self.actions[street] for street in hand.allStreets]): + if action[1]=='bringin': + bringin = action[0] + break + if bringin is None: + raise Exception, "Cannot find bringin" + # name -> seat + bringin = int(filter(lambda p: p[1]==bringin, bringin)[0]) + seat = (int(seat) - int(bringin))%int(hand.maxseats) + return str(seat) + else: + seats_occupied = sorted([seat_ for seat_, name, chips in hand.players], key=int) + if hand.buttonpos not in seats_occupied: + # i.e. something like + # Seat 3: PlayerX ($0), is sitting out + # The button is in seat #3 + hand.buttonpos = max(seats_occupied, + key = lambda s: int(s) + if int(s) <= int(hand.buttonpos) + else int(s) - int(hand.maxseats) + ) + seats_occupied = sorted(seats_occupied, + key = lambda seat_: ( + - seats_occupied.index(seat_) + + seats_occupied.index(hand.buttonpos) + + 2) % len(seats_occupied) + ) + # now (if SB presents) seats_occupied contains seats in order: BB, SB, BU, CO, MP3, ... + if hand.noSb: + # fix order in the case nosb + seats_occupied = seats_occupied[1:] + seats_occupied[0:1] + seats_occupied.insert(1, -1) + seat = seats_occupied.index(seat) + if seat == 0: + return 'B' + elif seat == 1: + return 'S' + else: + return str(seat-2) + + @property + def cards(self): + cards = [] + for i in range(7): + cards.append(getattr(self, 'card%d' % (i+1), None)) + return filter(bool, cards) + + def __str__(self): + s = list() + for i in self._sa_class_manager.mapper.c: + s.append('%45s %s' % (i, getattr(self, i.name))) + return '\n'.join(s) + + +class Site(object): + """Class reflecting Players db table""" + INITIAL_DATA = [ + (1 , 'Full Tilt Poker','USD'), + (2 , 'PokerStars', 'USD'), + (3 , 'Everleaf', 'USD'), + (4 , 'Win2day', 'USD'), + (5 , 'OnGame', 'USD'), + (6 , 'UltimateBet', 'USD'), + (7 , 'Betfair', 'USD'), + (8 , 'Absolute', 'USD'), + (9 , 'PartyPoker', 'USD'), + (10, 'Partouche', 'EUR'), + ] + INITIAL_DATA_KEYS = ('id', 'name', 'currency') + + INITIAL_DATA_DICTS = [ dict(zip(INITIAL_DATA_KEYS, datum)) for datum in INITIAL_DATA ] + + @classmethod + def insert_initial(cls, connection): + connection.execute(sites_table.insert(), cls.INITIAL_DATA_DICTS) + + +class Tourney(MappedBase): + """Class reflecting Tourneys db table""" + + @classmethod + def get_or_create(cls, session, siteTourneyNo, tourneyTypeId): + """Fetch tourney by index or creates one if none. """ + return get_or_create(cls, session, siteTourneyNo=siteTourneyNo, + tourneyTypeId=tourneyTypeId)[0] + + + +class TourneyType(MappedBase): + """Class reflecting TourneysType db table""" + + @classmethod + def get_or_create(cls, session, **kwargs): + """Fetch tourney type by index or creates one if none + + Required kwargs: + buyin fee speed maxSeats knockout + rebuyOrAddon headsUp shootout matrix sng + """ + return get_or_create(cls, session, **kwargs)[0] + + +class TourneyPlayer(MappedBase): + """Class reflecting TourneysPlayers db table""" + + @classmethod + def get_or_create(cls, session, tourneyId, playerId): + """Fetch tourney player by index or creates one if none """ + return get_or_create(cls, session, tourneyId=tourneyId, playerId=playerId) + + +class Version(object): + """Provides read/write access for version var""" + CURRENT_VERSION = 120 # db version for current release + # 119 - first alchemy version + # 120 - add m_factor + + conn = None + ver = None + def __init__(self, connection=None): + if self.__class__.conn is None: + self.__class__.conn = connection + + @classmethod + def is_wrong(cls): + return cls.get() != cls.CURRENT_VERSION + + @classmethod + def get(cls): + if cls.ver is None: + try: + cls.ver = cls.conn.execute(select(['version'], settings_table)).fetchone()[0] + except: + return None + return cls.ver + + @classmethod + def set(cls, value): + if cls.conn.execute(settings_table.select()).rowcount==0: + cls.conn.execute(settings_table.insert(), version=value) + else: + cls.conn.execute(settings_table.update().values(version=value)) + cls.ver = value + + @classmethod + def set_initial(cls): + cls.set(cls.CURRENT_VERSION) + + +mapper (Gametype, gametypes_table, properties={ + 'hands': relation(HandInternal, backref='gametype'), +}) +mapper (Player, players_table, properties={ + 'playerHands': relation(HandPlayer, backref='player'), + 'playerTourney': relation(TourneyPlayer, backref='player'), +}) +mapper (Site, sites_table, properties={ + 'gametypes': relation(Gametype, backref = 'site'), + 'players': relation(Player, backref = 'site'), + 'tourneyTypes': relation(TourneyType, backref = 'site'), +}) +mapper (HandActions, hands_actions_table, properties={}) +mapper (HandInternal, hands_table, properties={ + 'handPlayers': relation(HandPlayer, backref='hand'), + 'actions_all': relation(HandActions, backref='hand', uselist=False), +}) +mapper (HandPlayer, hands_players_table, properties={}) + +mapper (Tourney, tourneys_table) +mapper (TourneyType, tourney_types_table, properties={ + 'tourneys': relation(Tourney, backref='type'), +}) +mapper (TourneyPlayer, tourneys_players_table) + +class LambdaKeyDict(defaultdict): + """Operates like defaultdict but passes key argument to the factory function""" + def __missing__(key): + return self.default_factory(key) + diff --git a/pyfpdb/AlchemyTables.py b/pyfpdb/AlchemyTables.py new file mode 100644 index 00000000..3165a480 --- /dev/null +++ b/pyfpdb/AlchemyTables.py @@ -0,0 +1,438 @@ +# -*- coding: utf-8 -*- +"""@package AlchemyTables +Contains all sqlalchemy tables +""" + +from sqlalchemy import Table, Float, Column, Integer, String, MetaData, \ + ForeignKey, Boolean, SmallInteger, DateTime, Text, Index, CHAR, \ + PickleType, Unicode + +from AlchemyFacilities import CardColumn, MoneyColumn, BigIntColumn + + +metadata = MetaData() + + +autorates_table = Table('Autorates', metadata, + Column('id', Integer, primary_key=True, nullable=False), + Column('playerId', Integer, ForeignKey("Players.id"), nullable=False), + Column('gametypeId', SmallInteger, ForeignKey("Gametypes.id"), nullable=False), + Column('description', String(50), nullable=False), + Column('shortDesc', CHAR(8), nullable=False), + Column('ratingTime', DateTime, nullable=False), + Column('handCount', Integer, nullable=False), + mysql_charset='utf8', + mysql_engine='InnoDB', +) + + +gametypes_table = Table('Gametypes', metadata, + Column('id', SmallInteger, primary_key=True), + Column('siteId', SmallInteger, ForeignKey("Sites.id"), nullable=False), # SMALLINT + Column('type', String(4), nullable=False), # char(4) NOT NULL + Column('base', String(4), nullable=False), # char(4) NOT NULL + Column('category', String(9), nullable=False), # varchar(9) NOT NULL + Column('limitType', CHAR(2), nullable=False), # char(2) NOT NULL + Column('hiLo', CHAR(1), nullable=False), # char(1) NOT NULL + Column('smallBlind', Integer(3)), # int + Column('bigBlind', Integer(3)), # int + Column('smallBet', Integer(3), nullable=False), # int NOT NULL + Column('bigBet', Integer(3), nullable=False), # int NOT NULL + mysql_charset='utf8', + mysql_engine='InnoDB', +) + + +hands_table = Table('Hands', metadata, + Column('id', BigIntColumn, primary_key=True), + Column('tableName', String(30), nullable=False), + Column('siteHandNo', BigIntColumn, nullable=False), + Column('gametypeId', SmallInteger, ForeignKey('Gametypes.id'), nullable=False), + Column('handStart', DateTime, nullable=False), + Column('importTime', DateTime, nullable=False), + Column('seats', SmallInteger, nullable=False), + Column('maxSeats', SmallInteger, nullable=False), + + Column('boardcard1', CardColumn), + Column('boardcard2', CardColumn), + Column('boardcard3', CardColumn), + Column('boardcard4', CardColumn), + Column('boardcard5', CardColumn), + Column('texture', SmallInteger), + Column('playersVpi', SmallInteger, nullable=False), + Column('playersAtStreet1', SmallInteger, nullable=False, default=0), + Column('playersAtStreet2', SmallInteger, nullable=False, default=0), + Column('playersAtStreet3', SmallInteger, nullable=False, default=0), + Column('playersAtStreet4', SmallInteger, nullable=False, default=0), + Column('playersAtShowdown',SmallInteger, nullable=False), + Column('street0Raises', SmallInteger, nullable=False), + Column('street1Raises', SmallInteger, nullable=False), + Column('street2Raises', SmallInteger, nullable=False), + Column('street3Raises', SmallInteger, nullable=False), + Column('street4Raises', SmallInteger, nullable=False), + Column('street1Pot', MoneyColumn), + Column('street2Pot', MoneyColumn), + Column('street3Pot', MoneyColumn), + Column('street4Pot', MoneyColumn), + Column('showdownPot', MoneyColumn), + Column('comment', Text), + Column('commentTs', DateTime), + mysql_charset='utf8', + mysql_engine='InnoDB', +) +Index('siteHandNo', hands_table.c.siteHandNo, hands_table.c.gametypeId, unique=True) + + +hands_actions_table = Table('HandsActions', metadata, + Column('id', BigIntColumn, primary_key=True, nullable=False), + Column('handId', BigIntColumn, ForeignKey("Hands.id"), nullable=False), + Column('actions', PickleType, nullable=False), + mysql_charset='utf8', + mysql_engine='InnoDB', +) + + +hands_players_table = Table('HandsPlayers', metadata, + Column('id', BigIntColumn, primary_key=True), + Column('handId', BigIntColumn, ForeignKey("Hands.id"), nullable=False), + Column('playerId', Integer, ForeignKey("Players.id"), nullable=False), + Column('startCash', MoneyColumn), + Column('position', CHAR(1)), #CHAR(1) + Column('seatNo', SmallInteger, nullable=False), #SMALLINT NOT NULL + + Column('card1', CardColumn), #smallint NOT NULL, + Column('card2', CardColumn), #smallint NOT NULL + Column('card3', CardColumn), #smallint + Column('card4', CardColumn), #smallint + Column('card5', CardColumn), #smallint + Column('card6', CardColumn), #smallint + Column('card7', CardColumn), #smallint + Column('startCards', SmallInteger), #smallint + + Column('m_factor', Integer), # null for ring games + Column('ante', MoneyColumn), #INT + Column('winnings', MoneyColumn, nullable=False, default=0), #int NOT NULL + Column('rake', MoneyColumn, nullable=False, default=0), #int NOT NULL + Column('totalProfit', MoneyColumn), #INT + Column('comment', Text), #text + Column('commentTs', DateTime), #DATETIME + Column('tourneysPlayersId', BigIntColumn, ForeignKey("TourneysPlayers.id"),), #BIGINT UNSIGNED + Column('tourneyTypeId', Integer, ForeignKey("TourneyTypes.id"),), #SMALLINT UNSIGNED + + Column('wonWhenSeenStreet1',Float), #FLOAT + Column('wonWhenSeenStreet2',Float), #FLOAT + Column('wonWhenSeenStreet3',Float), #FLOAT + Column('wonWhenSeenStreet4',Float), #FLOAT + Column('wonAtSD', Float), #FLOAT + + Column('street0VPI', Boolean), #BOOLEAN + Column('street0Aggr', Boolean), #BOOLEAN + Column('street0_3BChance', Boolean), #BOOLEAN + Column('street0_3BDone', Boolean), #BOOLEAN + Column('street0_4BChance', Boolean), #BOOLEAN + Column('street0_4BDone', Boolean), #BOOLEAN + Column('other3BStreet0', Boolean), #BOOLEAN + Column('other4BStreet0', Boolean), #BOOLEAN + + Column('street1Seen', Boolean), #BOOLEAN + Column('street2Seen', Boolean), #BOOLEAN + Column('street3Seen', Boolean), #BOOLEAN + Column('street4Seen', Boolean), #BOOLEAN + Column('sawShowdown', Boolean), #BOOLEAN + + Column('street1Aggr', Boolean), #BOOLEAN + Column('street2Aggr', Boolean), #BOOLEAN + Column('street3Aggr', Boolean), #BOOLEAN + Column('street4Aggr', Boolean), #BOOLEAN + + Column('otherRaisedStreet0',Boolean), #BOOLEAN + Column('otherRaisedStreet1',Boolean), #BOOLEAN + Column('otherRaisedStreet2',Boolean), #BOOLEAN + Column('otherRaisedStreet3',Boolean), #BOOLEAN + Column('otherRaisedStreet4',Boolean), #BOOLEAN + Column('foldToOtherRaisedStreet0', Boolean), #BOOLEAN + Column('foldToOtherRaisedStreet1', Boolean), #BOOLEAN + Column('foldToOtherRaisedStreet2', Boolean), #BOOLEAN + Column('foldToOtherRaisedStreet3', Boolean), #BOOLEAN + Column('foldToOtherRaisedStreet4', Boolean), #BOOLEAN + + Column('stealAttemptChance', Boolean), #BOOLEAN + Column('stealAttempted', Boolean), #BOOLEAN + Column('foldBbToStealChance', Boolean), #BOOLEAN + Column('foldedBbToSteal', Boolean), #BOOLEAN + Column('foldSbToStealChance', Boolean), #BOOLEAN + Column('foldedSbToSteal', Boolean), #BOOLEAN + + Column('street1CBChance', Boolean), #BOOLEAN + Column('street1CBDone', Boolean), #BOOLEAN + Column('street2CBChance', Boolean), #BOOLEAN + Column('street2CBDone', Boolean), #BOOLEAN + Column('street3CBChance', Boolean), #BOOLEAN + Column('street3CBDone', Boolean), #BOOLEAN + Column('street4CBChance', Boolean), #BOOLEAN + Column('street4CBDone', Boolean), #BOOLEAN + + Column('foldToStreet1CBChance', Boolean), #BOOLEAN + Column('foldToStreet1CBDone', Boolean), #BOOLEAN + Column('foldToStreet2CBChance', Boolean), #BOOLEAN + Column('foldToStreet2CBDone', Boolean), #BOOLEAN + Column('foldToStreet3CBChance', Boolean), #BOOLEAN + Column('foldToStreet3CBDone', Boolean), #BOOLEAN + Column('foldToStreet4CBChance', Boolean), #BOOLEAN + Column('foldToStreet4CBDone', Boolean), #BOOLEAN + + Column('street1CheckCallRaiseChance',Boolean), #BOOLEAN + Column('street1CheckCallRaiseDone', Boolean), #BOOLEAN + Column('street2CheckCallRaiseChance',Boolean), #BOOLEAN + Column('street2CheckCallRaiseDone', Boolean), #BOOLEAN + Column('street3CheckCallRaiseChance',Boolean), #BOOLEAN + Column('street3CheckCallRaiseDone', Boolean), #BOOLEAN + Column('street4CheckCallRaiseChance',Boolean), #BOOLEAN + Column('street4CheckCallRaiseDone', Boolean), #BOOLEAN + + Column('street0Calls', SmallInteger), #TINYINT + Column('street1Calls', SmallInteger), #TINYINT + Column('street2Calls', SmallInteger), #TINYINT + Column('street3Calls', SmallInteger), #TINYINT + Column('street4Calls', SmallInteger), #TINYINT + Column('street0Bets', SmallInteger), #TINYINT + Column('street1Bets', SmallInteger), #TINYINT + Column('street2Bets', SmallInteger), #TINYINT + Column('street3Bets', SmallInteger), #TINYINT + Column('street4Bets', SmallInteger), #TINYINT + Column('street0Raises', SmallInteger), #TINYINT + Column('street1Raises', SmallInteger), #TINYINT + Column('street2Raises', SmallInteger), #TINYINT + Column('street3Raises', SmallInteger), #TINYINT + Column('street4Raises', SmallInteger), #TINYINT + + Column('actionString', String(15)), #VARCHAR(15) + mysql_charset='utf8', + mysql_engine='InnoDB', +) + + +hud_cache_table = Table('HudCache', metadata, + Column('id', BigIntColumn, primary_key=True), + Column('gametypeId', SmallInteger, ForeignKey("Gametypes.id"), nullable=False), # SMALLINT + Column('playerId', Integer, ForeignKey("Players.id"), nullable=False), # SMALLINT + Column('activeSeats', SmallInteger, nullable=False), # SMALLINT NOT NULL + Column('position', CHAR(1)), # CHAR(1) + Column('tourneyTypeId', Integer, ForeignKey("TourneyTypes.id") ), # SMALLINT + Column('styleKey', CHAR(7), nullable=False), # CHAR(7) NOT NULL + Column('m_factor', Integer), + Column('HDs', Integer, nullable=False), # INT NOT NULL + + Column('wonWhenSeenStreet1', Float), # FLOAT + Column('wonWhenSeenStreet2', Float), # FLOAT + Column('wonWhenSeenStreet3', Float), # FLOAT + Column('wonWhenSeenStreet4', Float), # FLOAT + Column('wonAtSD', Float), # FLOAT + + Column('street0VPI', Integer), # INT + Column('street0Aggr', Integer), # INT + Column('street0_3BChance', Integer), # INT + Column('street0_3BDone', Integer), # INT + Column('street0_4BChance', Integer), # INT + Column('street0_4BDone', Integer), # INT + Column('other3BStreet0', Integer), # INT + Column('other4BStreet0', Integer), # INT + + Column('street1Seen', Integer), # INT + Column('street2Seen', Integer), # INT + Column('street3Seen', Integer), # INT + Column('street4Seen', Integer), # INT + Column('sawShowdown', Integer), # INT + + Column('street1Aggr', Integer), # INT + Column('street2Aggr', Integer), # INT + Column('street3Aggr', Integer), # INT + Column('street4Aggr', Integer), # INT + + Column('otherRaisedStreet0', Integer), # INT + Column('otherRaisedStreet1', Integer), # INT + Column('otherRaisedStreet2', Integer), # INT + Column('otherRaisedStreet3', Integer), # INT + Column('otherRaisedStreet4', Integer), # INT + Column('foldToOtherRaisedStreet0', Integer), # INT + Column('foldToOtherRaisedStreet1', Integer), # INT + Column('foldToOtherRaisedStreet2', Integer), # INT + Column('foldToOtherRaisedStreet3', Integer), # INT + Column('foldToOtherRaisedStreet4', Integer), # INT + + Column('stealAttemptChance', Integer), # INT + Column('stealAttempted', Integer), # INT + Column('foldBbToStealChance', Integer), # INT + Column('foldedBbToSteal', Integer), # INT + Column('foldSbToStealChance', Integer), # INT + Column('foldedSbToSteal', Integer), # INT + + Column('street1CBChance', Integer), # INT + Column('street1CBDone', Integer), # INT + Column('street2CBChance', Integer), # INT + Column('street2CBDone', Integer), # INT + Column('street3CBChance', Integer), # INT + Column('street3CBDone', Integer), # INT + Column('street4CBChance', Integer), # INT + Column('street4CBDone', Integer), # INT + + Column('foldToStreet1CBChance', Integer), # INT + Column('foldToStreet1CBDone', Integer), # INT + Column('foldToStreet2CBChance', Integer), # INT + Column('foldToStreet2CBDone', Integer), # INT + Column('foldToStreet3CBChance', Integer), # INT + Column('foldToStreet3CBDone', Integer), # INT + Column('foldToStreet4CBChance', Integer), # INT + Column('foldToStreet4CBDone', Integer), # INT + + Column('totalProfit', Integer), # INT + + Column('street1CheckCallRaiseChance', Integer), # INT + Column('street1CheckCallRaiseDone', Integer), # INT + Column('street2CheckCallRaiseChance', Integer), # INT + Column('street2CheckCallRaiseDone', Integer), # INT + Column('street3CheckCallRaiseChance', Integer), # INT + Column('street3CheckCallRaiseDone', Integer), # INT + Column('street4CheckCallRaiseChance', Integer), # INT + Column('street4CheckCallRaiseDone', Integer), # INT + + Column('street0Calls', Integer), # INT + Column('street1Calls', Integer), # INT + Column('street2Calls', Integer), # INT + Column('street3Calls', Integer), # INT + Column('street4Calls', Integer), # INT + Column('street0Bets', Integer), # INT + Column('street1Bets', Integer), # INT + Column('street2Bets', Integer), # INT + Column('street3Bets', Integer), # INT + Column('street4Bets', Integer), # INT + Column('street0Raises', Integer), # INT + Column('street1Raises', Integer), # INT + Column('street2Raises', Integer), # INT + Column('street3Raises', Integer), # INT + Column('street4Raises', Integer), # INT + mysql_charset='utf8', + mysql_engine='InnoDB', +) + + +players_table = Table('Players', metadata, + Column('id', Integer, primary_key=True), + Column('name', Unicode(32), nullable=False), # VARCHAR(32) CHARACTER SET utf8 NOT NULL + Column('siteId', SmallInteger, ForeignKey("Sites.id"), nullable=False), # SMALLINT + Column('comment', Text), # text + Column('commentTs', DateTime), # DATETIME + mysql_charset='utf8', + mysql_engine='InnoDB', +) +Index('name', players_table.c.name, players_table.c.siteId, unique=True) + + +settings_table = Table('Settings', metadata, + Column('version', SmallInteger, nullable=False), + mysql_charset='utf8', + mysql_engine='InnoDB', +) + + +sites_table = Table('Sites', metadata, + Column('id', SmallInteger, primary_key=True), + Column('name', String(32), nullable=False), # varchar(32) NOT NULL + Column('currency', String(3), nullable=False), # char(3) NOT NULL + mysql_charset='utf8', + mysql_engine='InnoDB', +) + + +tourneys_table = Table('Tourneys', metadata, + Column('id', Integer, primary_key=True), + Column('tourneyTypeId', Integer, ForeignKey("TourneyTypes.id"), nullable=False, default=1), + Column('siteTourneyNo', BigIntColumn, nullable=False), # BIGINT NOT NULL + Column('entries', Integer), # INT NOT NULL + Column('prizepool', Integer), # INT NOT NULL + Column('tourStartTime', DateTime), # DATETIME NOT NULL + Column('tourEndTime', DateTime), # DATETIME + Column('buyinChips', Integer), # INT + Column('tourneyName', String(40)), # varchar(40) + # Mask use : 1=Positionnal Winnings|2=Match1|4=Match2|...|pow(2,n)=Matchn + Column('matrixIdProcessed',SmallInteger, default=0), # TINYINT UNSIGNED DEFAULT 0 + Column('rebuyChips', Integer, default=0), # INT DEFAULT 0 + Column('addonChips', Integer, default=0), # INT DEFAULT 0 + Column('rebuyAmount', MoneyColumn, default=0), # INT DEFAULT 0 + Column('addonAmount', MoneyColumn, default=0), # INT DEFAULT 0 + Column('totalRebuys', Integer, default=0), # INT DEFAULT 0 + Column('totalAddons', Integer, default=0), # INT DEFAULT 0 + Column('koBounty', Integer, default=0), # INT DEFAULT 0 + Column('comment', Text), # TEXT + Column('commentTs', DateTime), # DATETIME + mysql_charset='utf8', + mysql_engine='InnoDB', +) +Index('siteTourneyNo', tourneys_table.c.siteTourneyNo, tourneys_table.c.tourneyTypeId, unique=True) + + +tourney_types_table = Table('TourneyTypes', metadata, + Column('id', Integer, primary_key=True), + Column('siteId', SmallInteger, ForeignKey("Sites.id"), nullable=False), + Column('buyin', Integer, nullable=False), # INT NOT NULL + Column('fee', Integer, nullable=False, default=0), # INT NOT NULL + Column('maxSeats', Boolean, nullable=False, default=-1), # INT NOT NULL DEFAULT -1 + Column('knockout', Boolean, nullable=False, default=False), # BOOLEAN NOT NULL DEFAULT False + Column('rebuyOrAddon', Boolean, nullable=False, default=False), # BOOLEAN NOT NULL DEFAULT False + Column('speed', String(10)), # varchar(10) + Column('headsUp', Boolean, nullable=False, default=False), # BOOLEAN NOT NULL DEFAULT False + Column('shootout', Boolean, nullable=False, default=False), # BOOLEAN NOT NULL DEFAULT False + Column('matrix', Boolean, nullable=False, default=False), # BOOLEAN NOT NULL DEFAULT False + Column('sng', Boolean, nullable=False, default=False), # BOOLEAN NOT NULL DEFAULT False + mysql_charset='utf8', + mysql_engine='InnoDB', +) +Index('tourneyTypes_all', + tourney_types_table.c.siteId, tourney_types_table.c.buyin, tourney_types_table.c.fee, + tourney_types_table.c.maxSeats, tourney_types_table.c.knockout, tourney_types_table.c.rebuyOrAddon, + tourney_types_table.c.speed, tourney_types_table.c.headsUp, tourney_types_table.c.shootout, + tourney_types_table.c.matrix, tourney_types_table.c.sng) + + +tourneys_players_table = Table('TourneysPlayers', metadata, + Column('id', BigIntColumn, primary_key=True), + Column('tourneyId', Integer, ForeignKey("Tourneys.id"), nullable=False), + Column('playerId', Integer, ForeignKey("Players.id"), nullable=False), + Column('payinAmount', Integer), # INT NOT NULL + Column('rank', Integer), # INT NOT NULL + Column('winnings', Integer), # INT NOT NULL + Column('nbRebuys', Integer, default=0), # INT DEFAULT 0 + Column('nbAddons', Integer, default=0), # INT DEFAULT 0 + Column('nbKO', Integer, default=0), # INT DEFAULT 0 + Column('comment', Text), # TEXT + Column('commentTs', DateTime), # DATETIME + mysql_charset='utf8', + mysql_engine='InnoDB', +) +Index('tourneyId', tourneys_players_table.c.tourneyId, tourneys_players_table.c.playerId, unique=True) + + +def sss(): + "Debug function. Returns (config, sql, db)" + + import Configuration, SQL, Database, os + class Dummy(object): + pass + self = Dummy() + self.config = Configuration.Config() + self.settings = {} + if (os.sep=="/"): + self.settings['os']="linuxmac" + else: + self.settings['os']="windows" + + self.settings.update(self.config.get_db_parameters()) + self.settings.update(self.config.get_tv_parameters()) + self.settings.update(self.config.get_import_parameters()) + self.settings.update(self.config.get_default_paths()) + + self.sql = SQL.Sql( db_server = self.settings['db-server']) + self.db = Database.Database(self.config, sql = self.sql) + + return self.config, self.sql, self.db + diff --git a/pyfpdb/CarbonToFpdb.py b/pyfpdb/CarbonToFpdb.py index cc7afb81..0640d157 100644 --- a/pyfpdb/CarbonToFpdb.py +++ b/pyfpdb/CarbonToFpdb.py @@ -1,6 +1,7 @@ #!/usr/bin/env python -# Copyright 2008, Carl Gherardi - +# -*- coding: utf-8 -*- +# +# Copyright 2010, Matthew Boss # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,93 +19,286 @@ ######################################################################## -# Standard Library modules -import Configuration -import traceback +# This code is based heavily on EverleafToFpdb.py, by Carl Gherardi +# +# OUTSTANDING MATTERS +# +# -- No siteID assigned +# -- No support for games other than NL hold 'em cash. Hand histories for other +# games required +# -- No support for limit hold 'em yet, though this would be easy to add +# -- No support for tournaments (see also the last item below) +# -- Assumes that the currency of ring games is USD +# -- Only works for 'gametype="2"'. What is 'gametype'? +# -- Only accepts 'realmoney="true"' +# -- A hand's time-stamp does not record seconds past the minute (a +# limitation of the history format) +# -- No support for a bring-in or for antes (is the latter in fact unnecessary +# for hold 'em on Carbon?) +# -- hand.maxseats can only be guessed at +# -- The last hand in a history file will often be incomplete and is therefore +# rejected +# -- Is behaviour currently correct when someone shows an uncalled hand? +# -- Information may be lost when the hand ID is converted from the native form +# xxxxxxxx-yyy(y*) to xxxxxxxxyyy(y*) (in principle this should be stored as +# a string, but the database does not support this). Is there a possibility +# of collision between hand IDs that ought to be distinct? +# -- Cannot parse tables that run it twice (nor is this likely ever to be +# possible) +# -- Cannot parse hands in which someone is all in in one of the blinds. Until +# this is corrected tournaments will be unparseable + import sys -import re -import xml.dom.minidom -from xml.dom.minidom import Node -from HandHistoryConverter import HandHistoryConverter +import logging +from HandHistoryConverter import * +from decimal import Decimal -# Carbon format looks like: +class Carbon(HandHistoryConverter): -# 1) -# 2) -# 3) -# -# ... -# 4) -# -# -# 5) -# -# 6) -# -# .... -# + sitename = "Carbon" + filetype = "text" + codepage = "cp1252" + siteID = 11 -# The full sequence for a NHLE cash game is: -# BLINDS, PREFLOP, POSTFLOP, POSTTURN, POSTRIVER, SHOWDOWN, END_OF_GAME -# This sequence can be terminated after BLINDS at any time by END_OF_FOLDED_GAME + # Static regexes + re_SplitHands = re.compile(r'\n+(?=)') + re_GameInfo = re.compile(r'', re.MULTILINE) + re_HandInfo = re.compile(r'[0-9]+)">') + re_PlayerInfo = re.compile(r'', re.MULTILINE) + re_Board = re.compile(r'', re.MULTILINE) + re_PostBB = re.compile(r'', re.MULTILINE) + re_PostBoth = re.compile(r'', re.MULTILINE) + #re_Antes = ??? + #re_BringIn = ??? + re_HeroCards = re.compile(r'', re.MULTILINE) + re_ShowdownAction = re.compile(r'', re.MULTILINE) + re_CollectPot = re.compile(r'', re.MULTILINE) + re_ShownCards = re.compile(r'', re.MULTILINE) -class CarbonPoker(HandHistoryConverter): - def __init__(self, config, filename): - print "Initialising Carbon Poker converter class" - HandHistoryConverter.__init__(self, config, filename, "Carbon") # Call super class init - self.setFileType("xml") - self.siteId = 4 # Needs to match id entry in Sites database + def compilePlayerRegexs(self, hand): + pass - def readSupportedGames(self): - pass - def determineGameType(self): - gametype = [] - desc_node = self.doc.getElementsByTagName("description") - #TODO: no examples of non ring type yet - gametype = gametype + ["ring"] - type = desc_node[0].getAttribute("type") - if(type == "Holdem"): - gametype = gametype + ["hold"] - else: - print "Carbon: Unknown gametype: '%s'" % (type) + def playerNameFromSeatNo(self, seatNo, hand): + # This special function is required because Carbon Poker records + # actions by seat number, not by the player's name + for p in hand.players: + if p[0] == int(seatNo): + return p[1] - stakes = desc_node[0].getAttribute("stakes") - #TODO: no examples of anything except nlhe - m = re.match('(?PNo Limit)\s\(\$?(?P[.0-9]+)/\$?(?P[.0-9]+)\)', stakes) + def readSupportedGames(self): + return [["ring", "hold", "nl"], + ["tour", "hold", "nl"]] - if(m.group('LIMIT') == "No Limit"): - gametype = gametype + ["nl"] + def determineGameType(self, handText): + """return dict with keys/values: + 'type' in ('ring', 'tour') + 'limitType' in ('nl', 'cn', 'pl', 'cp', 'fl') + 'base' in ('hold', 'stud', 'draw') + 'category' in ('holdem', 'omahahi', omahahilo', 'razz', 'studhi', 'studhilo', 'fivedraw', '27_1draw', '27_3draw', 'badugi') + 'hilo' in ('h','l','s') + 'smallBlind' int? + 'bigBlind' int? + 'smallBet' + 'bigBet' + 'currency' in ('USD', 'EUR', 'T$', ) +or None if we fail to get the info """ - gametype = gametype + [self.float2int(m.group('SB'))] - gametype = gametype + [self.float2int(m.group('BB'))] + m = self.re_GameInfo.search(handText) + if not m: + # Information about the game type appears only at the beginning of + # a hand history file; hence it is not supplied with the second + # and subsequent hands. In these cases we use the value previously + # stored. + return self.info + self.info = {} + mg = m.groupdict() - return gametype + limits = { 'No Limit':'nl', 'Limit':'fl' } + games = { # base, category + 'Holdem' : ('hold','holdem'), + 'Holdem Tournament' : ('hold','holdem') } - def readPlayerStacks(self): - pass - def readBlinds(self): - pass - def readAction(self): - pass + if 'LIMIT' in mg: + self.info['limitType'] = limits[mg['LIMIT']] + if 'GAME' in mg: + (self.info['base'], self.info['category']) = games[mg['GAME']] + if 'SB' in mg: + self.info['sb'] = mg['SB'] + if 'BB' in mg: + self.info['bb'] = mg['BB'] + if mg['GAME'] == 'Holdem Tournament': + self.info['type'] = 'tour' + self.info['currency'] = 'T$' + else: + self.info['type'] = 'ring' + self.info['currency'] = 'USD' - # Override read function as xml.minidom barfs on the Carbon layout - # This is pretty dodgy - def readFile(self, filename): - print "Carbon: Reading file: '%s'" %(filename) - infile=open(filename, "rU") - self.obs = infile.read() - infile.close() - self.obs = "\n" + self.obs + "" - try: - doc = xml.dom.minidom.parseString(self.obs) - self.doc = doc - except: - traceback.print_exc(file=sys.stderr) + return self.info + + def readHandInfo(self, hand): + m = self.re_HandInfo.search(hand.handText) + if m is None: + logging.info("Didn't match re_HandInfo") + logging.info(hand.handText) + return None + logging.debug("HID %s-%s, Table %s" % (m.group('HID1'), + m.group('HID2'), m.group('TABLE')[:-1])) + hand.handid = m.group('HID1') + m.group('HID2') + hand.tablename = m.group('TABLE')[:-1] + hand.maxseats = 2 # This value may be increased as necessary + hand.starttime = datetime.datetime.strptime(m.group('DATETIME')[:12], + '%Y%m%d%H%M') + # Check that the hand is complete up to the awarding of the pot; if + # not, the hand is unparseable + if self.re_EndOfHand.search(hand.handText) is None: + raise FpdbParseError(hid=m.group('HID1') + "-" + m.group('HID2')) + + def readPlayerStacks(self, hand): + m = self.re_PlayerInfo.finditer(hand.handText) + for a in m: + seatno = int(a.group('SEAT')) + # It may be necessary to adjust 'hand.maxseats', which is an + # educated guess, starting with 2 (indicating a heads-up table) and + # adjusted upwards in steps to 6, then 9, then 10. An adjustment is + # made whenever a player is discovered whose seat number is + # currently above the maximum allowable for the table. + if seatno >= hand.maxseats: + if seatno > 8: + hand.maxseats = 10 + elif seatno > 5: + hand.maxseats = 9 + else: + hand.maxseats = 6 + if a.group('DEALTIN') == "true": + hand.addPlayer(seatno, a.group('PNAME'), a.group('CASH')) + + def markStreets(self, hand): + #if hand.gametype['base'] == 'hold': + m = re.search(r'(?P.+(?=(?P.+(?=(?P.+(?=(?P.+))?', hand.handText, re.DOTALL) + hand.addStreets(m) + + def readCommunityCards(self, hand, street): + m = self.re_Board.search(hand.streets[street]) + if street == 'FLOP': + hand.setCommunityCards(street, m.group('CARDS').split(',')) + elif street in ('TURN','RIVER'): + hand.setCommunityCards(street, [m.group('CARDS').split(',')[-1]]) + + def readAntes(self, hand): + pass # ??? + + def readBringIn(self, hand): + pass # ??? + + def readBlinds(self, hand): + try: + m = self.re_PostSB.search(hand.handText) + hand.addBlind(self.playerNameFromSeatNo(m.group('PSEAT'), hand), + 'small blind', m.group('SB')) + except: # no small blind + hand.addBlind(None, None, None) + for a in self.re_PostBB.finditer(hand.handText): + hand.addBlind(self.playerNameFromSeatNo(a.group('PSEAT'), hand), + 'big blind', a.group('BB')) + for a in self.re_PostBoth.finditer(hand.handText): + bb = Decimal(self.info['bb']) + amount = Decimal(a.group('SBBB')) + if amount < bb: + hand.addBlind(self.playerNameFromSeatNo(a.group('PSEAT'), + hand), 'small blind', a.group('SBBB')) + elif amount == bb: + hand.addBlind(self.playerNameFromSeatNo(a.group('PSEAT'), + hand), 'big blind', a.group('SBBB')) + else: + hand.addBlind(self.playerNameFromSeatNo(a.group('PSEAT'), + hand), 'both', a.group('SBBB')) + + def readButton(self, hand): + hand.buttonpos = int(self.re_Button.search(hand.handText).group('BUTTON')) + + def readHeroCards(self, hand): + m = self.re_HeroCards.search(hand.handText) + if m: + hand.hero = self.playerNameFromSeatNo(m.group('PSEAT'), hand) + cards = m.group('CARDS').split(',') + hand.addHoleCards('PREFLOP', hand.hero, closed=cards, shown=False, + mucked=False, dealt=True) + + def readAction(self, hand, street): + logging.debug("readAction (%s)" % street) + m = self.re_Action.finditer(hand.streets[street]) + for action in m: + logging.debug("%s %s" % (action.group('ATYPE'), + action.groupdict())) + player = self.playerNameFromSeatNo(action.group('PSEAT'), hand) + if action.group('ATYPE') == 'RAISE': + hand.addCallandRaise(street, player, action.group('BET')) + elif action.group('ATYPE') == 'CALL': + hand.addCall(street, player, action.group('BET')) + elif action.group('ATYPE') == 'BET': + hand.addBet(street, player, action.group('BET')) + elif action.group('ATYPE') in ('FOLD', 'SIT_OUT'): + hand.addFold(street, player) + elif action.group('ATYPE') == 'CHECK': + hand.addCheck(street, player) + elif action.group('ATYPE') == 'ALL_IN': + hand.addAllIn(street, player, action.group('BET')) + else: + logging.debug("Unimplemented readAction: %s %s" + % (action.group('PSEAT'),action.group('ATYPE'),)) + + def readShowdownActions(self, hand): + for shows in self.re_ShowdownAction.finditer(hand.handText): + cards = shows.group('CARDS').split(',') + hand.addShownCards(cards, + self.playerNameFromSeatNo(shows.group('PSEAT'), + hand)) + + def readCollectPot(self, hand): + pots = [Decimal(0) for n in range(hand.maxseats)] + for m in self.re_CollectPot.finditer(hand.handText): + pots[int(m.group('PSEAT'))] += Decimal(m.group('POT')) + # Regarding the processing logic for "committed", see Pot.end() in + # Hand.py + committed = sorted([(v,k) for (k,v) in hand.pot.committed.items()]) + for p in range(hand.maxseats): + pname = self.playerNameFromSeatNo(p, hand) + if committed[-1][1] == pname: + pots[p] -= committed[-1][0] - committed[-2][0] + if pots[p] > 0: + hand.addCollectPot(player=pname, pot=pots[p]) + + def readShownCards(self, hand): + for m in self.re_ShownCards.finditer(hand.handText): + cards = m.group('CARDS').split(',') + hand.addShownCards(cards=cards, player=self.playerNameFromSeatNo(m.group('PSEAT'), hand)) if __name__ == "__main__": - c = Configuration.Config() - e = CarbonPoker(c, "regression-test-files/carbon-poker/Niagara Falls (15245216).xml") - e.processFile() - print str(e) + parser = OptionParser() + parser.add_option("-i", "--input", dest="ipath", help="parse input hand history", default="-") + parser.add_option("-o", "--output", dest="opath", help="output translation to", default="-") + parser.add_option("-f", "--follow", dest="follow", help="follow (tail -f) the input", action="store_true", default=False) + parser.add_option("-q", "--quiet", action="store_const", const=logging.CRITICAL, dest="verbosity", default=logging.INFO) + parser.add_option("-v", "--verbose", action="store_const", const=logging.INFO, dest="verbosity") + parser.add_option("--vv", action="store_const", const=logging.DEBUG, dest="verbosity") + + (options, args) = parser.parse_args() + + LOG_FILENAME = './logging.out' + logging.basicConfig(filename=LOG_FILENAME, level=options.verbosity) + + e = Carbon(in_path = options.ipath, + out_path = options.opath, + follow = options.follow, + autostart = True) diff --git a/pyfpdb/Card.py b/pyfpdb/Card.py index 8639fd35..46d56262 100755 --- a/pyfpdb/Card.py +++ b/pyfpdb/Card.py @@ -4,12 +4,12 @@ #This program is free software: you can redistribute it and/or modify #it under the terms of the GNU Affero General Public License as published by #the Free Software Foundation, version 3 of the License. -# +# #This program is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #GNU General Public License for more details. -# +# #You should have received a copy of the GNU Affero General Public License #along with this program. If not, see . #In the "official" distribution you can find the license in @@ -39,24 +39,37 @@ def calcStartCards(hand, player): def twoStartCards(value1, suit1, value2, suit2): """ Function to convert 2 value,suit pairs into a Holdem style starting hand e.g. AQo - Hand is stored as an int 13 * x + y where (x+2) represents rank of 1st card and + Incoming values should be ints 2-14 (2,3,...K,A), suits are 'd'/'h'/'c'/'s' + Hand is stored as an int 13 * x + y + 1 where (x+2) represents rank of 1st card and (y+2) represents rank of second card (2=2 .. 14=Ace) - If x > y then pair is suited, if x < y then unsuited""" - if value1 < 2 or value2 < 2: + If x > y then pair is suited, if x < y then unsuited + Examples: + 0 Unknown / Illegal cards + 1 22 + 2 32o + 3 42o + ... + 14 32s + 15 33 + 16 42o + ... + 170 AA + """ + if value1 is None or value1 < 2 or value1 > 14 or value2 is None or value2 < 2 or value2 > 14: ret = 0 - if value1 == value2: # pairs - ret = (13 * (value2-2) + (value2-2) ) + elif value1 == value2: # pairs + ret = (13 * (value2-2) + (value2-2) ) + 1 elif suit1 == suit2: if value1 > value2: - ret = 13 * (value1-2) + (value2-2) + ret = 13 * (value1-2) + (value2-2) + 1 else: - ret = 13 * (value2-2) + (value1-2) + ret = 13 * (value2-2) + (value1-2) + 1 else: if value1 > value2: - ret = 13 * (value2-2) + (value1-2) + ret = 13 * (value2-2) + (value1-2) + 1 else: - ret = 13 * (value1-2) + (value2-2) - + ret = 13 * (value1-2) + (value2-2) + 1 + # print "twoStartCards(", value1, suit1, value2, suit2, ")=", ret return ret @@ -66,8 +79,8 @@ def twoStartCardString(card): ret = 'xx' if card > 0: s = ('2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A') - x = card / 13 - y = card - 13 * x + x = (card-1) / 13 + y = (card-1) - 13 * x if x == y: ret = s[x] + s[y] elif x > y: ret = s[x] + s[y] + 's' else: ret = s[y] + s[x] + 'o' @@ -95,7 +108,7 @@ def fourStartCards(value1, suit1, value2, suit2, value3, suit3, value4, suit4): # SSSS (K, J, 6, 3) # - 13C4 = 715 possibilities # SSSx (K, J, 6),(3) - # - 13C3 * 13 = 3718 possibilities + # - 13C3 * 13 = 3718 possibilities # SSxy (K, J),(6),(3) # - 13C2 * 13*13 = 13182 possibilities # SSHH (K, J),(6, 3) @@ -118,7 +131,7 @@ suitFromCardList = ['', '2h', '3h', '4h', '5h', '6h', '7h', '8h', '9h', 'Th', 'J , '2s', '3s', '4s', '5s', '6s', '7s', '8s', '9s', 'Ts', 'Js', 'Qs', 'Ks', 'As' ] def valueSuitFromCard(card): - """ Function to convert a card stored in the database (int 0-52) into value + """ Function to convert a card stored in the database (int 0-52) into value and suit like 9s, 4c etc """ global suitFromCardList if card < 0 or card > 52 or not card: @@ -127,10 +140,10 @@ def valueSuitFromCard(card): return suitFromCardList[card] encodeCardList = {'2h': 1, '3h': 2, '4h': 3, '5h': 4, '6h': 5, '7h': 6, '8h': 7, '9h': 8, 'Th': 9, 'Jh': 10, 'Qh': 11, 'Kh': 12, 'Ah': 13, - '2d': 14, '3d': 15, '4d': 16, '5d': 17, '6d': 18, '7d': 19, '8d': 20, '9d': 21, 'Td': 22, 'Jd': 23, 'Qd': 24, 'Kd': 25, 'Ad': 26, - '2c': 27, '3c': 28, '4c': 29, '5c': 30, '6c': 31, '7c': 32, '8c': 33, '9c': 34, 'Tc': 35, 'Jc': 36, 'Qc': 27, 'Kc': 38, 'Ac': 39, - '2s': 40, '3s': 41, '4s': 42, '5s': 43, '6s': 44, '7s': 45, '8s': 46, '9s': 47, 'Ts': 48, 'Js': 49, 'Qs': 50, 'Ks': 51, 'As': 52, - ' ': 0 + '2d': 14, '3d': 15, '4d': 16, '5d': 17, '6d': 18, '7d': 19, '8d': 20, '9d': 21, 'Td': 22, 'Jd': 23, 'Qd': 24, 'Kd': 25, 'Ad': 26, + '2c': 27, '3c': 28, '4c': 29, '5c': 30, '6c': 31, '7c': 32, '8c': 33, '9c': 34, 'Tc': 35, 'Jc': 36, 'Qc': 37, 'Kc': 38, 'Ac': 39, + '2s': 40, '3s': 41, '4s': 42, '5s': 43, '6s': 44, '7s': 45, '8s': 46, '9s': 47, 'Ts': 48, 'Js': 49, 'Qs': 50, 'Ks': 51, 'As': 52, + ' ': 0 } def encodeCard(cardString): @@ -145,5 +158,5 @@ if __name__ == '__main__': print "card %2d = %s card %2d = %s card %2d = %s card %2d = %s" % \ (i, valueSuitFromCard(i), i+13, valueSuitFromCard(i+13), i+26, valueSuitFromCard(i+26), i+39, valueSuitFromCard(i+39)) - print + print print encodeCard('7c') diff --git a/pyfpdb/Charset.py b/pyfpdb/Charset.py new file mode 100644 index 00000000..9c49f505 --- /dev/null +++ b/pyfpdb/Charset.py @@ -0,0 +1,77 @@ +#!/usr/bin/python + +#Copyright 2010 Mika Bostrom +#This program is free software: you can redistribute it and/or modify +#it under the terms of the GNU Affero General Public License as published by +#the Free Software Foundation, version 3 of the License. +# +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +# +#You should have received a copy of the GNU Affero General Public License +#along with this program. If not, see . +#In the "official" distribution you can find the license in +#agpl-3.0.txt in the docs folder of the package. + +# Error logging +import sys + +# String manipulation +import codecs + +# Settings +import Configuration + +encoder_to_utf = codecs.lookup('utf-8') +encoder_to_sys = codecs.lookup(Configuration.LOCALE_ENCODING) + +# I'm saving a few cycles with this one +not_needed1, not_needed2, not_needed3 = False, False, False +if Configuration.LOCALE_ENCODING == 'UTF8': + not_needed1, not_needed2, not_needed3 = True, True, True + +def to_utf8(s): + if not_needed1: return s + + try: + #(_out, _len) = encoder_to_utf.encode(s) + _out = unicode(s, Configuration.LOCALE_ENCODING).encode('utf-8') + return _out + except UnicodeDecodeError: + sys.stderr.write('Could not convert: "%s"\n' % s) + raise + except UnicodeEncodeError: + sys.stderr.write('Could not encode: "%s"\n' % s) + raise + except TypeError: # TypeError is raised when we give unicode() an already encoded string + return s + +def to_db_utf8(s): + if not_needed2: return s + + try: + (_out, _len) = encoder_to_utf.encode(unicode(s)) + return _out + except UnicodeDecodeError: + sys.stderr.write('Could not convert: "%s"\n' % s) + raise + except UnicodeEncodeError: + sys.stderr.write('Could not encode: "%s"\n' % s) + raise + +def to_gui(s): + if not_needed3: return s + + try: + # we usually don't want to use 'replace' but this is only for displaying + # in the gui so it doesn't matter if names are missing an accent or two + (_out, _len) = encoder_to_sys.encode(s, 'replace') + return _out + except UnicodeDecodeError: + sys.stderr.write('Could not convert: "%s"\n' % s) + raise + except UnicodeEncodeError: + sys.stderr.write('Could not encode: "%s"\n' % s) + raise diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index 117fd0c7..f7694e90 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -31,12 +31,17 @@ import inspect import string import traceback import shutil +import locale import xml.dom.minidom from xml.dom.minidom import Node import logging, logging.config import ConfigParser +# logging has been set up in fpdb.py or HUD_main.py, use their settings: +log = logging.getLogger("config") + + ############################################################################## # Functions for finding config files and setting up logging # Also used in other modules that use logging. @@ -51,60 +56,100 @@ def get_default_config_path(): return config_path def get_exec_path(): - """Returns the path to the fpdb.(py|exe) file we are executing""" + """Returns the path to the fpdb(dir|.exe) file we are executing""" if hasattr(sys, "frozen"): # compiled by py2exe return os.path.dirname(sys.executable) else: - pathname = os.path.dirname(sys.argv[0]) - return os.path.abspath(pathname) + return os.path.dirname(sys.path[0]) # should be path to /fpdb def get_config(file_name, fallback = True): """Looks in cwd and in self.default_config_path for a config file.""" - config_path = os.path.join(get_exec_path(), file_name) + exec_dir = get_exec_path() + if file_name == 'logging.conf' and not hasattr(sys, "frozen"): + config_path = os.path.join(exec_dir, 'pyfpdb', file_name) + else: + config_path = os.path.join(exec_dir, file_name) # print "config_path=", config_path if os.path.exists(config_path): # there is a file in the cwd - return config_path # so we use it + return (config_path,False) # so we use it else: # no file in the cwd, look where it should be in the first place - config_path = os.path.join(get_default_config_path(), file_name) + default_dir = get_default_config_path() + config_path = os.path.join(default_dir, file_name) # print "config path 2=", config_path if os.path.exists(config_path): - return config_path + return (config_path,False) # No file found if not fallback: - return False + return (False,False) # OK, fall back to the .example file, should be in the start dir if os.path.exists(file_name + ".example"): try: - shutil.copyfile(file_name + ".example", file_name) - print "No %s found, using %s.example.\n" % (file_name, file_name) - print "A %s file has been created. You will probably have to edit it." % file_name - sys.stderr.write("No %s found, using %s.example.\n" % (file_name, file_name) ) + print "" + check_dir(default_dir) + shutil.copyfile(file_name + ".example", config_path) + msg = "No %s found\n in %s\n or %s\n" % (file_name, exec_dir, default_dir) \ + + "Config file has been created at %s.\n" % config_path + print msg + logging.info(msg) + file_name = config_path except: - print "No %s found, cannot fall back. Exiting.\n" % file_name - sys.stderr.write("No %s found, cannot fall back. Exiting.\n" % file_name) + print "Error copying .example file, cannot fall back. Exiting.\n" + sys.stderr.write("Error copying .example file, cannot fall back. Exiting.\n") + sys.stderr.write( str(sys.exc_info()) ) sys.exit() - return file_name + else: + print "No %s found, cannot fall back. Exiting.\n" % file_name + sys.stderr.write("No %s found, cannot fall back. Exiting.\n" % file_name) + sys.exit() + return (file_name,True) -def get_logger(file_name, config = "config", fallback = False): - conf = get_config(file_name, fallback = fallback) - if conf: +def get_logger(file_name, config = "config", fallback = False, log_dir=None, log_file=None): + (conf_file,copied) = get_config(file_name, fallback = fallback) + + if log_dir is None: + log_dir = os.path.join(get_exec_path(), 'log') + #print "\nget_logger: checking log_dir:", log_dir + check_dir(log_dir) + if log_file is None: + file = os.path.join(log_dir, 'fpdb-log.txt') + else: + file = os.path.join(log_dir, log_file) + + if conf_file: try: - logging.config.fileConfig(conf) + file = file.replace('\\', '\\\\') # replace each \ with \\ +# print " ="+file+" "+ str(type(file))+" len="+str(len(file))+"\n" + logging.config.fileConfig(conf_file, {"logFile":file}) log = logging.getLogger(config) log.debug("%s logger initialised" % config) return log except: pass - log = logging.basicConfig() + log = logging.basicConfig(filename=file, level=logging.INFO) log = logging.getLogger() - log.debug("config logger initialised") + # but it looks like default is no output :-( maybe because all the calls name a module? + log.debug("Default logger initialised for "+file) + print "Default logger intialised for "+file return log -# find a logging.conf file and set up logging -log = get_logger("logging.conf") +def check_dir(path, create = True): + """Check if a dir exists, optionally creates if not.""" + if os.path.exists(path): + if os.path.isdir(path): + return path + else: + return False + if create: + msg = "Creating directory: '%s'" % (path) + print msg + log.info(msg) + os.mkdir(path) + else: + return False + ######################################################################## # application wide consts @@ -112,10 +157,6 @@ log = get_logger("logging.conf") APPLICATION_NAME_SHORT = 'fpdb' APPLICATION_VERSION = 'xx.xx.xx' -DIR_SELF = os.path.dirname(get_exec_path()) -#TODO: imo no good idea to place 'database' in parent dir -DIR_DATABASES = os.path.join(os.path.dirname(DIR_SELF), 'database') - DATABASE_TYPE_POSTGRESQL = 'postgresql' DATABASE_TYPE_SQLITE = 'sqlite' DATABASE_TYPE_MYSQL = 'mysql' @@ -125,7 +166,20 @@ DATABASE_TYPES = ( DATABASE_TYPE_MYSQL, ) -NEWIMPORT = False +#LOCALE_ENCODING = locale.getdefaultlocale()[1] +LOCALE_ENCODING = locale.getpreferredencoding() +if LOCALE_ENCODING == "US-ASCII": + print "Default encoding set to US-ASCII, defaulting to CP1252 instead -- If you're not on a Mac, please report this problem." + LOCALE_ENCODING = "cp1252" + + +# needs LOCALE_ENCODING (above), imported for sqlite setup in Config class below + +FROZEN = hasattr(sys, "frozen") +EXEC_PATH = get_exec_path() + +import Charset + ######################################################################## def string_to_bool(string, default=True): @@ -399,11 +453,11 @@ class Tv: class Config: def __init__(self, file = None, dbname = ''): - # "file" is a path to an xml file with the fpdb/HUD configuration # we check the existence of "file" and try to recover if it doesn't exist # self.default_config_path = self.get_default_config_path() + self.example_copy = False if file is not None: # config file path passed in file = os.path.expanduser(file) if not os.path.exists(file): @@ -411,7 +465,15 @@ class Config: sys.stderr.write("Configuration file %s not found. Using defaults." % (file)) file = None - if file is None: file = get_config("HUD_config.xml") + if file is None: (file,self.example_copy) = get_config("HUD_config.xml", True) + + self.file = file + self.dir_self = get_exec_path() + self.dir_config = os.path.dirname(self.file) + self.dir_log = os.path.join(self.dir_config, 'log') + self.dir_database = os.path.join(self.dir_config, 'database') + self.log_file = os.path.join(self.dir_log, 'fpdb-log.txt') + log = get_logger("logging.conf", "config", log_dir=self.dir_log) # Parse even if there was no real config file found and we are using the example # If using the example, we'll edit it later @@ -427,7 +489,6 @@ class Config: sys.exit() self.doc = doc - self.file = file self.supported_sites = {} self.supported_games = {} self.supported_databases = {} # databaseName --> Database instance @@ -564,7 +625,11 @@ class Config: def save(self, file = None): if file is None: file = self.file - shutil.move(file, file+".backup") + try: + shutil.move(file, file+".backup") + except: + pass + with open(file, 'w') as f: self.doc.writexml(f) @@ -629,6 +694,10 @@ class Config: db['db-backend'] = 3 elif self.supported_databases[name].db_server== DATABASE_TYPE_SQLITE: db['db-backend'] = 4 + # sqlcoder: this assignment fixes unicode problems for me with sqlite (windows, cp1252) + # feel free to remove or improve this if you understand the problems + # better than me (not hard!) + Charset.not_needed1, Charset.not_needed2, Charset.not_needed3 = True, True, True else: raise ValueError('Unsupported database backend: %s' % self.supported_databases[name].db_server) return db @@ -977,3 +1046,9 @@ if __name__== "__main__": PrettyPrint(site_node, stream=sys.stdout, encoding="utf-8") except: print "xml.dom.ext needs PyXML to be installed!" + + print "FROZEN =", FROZEN + print "EXEC_PATH =", EXEC_PATH + + print "press enter to end" + sys.stdin.readline() diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 72b41336..0303aad2 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -38,19 +38,61 @@ from decimal import Decimal import string import re import Queue +import codecs +import math + +import logging +# logging has been set up in fpdb.py or HUD_main.py, use their settings: +log = logging.getLogger("db") + # pyGTK modules + # FreePokerTools modules -import fpdb_db -import fpdb_simple -import Configuration import SQL import Card import Tourney +import Charset from Exceptions import * +import Configuration + + +# Other library modules +try: + import sqlalchemy.pool as pool + use_pool = True +except ImportError: + log.info("Not using sqlalchemy connection pool.") + use_pool = False + +try: + from numpy import var + use_numpy = True +except ImportError: + log.info("Not using numpy to define variance in sqlite.") + use_numpy = False + + +DB_VERSION = 119 + + +# Variance created as sqlite has a bunch of undefined aggregate functions. + +class VARIANCE: + def __init__(self): + self.store = [] + + def step(self, value): + self.store.append(value) + + def finalize(self): + return float(var(self.store)) + +class sqlitemath: + def mod(self, a, b): + return a%b -log = Configuration.get_logger("logging.conf") class Database: @@ -185,10 +227,27 @@ class Database: def __init__(self, c, sql = None): - log.info("Creating Database instance, sql = %s" % sql) + #log = Configuration.get_logger("logging.conf", "db", log_dir=c.dir_log) + log.debug("Creating Database instance, sql = %s" % sql) self.config = c self.__connected = False - self.fdb = fpdb_db.fpdb_db() # sets self.fdb.db self.fdb.cursor and self.fdb.sql + self.settings = {} + self.settings['os'] = "linuxmac" if os.name != "nt" else "windows" + db_params = c.get_db_parameters() + self.import_options = c.get_import_parameters() + self.backend = db_params['db-backend'] + self.db_server = db_params['db-server'] + self.database = db_params['db-databaseName'] + self.host = db_params['db-host'] + self.db_path = '' + + # where possible avoid creating new SQL instance by using the global one passed in + if sql is None: + self.sql = SQL.Sql(db_server = self.db_server) + else: + self.sql = sql + + # connect to db self.do_connect(c) if self.backend == self.PGSQL: @@ -198,12 +257,6 @@ class Database: #ISOLATION_LEVEL_SERIALIZABLE = 2 - # where possible avoid creating new SQL instance by using the global one passed in - if sql is None: - self.sql = SQL.Sql(db_server = self.db_server) - else: - self.sql = sql - if self.backend == self.SQLITE and self.database == ':memory:' and self.wrongDbVersion: log.info("sqlite/:memory: - creating") self.recreate_tables() @@ -226,8 +279,6 @@ class Database: self.h_date_ndays_ago = 'd000000' # date N days ago ('d' + YYMMDD) for hero self.date_nhands_ago = {} # dates N hands ago per player - not used yet - self.cursor = self.fdb.cursor - self.saveActions = False if self.import_options['saveActions'] == False else True self.connection.rollback() # make sure any locks taken so far are released @@ -238,14 +289,20 @@ class Database: self.hud_style = style def do_connect(self, c): + if c is None: + raise FpdbError('Configuration not defined') + + db = c.get_db_parameters() try: - self.fdb.do_connect(c) + self.connect(backend=db['db-backend'], + host=db['db-host'], + database=db['db-databaseName'], + user=db['db-user'], + password=db['db-password']) except: # error during connect self.__connected = False raise - self.connection = self.fdb.db - self.wrongDbVersion = self.fdb.wrongDbVersion db_params = c.get_db_parameters() self.import_options = c.get_import_parameters() @@ -255,11 +312,155 @@ class Database: self.host = db_params['db-host'] self.__connected = True + def connect(self, backend=None, host=None, database=None, + user=None, password=None): + """Connects a database with the given parameters""" + if backend is None: + raise FpdbError('Database backend not defined') + self.backend = backend + self.host = host + self.user = user + self.password = password + self.database = database + self.connection = None + self.cursor = None + + if backend == Database.MYSQL_INNODB: + import MySQLdb + if use_pool: + MySQLdb = pool.manage(MySQLdb, pool_size=5) + try: + self.connection = MySQLdb.connect(host=host, user=user, passwd=password, db=database, use_unicode=True) + #TODO: Add port option + except MySQLdb.Error, ex: + if ex.args[0] == 1045: + raise FpdbMySQLAccessDenied(ex.args[0], ex.args[1]) + elif ex.args[0] == 2002 or ex.args[0] == 2003: # 2002 is no unix socket, 2003 is no tcp socket + raise FpdbMySQLNoDatabase(ex.args[0], ex.args[1]) + else: + print "*** WARNING UNKNOWN MYSQL ERROR", ex + elif backend == Database.PGSQL: + import psycopg2 + import psycopg2.extensions + if use_pool: + psycopg2 = pool.manage(psycopg2, pool_size=5) + psycopg2.extensions.register_type(psycopg2.extensions.UNICODE) + # If DB connection is made over TCP, then the variables + # host, user and password are required + # For local domain-socket connections, only DB name is + # needed, and everything else is in fact undefined and/or + # flat out wrong + # sqlcoder: This database only connect failed in my windows setup?? + # Modifed it to try the 4 parameter style if the first connect fails - does this work everywhere? + connected = False + if self.host == "localhost" or self.host == "127.0.0.1": + try: + self.connection = psycopg2.connect(database = database) + connected = True + except: + # direct connection failed so try user/pass/... version + pass + if not connected: + try: + self.connection = psycopg2.connect(host = host, + user = user, + password = password, + database = database) + except Exception, ex: + if 'Connection refused' in ex.args[0]: + # meaning eg. db not running + raise FpdbPostgresqlNoDatabase(errmsg = ex.args[0]) + elif 'password authentication' in ex.args[0]: + raise FpdbPostgresqlAccessDenied(errmsg = ex.args[0]) + else: + msg = ex.args[0] + print msg + raise FpdbError(msg) + elif backend == Database.SQLITE: + import sqlite3 + if use_pool: + sqlite3 = pool.manage(sqlite3, pool_size=1) + #else: + # log.warning("SQLite won't work well without 'sqlalchemy' installed.") + + if database != ":memory:": + if not os.path.isdir(self.config.dir_database): + print "Creating directory: '%s'" % (self.config.dir_database) + log.info("Creating directory: '%s'" % (self.config.dir_database)) + os.mkdir(self.config.dir_database) + database = os.path.join(self.config.dir_database, database) + self.db_path = database + log.info("Connecting to SQLite: %(database)s" % {'database':self.db_path}) + self.connection = sqlite3.connect(self.db_path, detect_types=sqlite3.PARSE_DECLTYPES ) + sqlite3.register_converter("bool", lambda x: bool(int(x))) + sqlite3.register_adapter(bool, lambda x: "1" if x else "0") + self.connection.create_function("floor", 1, math.floor) + tmp = sqlitemath() + self.connection.create_function("mod", 2, tmp.mod) + if use_numpy: + self.connection.create_aggregate("variance", 1, VARIANCE) + else: + log.warning("Some database functions will not work without NumPy support") + self.cursor = self.connection.cursor() + self.cursor.execute('PRAGMA temp_store=2') # use memory for temp tables/indexes + self.cursor.execute('PRAGMA synchronous=0') # don't wait for file writes to finish + else: + raise FpdbError("unrecognised database backend:"+backend) + + self.cursor = self.connection.cursor() + self.cursor.execute(self.sql.query['set tx level']) + self.check_version(database=database, create=True) + + + def check_version(self, database, create): + self.wrongDbVersion = False + try: + self.cursor.execute("SELECT * FROM Settings") + settings = self.cursor.fetchone() + if settings[0] != DB_VERSION: + log.error("outdated or too new database version (%s) - please recreate tables" + % (settings[0])) + self.wrongDbVersion = True + except:# _mysql_exceptions.ProgrammingError: + if database != ":memory:": + if create: + print "Failed to read settings table - recreating tables" + log.info("failed to read settings table - recreating tables") + self.recreate_tables() + self.check_version(database=database, create=False) + else: + print "Failed to read settings table - please recreate tables" + log.info("failed to read settings table - please recreate tables") + self.wrongDbVersion = True + else: + self.wrongDbVersion = True + #end def connect + def commit(self): - self.fdb.db.commit() + if self.backend != self.SQLITE: + self.connection.commit() + else: + # sqlite commits can fail because of shared locks on the database (SQLITE_BUSY) + # re-try commit if it fails in case this happened + maxtimes = 5 + pause = 1 + ok = False + for i in xrange(maxtimes): + try: + ret = self.connection.commit() + log.debug("commit finished ok, i = "+str(i)) + ok = True + except: + log.debug("commit "+str(i)+" failed: info=" + str(sys.exc_info()) + + " value=" + str(sys.exc_value)) + sleep(pause) + if ok: break + if not ok: + log.debug("commit failed") + raise FpdbError('sqlite commit failed') def rollback(self): - self.fdb.db.rollback() + self.connection.rollback() def connected(self): return self.__connected @@ -272,11 +473,18 @@ class Database: def disconnect(self, due_to_error=False): """Disconnects the DB (rolls back if param is true, otherwise commits""" - self.fdb.disconnect(due_to_error) + if due_to_error: + self.connection.rollback() + else: + self.connection.commit() + self.cursor.close() + self.connection.close() def reconnect(self, due_to_error=False): """Reconnects the DB""" - self.fdb.reconnect(due_to_error=False) + #print "started reconnect" + self.disconnect(due_to_error) + self.connect(self.backend, self.host, self.database, self.user, self.password) def get_backend_name(self): """Returns the name of the currently used backend""" @@ -289,6 +497,9 @@ class Database: else: raise FpdbError("invalid backend") + def get_db_info(self): + return (self.host, self.database, self.user, self.password) + def get_table_name(self, hand_id): c = self.connection.cursor() c.execute(self.sql.query['get_table_name'], (hand_id, )) @@ -358,28 +569,6 @@ class Database: cards['common'] = c.fetchone() return cards - def convert_cards(self, d): - ranks = ('', '', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A') - cards = "" - for i in xrange(1, 8): -# key = 'card' + str(i) + 'Value' -# if not d.has_key(key): continue -# if d[key] == None: -# break -# elif d[key] == 0: -# cards += "xx" -# else: -# cards += ranks[d['card' + str(i) + 'Value']] + d['card' +str(i) + 'Suit'] - cv = "card%dvalue" % i - if cv not in d or d[cv] is None: - break - elif d[cv] == 0: - cards += "xx" - else: - cs = "card%dsuit" % i - cards = "%s%s%s" % (cards, ranks[d[cv]], d[cs]) - return cards - def get_action_from_hand(self, hand_no): action = [ [], [], [], [], [] ] c = self.connection.cursor() @@ -587,6 +776,7 @@ class Database: elif not name.lower() in stat_dict[playerid]: stat_dict[playerid][name.lower()] = val elif name.lower() not in ('hand_id', 'player_id', 'seat', 'screen_name', 'seats'): + #print "DEBUG: stat_dict[%s][%s]: %s" %(playerid, name.lower(), val) stat_dict[playerid][name.lower()] += val n += 1 if n >= 10000: break # todo: don't think this is needed so set nice and high @@ -602,7 +792,9 @@ class Database: def get_player_id(self, config, site, player_name): c = self.connection.cursor() - c.execute(self.sql.query['get_player_id'], (player_name, site)) + #print "get_player_id: player_name =", player_name, type(player_name) + p_name = Charset.to_utf8(player_name) + c.execute(self.sql.query['get_player_id'], (p_name, site)) row = c.fetchone() if row: return row[0] @@ -615,73 +807,11 @@ class Database: if site_id is None: site_id = -1 c = self.get_cursor() - c.execute(self.sql.query['get_player_names'], (like_player_name, site_id, site_id)) + p_name = Charset.to_utf8(like_player_name) + c.execute(self.sql.query['get_player_names'], (p_name, site_id, site_id)) rows = c.fetchall() return rows - #returns the SQL ids of the names given in an array - # TODO: if someone gets industrious, they should make the parts that use the output of this function deal with a dict - # { playername: id } instead of depending on it's relation to the positions list - # then this can be reduced in complexity a bit - - #def recognisePlayerIDs(cursor, names, site_id): - # result = [] - # for i in xrange(len(names)): - # cursor.execute ("SELECT id FROM Players WHERE name=%s", (names[i],)) - # tmp=cursor.fetchall() - # if (len(tmp)==0): #new player - # cursor.execute ("INSERT INTO Players (name, siteId) VALUES (%s, %s)", (names[i], site_id)) - # #print "Number of players rows inserted: %d" % cursor.rowcount - # cursor.execute ("SELECT id FROM Players WHERE name=%s", (names[i],)) - # tmp=cursor.fetchall() - # #print "recognisePlayerIDs, names[i]:",names[i],"tmp:",tmp - # result.append(tmp[0][0]) - # return result - - def recognisePlayerIDs(self, names, site_id): - c = self.get_cursor() - q = "SELECT name,id FROM Players WHERE siteid=%d and (name=%s)" %(site_id, " OR name=".join([self.sql.query['placeholder'] for n in names])) - c.execute(q, names) # get all playerids by the names passed in - ids = dict(c.fetchall()) # convert to dict - if len(ids) != len(names): - notfound = [n for n in names if n not in ids] # make list of names not in database - if notfound: # insert them into database - q_ins = "INSERT INTO Players (name, siteId) VALUES (%s, "+str(site_id)+")" - q_ins = q_ins.replace('%s', self.sql.query['placeholder']) - c.executemany(q_ins, [(n,) for n in notfound]) - q2 = "SELECT name,id FROM Players WHERE siteid=%d and (name=%s)" % (site_id, " OR name=".join(["%s" for n in notfound])) - q2 = q2.replace('%s', self.sql.query['placeholder']) - c.execute(q2, notfound) # get their new ids - tmp = c.fetchall() - for n,id in tmp: # put them all into the same dict - ids[n] = id - # return them in the SAME ORDER that they came in in the names argument, rather than the order they came out of the DB - return [ids[n] for n in names] - #end def recognisePlayerIDs - - # Here's a version that would work if it wasn't for the fact that it needs to have the output in the same order as input - # this version could also be improved upon using list comprehensions, etc - - #def recognisePlayerIDs(cursor, names, site_id): - # result = [] - # notfound = [] - # cursor.execute("SELECT name,id FROM Players WHERE name='%s'" % "' OR name='".join(names)) - # tmp = dict(cursor.fetchall()) - # for n in names: - # if n not in tmp: - # notfound.append(n) - # else: - # result.append(tmp[n]) - # if notfound: - # cursor.executemany("INSERT INTO Players (name, siteId) VALUES (%s, "+str(site_id)+")", (notfound)) - # cursor.execute("SELECT id FROM Players WHERE name='%s'" % "' OR name='".join(notfound)) - # tmp = cursor.fetchall() - # for n in tmp: - # result.append(n[0]) - # - # return result - - def get_site_id(self, site): c = self.get_cursor() c.execute(self.sql.query['getSiteId'], (site,)) @@ -724,120 +854,6 @@ class Database: return ret - #stores a stud/razz hand into the database - def ring_stud(self, config, settings, base, category, site_hand_no, gametype_id, hand_start_time - ,names, player_ids, start_cashes, antes, card_values, card_suits, winnings, rakes - ,action_types, allIns, action_amounts, actionNos, hudImportData, maxSeats, tableName - ,seatNos): - - fpdb_simple.fillCardArrays(len(names), base, category, card_values, card_suits) - - hands_id = self.storeHands(self.backend, site_hand_no, gametype_id - ,hand_start_time, names, tableName, maxSeats, hudImportData - ,(None, None, None, None, None), (None, None, None, None, None)) - - #print "before calling store_hands_players_stud, antes:", antes - hands_players_ids = self.store_hands_players_stud(self.backend, hands_id, player_ids - ,start_cashes, antes, card_values - ,card_suits, winnings, rakes, seatNos) - - if 'dropHudCache' not in settings or settings['dropHudCache'] != 'drop': - self.storeHudCache(self.backend, base, category, gametype_id, hand_start_time, player_ids, hudImportData) - - return hands_id - #end def ring_stud - - def ring_holdem_omaha(self, config, settings, base, category, site_hand_no, gametype_id - ,hand_start_time, names, player_ids, start_cashes, positions, card_values - ,card_suits, board_values, board_suits, winnings, rakes, action_types, allIns - ,action_amounts, actionNos, hudImportData, maxSeats, tableName, seatNos): - """stores a holdem/omaha hand into the database""" - - t0 = time() - #print "in ring_holdem_omaha" - fpdb_simple.fillCardArrays(len(names), base, category, card_values, card_suits) - t1 = time() - fpdb_simple.fill_board_cards(board_values, board_suits) - t2 = time() - - hands_id = self.storeHands(self.backend, site_hand_no, gametype_id - ,hand_start_time, names, tableName, maxSeats - ,hudImportData, board_values, board_suits) - #TEMPORARY CALL! - Just until all functions are migrated - t3 = time() - hands_players_ids = self.store_hands_players_holdem_omaha( - self.backend, category, hands_id, player_ids, start_cashes - , positions, card_values, card_suits, winnings, rakes, seatNos, hudImportData) - t4 = time() - if 'dropHudCache' not in settings or settings['dropHudCache'] != 'drop': - self.storeHudCache(self.backend, base, category, gametype_id, hand_start_time, player_ids, hudImportData) - t5 = time() - #print "fills=(%4.3f) saves=(%4.3f,%4.3f,%4.3f)" % (t2-t0, t3-t2, t4-t3, t5-t4) - return hands_id - #end def ring_holdem_omaha - - def tourney_holdem_omaha(self, config, settings, base, category, siteTourneyNo, buyin, fee, knockout - ,entries, prizepool, tourney_start, payin_amounts, ranks, tourneyTypeId - ,siteId #end of tourney specific params - ,site_hand_no, gametype_id, hand_start_time, names, player_ids - ,start_cashes, positions, card_values, card_suits, board_values - ,board_suits, winnings, rakes, action_types, allIns, action_amounts - ,actionNos, hudImportData, maxSeats, tableName, seatNos): - """stores a tourney holdem/omaha hand into the database""" - - fpdb_simple.fillCardArrays(len(names), base, category, card_values, card_suits) - fpdb_simple.fill_board_cards(board_values, board_suits) - - tourney_id = self.store_tourneys(tourneyTypeId, siteTourneyNo, entries, prizepool, tourney_start) - tourneys_players_ids = self.store_tourneys_players(tourney_id, player_ids, payin_amounts, ranks, winnings) - - hands_id = self.storeHands(self.backend, site_hand_no, gametype_id - ,hand_start_time, names, tableName, maxSeats - ,hudImportData, board_values, board_suits) - - hands_players_ids = self.store_hands_players_holdem_omaha_tourney( - self.backend, category, hands_id, player_ids, start_cashes, positions - , card_values, card_suits, winnings, rakes, seatNos, tourneys_players_ids - , hudImportData, tourneyTypeId) - - #print "tourney holdem, backend=%d" % backend - if 'dropHudCache' not in settings or settings['dropHudCache'] != 'drop': - self.storeHudCache(self.backend, base, category, gametype_id, hand_start_time, player_ids, hudImportData) - - return hands_id - #end def tourney_holdem_omaha - - def tourney_stud(self, config, settings, base, category, siteTourneyNo, buyin, fee, knockout, entries - ,prizepool, tourneyStartTime, payin_amounts, ranks, tourneyTypeId, siteId - ,siteHandNo, gametypeId, handStartTime, names, playerIds, startCashes, antes - ,cardValues, cardSuits, winnings, rakes, actionTypes, allIns, actionAmounts - ,actionNos, hudImportData, maxSeats, tableName, seatNos): - #stores a tourney stud/razz hand into the database - - fpdb_simple.fillCardArrays(len(names), base, category, cardValues, cardSuits) - - tourney_id = self.store_tourneys(tourneyTypeId, siteTourneyNo, entries, prizepool, tourneyStartTime) - - tourneys_players_ids = self.store_tourneys_players(tourney_id, playerIds, payin_amounts, ranks, winnings) - - hands_id = self.storeHands( self.backend, siteHandNo, gametypeId - , handStartTime, names, tableName, maxSeats - , hudImportData, (None, None, None, None, None), (None, None, None, None, None) ) - # changed board_values and board_suits to arrays of None, just like the - # cash game version of this function does - i don't believe this to be - # the correct thing to do (tell me if i'm wrong) but it should keep the - # importer from crashing - - hands_players_ids = self.store_hands_players_stud_tourney(self.backend, hands_id - , playerIds, startCashes, antes, cardValues, cardSuits - , winnings, rakes, seatNos, tourneys_players_ids, tourneyTypeId) - - if 'dropHudCache' not in settings or settings['dropHudCache'] != 'drop': - self.storeHudCache(self.backend, base, category, gametypeId, handStartTime, playerIds, hudImportData) - - return hands_id - #end def tourney_stud - def prepareBulkImport(self): """Drop some indexes/foreign keys to prepare for bulk import. Currently keeping the standalone indexes as needed to import quickly""" @@ -1041,6 +1057,7 @@ class Database: self.create_tables() self.createAllIndexes() self.commit() + print "Finished recreating tables" log.info("Finished recreating tables") #end def recreate_tables @@ -1306,7 +1323,7 @@ class Database: def fillDefaultData(self): c = self.get_cursor() - c.execute("INSERT INTO Settings (version) VALUES (118);") + c.execute("INSERT INTO Settings (version) VALUES (%s);" % (DB_VERSION)) c.execute("INSERT INTO Sites (name,currency) VALUES ('Full Tilt Poker', 'USD')") c.execute("INSERT INTO Sites (name,currency) VALUES ('PokerStars', 'USD')") c.execute("INSERT INTO Sites (name,currency) VALUES ('Everleaf', 'USD')") @@ -1317,6 +1334,8 @@ class Database: c.execute("INSERT INTO Sites (name,currency) VALUES ('Absolute', 'USD')") c.execute("INSERT INTO Sites (name,currency) VALUES ('PartyPoker', 'USD')") c.execute("INSERT INTO Sites (name,currency) VALUES ('Partouche', 'EUR')") + c.execute("INSERT INTO Sites (name,currency) VALUES ('Carbon', 'USD')") + c.execute("INSERT INTO Sites (name,currency) VALUES ('PKR', 'USD')") if self.backend == self.SQLITE: c.execute("INSERT INTO TourneyTypes (id, siteId, buyin, fee) VALUES (NULL, 1, 0, 0);") elif self.backend == self.PGSQL: @@ -1462,67 +1481,9 @@ class Database: try: self.get_cursor().execute(self.sql.query['lockForInsert']) except: - print "Error during fdb.lock_for_insert:", str(sys.exc_value) + print "Error during lock_for_insert:", str(sys.exc_value) #end def lock_for_insert - def store_the_hand(self, h): - """Take a HandToWrite object and store it in the db""" - - # Following code writes hands to database and commits (or rolls back if there is an error) - try: - result = None - if h.isTourney: - ranks = map(lambda x: 0, h.names) # create an array of 0's equal to the length of names - payin_amounts = fpdb_simple.calcPayin(len(h.names), h.buyin, h.fee) - - if h.base == "hold": - result = self.tourney_holdem_omaha( - h.config, h.settings, h.base, h.category, h.siteTourneyNo, h.buyin - , h.fee, h.knockout, h.entries, h.prizepool, h.tourneyStartTime - , payin_amounts, ranks, h.tourneyTypeId, h.siteID, h.siteHandNo - , h.gametypeID, h.handStartTime, h.names, h.playerIDs, h.startCashes - , h.positions, h.cardValues, h.cardSuits, h.boardValues, h.boardSuits - , h.winnings, h.rakes, h.actionTypes, h.allIns, h.actionAmounts - , h.actionNos, h.hudImportData, h.maxSeats, h.tableName, h.seatNos) - elif h.base == "stud": - result = self.tourney_stud( - h.config, h.settings, h.base, h.category, h.siteTourneyNo - , h.buyin, h.fee, h.knockout, h.entries, h.prizepool, h.tourneyStartTime - , payin_amounts, ranks, h.tourneyTypeId, h.siteID, h.siteHandNo - , h.gametypeID, h.handStartTime, h.names, h.playerIDs, h.startCashes - , h.antes, h.cardValues, h.cardSuits, h.winnings, h.rakes, h.actionTypes - , h.allIns, h.actionAmounts, h.actionNos, h.hudImportData, h.maxSeats - , h.tableName, h.seatNos) - else: - raise FpdbError("unrecognised category") - else: - if h.base == "hold": - result = self.ring_holdem_omaha( - h.config, h.settings, h.base, h.category, h.siteHandNo - , h.gametypeID, h.handStartTime, h.names, h.playerIDs - , h.startCashes, h.positions, h.cardValues, h.cardSuits - , h.boardValues, h.boardSuits, h.winnings, h.rakes - , h.actionTypes, h.allIns, h.actionAmounts, h.actionNos - , h.hudImportData, h.maxSeats, h.tableName, h.seatNos) - elif h.base == "stud": - result = self.ring_stud( - h.config, h.settings, h.base, h.category, h.siteHandNo, h.gametypeID - , h.handStartTime, h.names, h.playerIDs, h.startCashes, h.antes - , h.cardValues, h.cardSuits, h.winnings, h.rakes, h.actionTypes, h.allIns - , h.actionAmounts, h.actionNos, h.hudImportData, h.maxSeats, h.tableName - , h.seatNos) - else: - raise FpdbError("unrecognised category") - except: - print "Error storing hand: " + str(sys.exc_value) - self.rollback() - # re-raise the exception so that the calling routine can decide what to do: - # (e.g. a write thread might try again) - raise - - return result - #end def store_the_hand - ########################### # NEWIMPORT CODE ########################### @@ -1539,6 +1500,7 @@ class Database: p['tableName'], p['gameTypeId'], p['siteHandNo'], + 0, # tourneyId: 0 means not a tourney hand p['handStart'], datetime.today(), #importtime p['seats'], @@ -1663,145 +1625,111 @@ class Database: c = self.get_cursor() c.executemany(q, inserts) - def storeHudCacheNew(self, gid, pid, hc): - q = """INSERT INTO HudCache ( - gametypeId, - playerId - ) - VALUES ( - %s, %s - )""" + def storeHudCache(self, gid, pids, starttime, pdata): + """Update cached statistics. If update fails because no record exists, do an insert.""" -# gametypeId, -# playerId, -# activeSeats, -# position, -# tourneyTypeId, -# styleKey, -# HDs, -# street0VPI, -# street0Aggr, -# street0_3BChance, -# street0_3BDone, -# street1Seen, -# street2Seen, -# street3Seen, -# street4Seen, -# sawShowdown, -# street1Aggr, -# street2Aggr, -# street3Aggr, -# street4Aggr, -# otherRaisedStreet1, -# otherRaisedStreet2, -# otherRaisedStreet3, -# otherRaisedStreet4, -# foldToOtherRaisedStreet1, -# foldToOtherRaisedStreet2, -# foldToOtherRaisedStreet3, -# foldToOtherRaisedStreet4, -# wonWhenSeenStreet1, -# wonAtSD, -# stealAttemptChance, -# stealAttempted, -# foldBbToStealChance, -# foldedBbToSteal, -# foldSbToStealChance, -# foldedSbToSteal, -# street1CBChance, -# street1CBDone, -# street2CBChance, -# street2CBDone, -# street3CBChance, -# street3CBDone, -# street4CBChance, -# street4CBDone, -# foldToStreet1CBChance, -# foldToStreet1CBDone, -# foldToStreet2CBChance, -# foldToStreet2CBDone, -# foldToStreet3CBChance, -# foldToStreet3CBDone, -# foldToStreet4CBChance, -# foldToStreet4CBDone, -# totalProfit, -# street1CheckCallRaiseChance, -# street1CheckCallRaiseDone, -# street2CheckCallRaiseChance, -# street2CheckCallRaiseDone, -# street3CheckCallRaiseChance, -# street3CheckCallRaiseDone, -# street4CheckCallRaiseChance, -# street4CheckCallRaiseDone) + if self.use_date_in_hudcache: + styleKey = datetime.strftime(starttime, 'd%y%m%d') + #styleKey = "d%02d%02d%02d" % (hand_start_time.year-2000, hand_start_time.month, hand_start_time.day) + else: + # hard-code styleKey as 'A000000' (all-time cache, no key) for now + styleKey = 'A000000' - q = q.replace('%s', self.sql.query['placeholder']) + update_hudcache = self.sql.query['update_hudcache'] + update_hudcache = update_hudcache.replace('%s', self.sql.query['placeholder']) + insert_hudcache = self.sql.query['insert_hudcache'] + insert_hudcache = insert_hudcache.replace('%s', self.sql.query['placeholder']) + + #print "DEBUG: %s %s %s" %(hid, pids, pdata) + inserts = [] + for p in pdata: + line = [0]*61 + + line[0] = 1 # HDs + if pdata[p]['street0VPI']: line[1] = 1 + if pdata[p]['street0Aggr']: line[2] = 1 + if pdata[p]['street0_3BChance']: line[3] = 1 + if pdata[p]['street0_3BDone']: line[4] = 1 + if pdata[p]['street1Seen']: line[5] = 1 + if pdata[p]['street2Seen']: line[6] = 1 + if pdata[p]['street3Seen']: line[7] = 1 + if pdata[p]['street4Seen']: line[8] = 1 + if pdata[p]['sawShowdown']: line[9] = 1 + if pdata[p]['street1Aggr']: line[10] = 1 + if pdata[p]['street2Aggr']: line[11] = 1 + if pdata[p]['street3Aggr']: line[12] = 1 + if pdata[p]['street4Aggr']: line[13] = 1 + if pdata[p]['otherRaisedStreet1']: line[14] = 1 + if pdata[p]['otherRaisedStreet2']: line[15] = 1 + if pdata[p]['otherRaisedStreet3']: line[16] = 1 + if pdata[p]['otherRaisedStreet4']: line[17] = 1 + if pdata[p]['foldToOtherRaisedStreet1']: line[18] = 1 + if pdata[p]['foldToOtherRaisedStreet2']: line[19] = 1 + if pdata[p]['foldToOtherRaisedStreet3']: line[20] = 1 + if pdata[p]['foldToOtherRaisedStreet4']: line[21] = 1 + line[22] = pdata[p]['wonWhenSeenStreet1'] + line[23] = pdata[p]['wonAtSD'] + if pdata[p]['stealAttemptChance']: line[24] = 1 + if pdata[p]['stealAttempted']: line[25] = 1 + if pdata[p]['foldBbToStealChance']: line[26] = 1 + if pdata[p]['foldedBbToSteal']: line[27] = 1 + if pdata[p]['foldSbToStealChance']: line[28] = 1 + if pdata[p]['foldedSbToSteal']: line[29] = 1 + if pdata[p]['street1CBChance']: line[30] = 1 + if pdata[p]['street1CBDone']: line[31] = 1 + if pdata[p]['street2CBChance']: line[32] = 1 + if pdata[p]['street2CBDone']: line[33] = 1 + if pdata[p]['street3CBChance']: line[34] = 1 + if pdata[p]['street3CBDone']: line[35] = 1 + if pdata[p]['street4CBChance']: line[36] = 1 + if pdata[p]['street4CBDone']: line[37] = 1 + if pdata[p]['foldToStreet1CBChance']: line[38] = 1 + if pdata[p]['foldToStreet1CBDone']: line[39] = 1 + if pdata[p]['foldToStreet2CBChance']: line[40] = 1 + if pdata[p]['foldToStreet2CBDone']: line[41] = 1 + if pdata[p]['foldToStreet3CBChance']: line[42] = 1 + if pdata[p]['foldToStreet3CBDone']: line[43] = 1 + if pdata[p]['foldToStreet4CBChance']: line[44] = 1 + if pdata[p]['foldToStreet4CBDone']: line[45] = 1 + line[46] = pdata[p]['totalProfit'] + if pdata[p]['street1CheckCallRaiseChance']: line[47] = 1 + if pdata[p]['street1CheckCallRaiseDone']: line[48] = 1 + if pdata[p]['street2CheckCallRaiseChance']: line[49] = 1 + if pdata[p]['street2CheckCallRaiseDone']: line[50] = 1 + if pdata[p]['street3CheckCallRaiseChance']: line[51] = 1 + if pdata[p]['street3CheckCallRaiseDone']: line[52] = 1 + if pdata[p]['street4CheckCallRaiseChance']: line[53] = 1 + if pdata[p]['street4CheckCallRaiseDone']: line[54] = 1 + line[55] = gid # gametypeId + line[56] = pids[p] # playerId + line[57] = len(pids) # activeSeats + pos = {'B':'B', 'S':'S', 0:'D', 1:'C', 2:'M', 3:'M', 4:'M', 5:'E', 6:'E', 7:'E', 8:'E', 9:'E' } + line[58] = pos[pdata[p]['position']] + line[59] = pdata[p]['tourneyTypeId'] + line[60] = styleKey # styleKey + inserts.append(line) - self.cursor.execute(q, ( - gid, - pid - )) -# gametypeId, -# playerId, -# activeSeats, -# position, -# tourneyTypeId, -# styleKey, -# HDs, -# street0VPI, -# street0Aggr, -# street0_3BChance, -# street0_3BDone, -# street1Seen, -# street2Seen, -# street3Seen, -# street4Seen, -# sawShowdown, -# street1Aggr, -# street2Aggr, -# street3Aggr, -# street4Aggr, -# otherRaisedStreet1, -# otherRaisedStreet2, -# otherRaisedStreet3, -# otherRaisedStreet4, -# foldToOtherRaisedStreet1, -# foldToOtherRaisedStreet2, -# foldToOtherRaisedStreet3, -# foldToOtherRaisedStreet4, -# wonWhenSeenStreet1, -# wonAtSD, -# stealAttemptChance, -# stealAttempted, -# foldBbToStealChance, -# foldedBbToSteal, -# foldSbToStealChance, -# foldedSbToSteal, -# street1CBChance, -# street1CBDone, -# street2CBChance, -# street2CBDone, -# street3CBChance, -# street3CBDone, -# street4CBChance, -# street4CBDone, -# foldToStreet1CBChance, -# foldToStreet1CBDone, -# foldToStreet2CBChance, -# foldToStreet2CBDone, -# foldToStreet3CBChance, -# foldToStreet3CBDone, -# foldToStreet4CBChance, -# foldToStreet4CBDone, -# totalProfit, -# street1CheckCallRaiseChance, -# street1CheckCallRaiseDone, -# street2CheckCallRaiseChance, -# street2CheckCallRaiseDone, -# street3CheckCallRaiseChance, -# street3CheckCallRaiseDone, -# street4CheckCallRaiseChance, -# street4CheckCallRaiseDone) + cursor = self.get_cursor() + + for row in inserts: + # Try to do the update first: + num = cursor.execute(update_hudcache, row) + #print "DEBUG: values: %s" % row[-6:] + # Test statusmessage to see if update worked, do insert if not + # num is a cursor in sqlite + if ((self.backend == self.PGSQL and cursor.statusmessage != "UPDATE 1") + or (self.backend == self.MYSQL_INNODB and num == 0) + or (self.backend == self.SQLITE and num.rowcount == 0)): + #move the last 6 items in WHERE clause of row from the end of the array + # to the beginning for the INSERT statement + #print "DEBUG: using INSERT: %s" % num + row = row[-6:] + row[:-6] + num = cursor.execute(insert_hudcache, row) + #print "DEBUG: Successfully(?: %s) updated HudCacho using INSERT" % num + else: + #print "DEBUG: Successfully updated HudCacho using UPDATE" + pass def isDuplicate(self, gametypeID, siteHandNo): dup = False @@ -1831,10 +1759,10 @@ class Database: def getSqlPlayerIDs(self, pnames, siteid): result = {} if(self.pcache == None): - self.pcache = LambdaDict(lambda key:self.insertPlayer(key, siteid)) + self.pcache = LambdaDict(lambda key:self.insertPlayer(key[0], key[1])) for player in pnames: - result[player] = self.pcache[player] + result[player] = self.pcache[(player,siteid)] # NOTE: Using the LambdaDict does the same thing as: #if player in self.pcache: # #print "DEBUG: cachehit" @@ -1847,6 +1775,7 @@ class Database: def insertPlayer(self, name, site_id): result = None + _name = Charset.to_db_utf8(name) c = self.get_cursor() q = "SELECT name, id FROM Players WHERE siteid=%s and name=%s" q = q.replace('%s', self.sql.query['placeholder']) @@ -1860,12 +1789,12 @@ class Database: #print "DEBUG: name: %s site: %s" %(name, site_id) - c.execute (q, (site_id, name)) + c.execute (q, (site_id, _name)) tmp = c.fetchone() if (tmp == None): #new player c.execute ("INSERT INTO Players (name, siteId) VALUES (%s, %s)".replace('%s',self.sql.query['placeholder']) - ,(name, site_id)) + ,(_name, site_id)) #Get last id might be faster here. #c.execute ("SELECT id FROM Players WHERE name=%s", (name,)) result = self.get_last_insert_id(c) @@ -1886,535 +1815,6 @@ class Database: - def storeHands(self, backend, site_hand_no, gametype_id - ,hand_start_time, names, tableName, maxSeats, hudCache - ,board_values, board_suits): - - cards = [Card.cardFromValueSuit(v,s) for v,s in zip(board_values,board_suits)] - #stores into table hands: - try: - c = self.get_cursor() - c.execute ("""INSERT INTO Hands - (siteHandNo, gametypeId, handStart, seats, tableName, importTime, maxSeats - ,boardcard1,boardcard2,boardcard3,boardcard4,boardcard5 - ,playersVpi, playersAtStreet1, playersAtStreet2 - ,playersAtStreet3, playersAtStreet4, playersAtShowdown - ,street0Raises, street1Raises, street2Raises - ,street3Raises, street4Raises, street1Pot - ,street2Pot, street3Pot, street4Pot - ,showdownPot - ) - VALUES - (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) - """.replace('%s', self.sql.query['placeholder']) - , (site_hand_no, gametype_id, hand_start_time, len(names), tableName, datetime.today(), maxSeats - ,cards[0], cards[1], cards[2], cards[3], cards[4] - ,hudCache['playersVpi'], hudCache['playersAtStreet1'], hudCache['playersAtStreet2'] - ,hudCache['playersAtStreet3'], hudCache['playersAtStreet4'], hudCache['playersAtShowdown'] - ,hudCache['street0Raises'], hudCache['street1Raises'], hudCache['street2Raises'] - ,hudCache['street3Raises'], hudCache['street4Raises'], hudCache['street1Pot'] - ,hudCache['street2Pot'], hudCache['street3Pot'], hudCache['street4Pot'] - ,hudCache['showdownPot'] - )) - ret = self.get_last_insert_id(c) - except: - ret = -1 - raise FpdbError( "storeHands error: " + str(sys.exc_value) ) - - return ret - #end def storeHands - - def store_hands_players_holdem_omaha(self, backend, category, hands_id, player_ids, start_cashes - ,positions, card_values, card_suits, winnings, rakes, seatNos, hudCache): - result=[] - - # postgres (and others?) needs the booleans converted to ints before saving: - # (or we could just save them as boolean ... but then we can't sum them so easily in sql ???) - # NO - storing booleans for now so don't need this - #hudCacheInt = {} - #for k,v in hudCache.iteritems(): - # if k in ('wonWhenSeenStreet1', 'wonAtSD', 'totalProfit'): - # hudCacheInt[k] = v - # else: - # hudCacheInt[k] = map(lambda x: 1 if x else 0, v) - - try: - inserts = [] - for i in xrange(len(player_ids)): - card1 = Card.cardFromValueSuit(card_values[i][0], card_suits[i][0]) - card2 = Card.cardFromValueSuit(card_values[i][1], card_suits[i][1]) - - if (category=="holdem"): - startCards = Card.twoStartCards(card_values[i][0], card_suits[i][0], card_values[i][1], card_suits[i][1]) - card3 = None - card4 = None - elif (category=="omahahi" or category=="omahahilo"): - startCards = Card.fourStartCards(card_values[i][0], card_suits[i][0], card_values[i][1], card_suits[i][1] - ,card_values[i][2], card_suits[i][2], card_values[i][3], card_suits[i][3]) - card3 = Card.cardFromValueSuit(card_values[i][2], card_suits[i][2]) - card4 = Card.cardFromValueSuit(card_values[i][3], card_suits[i][3]) - else: - raise FpdbError("invalid category") - - inserts.append( ( - hands_id, player_ids[i], start_cashes[i], positions[i], 1, # tourneytypeid - needed for hudcache - card1, card2, card3, card4, startCards, - winnings[i], rakes[i], seatNos[i], hudCache['totalProfit'][i], - hudCache['street0VPI'][i], hudCache['street0Aggr'][i], - hudCache['street0_3BChance'][i], hudCache['street0_3BDone'][i], - hudCache['street1Seen'][i], hudCache['street2Seen'][i], hudCache['street3Seen'][i], - hudCache['street4Seen'][i], hudCache['sawShowdown'][i], - hudCache['street1Aggr'][i], hudCache['street2Aggr'][i], hudCache['street3Aggr'][i], hudCache['street4Aggr'][i], - hudCache['otherRaisedStreet1'][i], hudCache['otherRaisedStreet2'][i], - hudCache['otherRaisedStreet3'][i], hudCache['otherRaisedStreet4'][i], - hudCache['foldToOtherRaisedStreet1'][i], hudCache['foldToOtherRaisedStreet2'][i], - hudCache['foldToOtherRaisedStreet3'][i], hudCache['foldToOtherRaisedStreet4'][i], - hudCache['wonWhenSeenStreet1'][i], hudCache['wonAtSD'][i], - hudCache['stealAttemptChance'][i], hudCache['stealAttempted'][i], hudCache['foldBbToStealChance'][i], - hudCache['foldedBbToSteal'][i], hudCache['foldSbToStealChance'][i], hudCache['foldedSbToSteal'][i], - hudCache['street1CBChance'][i], hudCache['street1CBDone'][i], hudCache['street2CBChance'][i], hudCache['street2CBDone'][i], - hudCache['street3CBChance'][i], hudCache['street3CBDone'][i], hudCache['street4CBChance'][i], hudCache['street4CBDone'][i], - hudCache['foldToStreet1CBChance'][i], hudCache['foldToStreet1CBDone'][i], - hudCache['foldToStreet2CBChance'][i], hudCache['foldToStreet2CBDone'][i], - hudCache['foldToStreet3CBChance'][i], hudCache['foldToStreet3CBDone'][i], - hudCache['foldToStreet4CBChance'][i], hudCache['foldToStreet4CBDone'][i], - hudCache['street1CheckCallRaiseChance'][i], hudCache['street1CheckCallRaiseDone'][i], - hudCache['street2CheckCallRaiseChance'][i], hudCache['street2CheckCallRaiseDone'][i], - hudCache['street3CheckCallRaiseChance'][i], hudCache['street3CheckCallRaiseDone'][i], - hudCache['street4CheckCallRaiseChance'][i], hudCache['street4CheckCallRaiseDone'][i], - hudCache['street0Calls'][i], hudCache['street1Calls'][i], hudCache['street2Calls'][i], hudCache['street3Calls'][i], hudCache['street4Calls'][i], - hudCache['street0Bets'][i], hudCache['street1Bets'][i], hudCache['street2Bets'][i], hudCache['street3Bets'][i], hudCache['street4Bets'][i] - ) ) - c = self.get_cursor() - c.executemany (""" - INSERT INTO HandsPlayers - (handId, playerId, startCash, position, tourneyTypeId, - card1, card2, card3, card4, startCards, winnings, rake, seatNo, totalProfit, - street0VPI, street0Aggr, street0_3BChance, street0_3BDone, - street1Seen, street2Seen, street3Seen, street4Seen, sawShowdown, - street1Aggr, street2Aggr, street3Aggr, street4Aggr, - otherRaisedStreet1, otherRaisedStreet2, otherRaisedStreet3, otherRaisedStreet4, - foldToOtherRaisedStreet1, foldToOtherRaisedStreet2, foldToOtherRaisedStreet3, foldToOtherRaisedStreet4, - wonWhenSeenStreet1, wonAtSD, - stealAttemptChance, stealAttempted, foldBbToStealChance, foldedBbToSteal, foldSbToStealChance, foldedSbToSteal, - street1CBChance, street1CBDone, street2CBChance, street2CBDone, - street3CBChance, street3CBDone, street4CBChance, street4CBDone, - foldToStreet1CBChance, foldToStreet1CBDone, foldToStreet2CBChance, foldToStreet2CBDone, - foldToStreet3CBChance, foldToStreet3CBDone, foldToStreet4CBChance, foldToStreet4CBDone, - street1CheckCallRaiseChance, street1CheckCallRaiseDone, street2CheckCallRaiseChance, street2CheckCallRaiseDone, - street3CheckCallRaiseChance, street3CheckCallRaiseDone, street4CheckCallRaiseChance, street4CheckCallRaiseDone, - street0Calls, street1Calls, street2Calls, street3Calls, street4Calls, - street0Bets, street1Bets, street2Bets, street3Bets, street4Bets - ) - VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""".replace('%s', self.sql.query['placeholder']) - ,inserts ) - result.append( self.get_last_insert_id(c) ) # wrong? not used currently - except: - raise FpdbError( "store_hands_players_holdem_omaha error: " + str(sys.exc_value) ) - - return result - #end def store_hands_players_holdem_omaha - - def store_hands_players_stud(self, backend, hands_id, player_ids, start_cashes, antes, - card_values, card_suits, winnings, rakes, seatNos): - #stores hands_players rows for stud/razz games. returns an array of the resulting IDs - - try: - result=[] - #print "before inserts in store_hands_players_stud, antes:", antes - for i in xrange(len(player_ids)): - card1 = Card.cardFromValueSuit(card_values[i][0], card_suits[i][0]) - card2 = Card.cardFromValueSuit(card_values[i][1], card_suits[i][1]) - card3 = Card.cardFromValueSuit(card_values[i][2], card_suits[i][2]) - card4 = Card.cardFromValueSuit(card_values[i][3], card_suits[i][3]) - card5 = Card.cardFromValueSuit(card_values[i][4], card_suits[i][4]) - card6 = Card.cardFromValueSuit(card_values[i][5], card_suits[i][5]) - card7 = Card.cardFromValueSuit(card_values[i][6], card_suits[i][6]) - - c = self.get_cursor() - c.execute ("""INSERT INTO HandsPlayers - (handId, playerId, startCash, ante, tourneyTypeId, - card1, card2, - card3, card4, - card5, card6, - card7, winnings, rake, seatNo) - VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""".replace('%s', self.sql.query['placeholder']), - (hands_id, player_ids[i], start_cashes[i], antes[i], 1, - card1, card2, - card3, card4, - card5, card6, - card7, winnings[i], rakes[i], seatNos[i])) - #cursor.execute("SELECT id FROM HandsPlayers WHERE handId=%s AND playerId+0=%s", (hands_id, player_ids[i])) - #result.append(cursor.fetchall()[0][0]) - result.append( self.get_last_insert_id(c) ) - except: - raise FpdbError( "store_hands_players_stud error: " + str(sys.exc_value) ) - - return result - #end def store_hands_players_stud - - def store_hands_players_holdem_omaha_tourney(self, backend, category, hands_id, player_ids - ,start_cashes, positions, card_values, card_suits - ,winnings, rakes, seatNos, tourneys_players_ids - ,hudCache, tourneyTypeId): - #stores hands_players for tourney holdem/omaha hands - - try: - result=[] - inserts = [] - for i in xrange(len(player_ids)): - card1 = Card.cardFromValueSuit(card_values[i][0], card_suits[i][0]) - card2 = Card.cardFromValueSuit(card_values[i][1], card_suits[i][1]) - - if len(card_values[0])==2: - startCards = Card.twoStartCards(card_values[i][0], card_suits[i][0], card_values[i][1], card_suits[i][1]) - card3 = None - card4 = None - elif len(card_values[0])==4: - startCards = Card.fourStartCards(card_values[i][0], card_suits[i][0], card_values[i][1], card_suits[i][1] - ,card_values[i][2], card_suits[i][2], card_values[i][3], card_suits[i][3]) - card3 = Card.cardFromValueSuit(card_values[i][2], card_suits[i][2]) - card4 = Card.cardFromValueSuit(card_values[i][3], card_suits[i][3]) - else: - raise FpdbError ("invalid card_values length:"+str(len(card_values[0]))) - - inserts.append( (hands_id, player_ids[i], start_cashes[i], positions[i], tourneyTypeId, - card1, card2, card3, card4, startCards, - winnings[i], rakes[i], tourneys_players_ids[i], seatNos[i], hudCache['totalProfit'][i], - hudCache['street0VPI'][i], hudCache['street0Aggr'][i], - hudCache['street0_3BChance'][i], hudCache['street0_3BDone'][i], - hudCache['street1Seen'][i], hudCache['street2Seen'][i], hudCache['street3Seen'][i], - hudCache['street4Seen'][i], hudCache['sawShowdown'][i], - hudCache['street1Aggr'][i], hudCache['street2Aggr'][i], hudCache['street3Aggr'][i], hudCache['street4Aggr'][i], - hudCache['otherRaisedStreet1'][i], hudCache['otherRaisedStreet2'][i], - hudCache['otherRaisedStreet3'][i], hudCache['otherRaisedStreet4'][i], - hudCache['foldToOtherRaisedStreet1'][i], hudCache['foldToOtherRaisedStreet2'][i], - hudCache['foldToOtherRaisedStreet3'][i], hudCache['foldToOtherRaisedStreet4'][i], - hudCache['wonWhenSeenStreet1'][i], hudCache['wonAtSD'][i], - hudCache['stealAttemptChance'][i], hudCache['stealAttempted'][i], hudCache['foldBbToStealChance'][i], - hudCache['foldedBbToSteal'][i], hudCache['foldSbToStealChance'][i], hudCache['foldedSbToSteal'][i], - hudCache['street1CBChance'][i], hudCache['street1CBDone'][i], hudCache['street2CBChance'][i], hudCache['street2CBDone'][i], - hudCache['street3CBChance'][i], hudCache['street3CBDone'][i], hudCache['street4CBChance'][i], hudCache['street4CBDone'][i], - hudCache['foldToStreet1CBChance'][i], hudCache['foldToStreet1CBDone'][i], - hudCache['foldToStreet2CBChance'][i], hudCache['foldToStreet2CBDone'][i], - hudCache['foldToStreet3CBChance'][i], hudCache['foldToStreet3CBDone'][i], - hudCache['foldToStreet4CBChance'][i], hudCache['foldToStreet4CBDone'][i], - hudCache['street1CheckCallRaiseChance'][i], hudCache['street1CheckCallRaiseDone'][i], - hudCache['street2CheckCallRaiseChance'][i], hudCache['street2CheckCallRaiseDone'][i], - hudCache['street3CheckCallRaiseChance'][i], hudCache['street3CheckCallRaiseDone'][i], - hudCache['street4CheckCallRaiseChance'][i], hudCache['street4CheckCallRaiseDone'][i], - hudCache['street0Calls'][i], hudCache['street1Calls'][i], hudCache['street2Calls'][i], - hudCache['street3Calls'][i], hudCache['street4Calls'][i], - hudCache['street0Bets'][i], hudCache['street1Bets'][i], hudCache['street2Bets'][i], - hudCache['street3Bets'][i], hudCache['street4Bets'][i] - ) ) - - c = self.get_cursor() - c.executemany (""" - INSERT INTO HandsPlayers - (handId, playerId, startCash, position, tourneyTypeId, - card1, card2, card3, card4, startCards, winnings, rake, tourneysPlayersId, seatNo, totalProfit, - street0VPI, street0Aggr, street0_3BChance, street0_3BDone, - street1Seen, street2Seen, street3Seen, street4Seen, sawShowdown, - street1Aggr, street2Aggr, street3Aggr, street4Aggr, - otherRaisedStreet1, otherRaisedStreet2, otherRaisedStreet3, otherRaisedStreet4, - foldToOtherRaisedStreet1, foldToOtherRaisedStreet2, foldToOtherRaisedStreet3, foldToOtherRaisedStreet4, - wonWhenSeenStreet1, wonAtSD, - stealAttemptChance, stealAttempted, foldBbToStealChance, foldedBbToSteal, foldSbToStealChance, foldedSbToSteal, - street1CBChance, street1CBDone, street2CBChance, street2CBDone, - street3CBChance, street3CBDone, street4CBChance, street4CBDone, - foldToStreet1CBChance, foldToStreet1CBDone, foldToStreet2CBChance, foldToStreet2CBDone, - foldToStreet3CBChance, foldToStreet3CBDone, foldToStreet4CBChance, foldToStreet4CBDone, - street1CheckCallRaiseChance, street1CheckCallRaiseDone, street2CheckCallRaiseChance, street2CheckCallRaiseDone, - street3CheckCallRaiseChance, street3CheckCallRaiseDone, street4CheckCallRaiseChance, street4CheckCallRaiseDone, - street0Calls, street1Calls, street2Calls, street3Calls, street4Calls, - street0Bets, street1Bets, street2Bets, street3Bets, street4Bets - ) - VALUES - (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""".replace('%s', self.sql.query['placeholder']) - ,inserts ) - - result.append( self.get_last_insert_id(c) ) - #cursor.execute("SELECT id FROM HandsPlayers WHERE handId=%s AND playerId+0=%s", (hands_id, player_ids[i])) - #result.append(cursor.fetchall()[0][0]) - except: - err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "***Error storing hand: "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) - raise FpdbError( "store_hands_players_holdem_omaha_tourney error: " + str(sys.exc_value) ) - - return result - #end def store_hands_players_holdem_omaha_tourney - - def store_hands_players_stud_tourney(self, backend, hands_id, player_ids, start_cashes, - antes, card_values, card_suits, winnings, rakes, seatNos, tourneys_players_ids, tourneyTypeId): - #stores hands_players for tourney stud/razz hands - return # TODO: stubbed out until someone updates it for current database structuring - try: - result=[] - for i in xrange(len(player_ids)): - c = self.get_cursor() - c.execute ("""INSERT INTO HandsPlayers - (handId, playerId, startCash, ante, - card1Value, card1Suit, card2Value, card2Suit, - card3Value, card3Suit, card4Value, card4Suit, - card5Value, card5Suit, card6Value, card6Suit, - card7Value, card7Suit, winnings, rake, tourneysPlayersId, seatNo, tourneyTypeId) - VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, %s, %s)""".replace('%s', self.sql.query['placeholder']), - (hands_id, player_ids[i], start_cashes[i], antes[i], - card_values[i][0], card_suits[i][0], card_values[i][1], card_suits[i][1], - card_values[i][2], card_suits[i][2], card_values[i][3], card_suits[i][3], - card_values[i][4], card_suits[i][4], card_values[i][5], card_suits[i][5], - card_values[i][6], card_suits[i][6], winnings[i], rakes[i], tourneys_players_ids[i], seatNos[i], tourneyTypeId)) - #cursor.execute("SELECT id FROM HandsPlayers WHERE handId=%s AND playerId+0=%s", (hands_id, player_ids[i])) - #result.append(cursor.fetchall()[0][0]) - result.append( self.get_last_insert_id(c) ) - except: - raise FpdbError( "store_hands_players_stud_tourney error: " + str(sys.exc_value) ) - - return result - #end def store_hands_players_stud_tourney - - def storeHudCache(self, backend, base, category, gametypeId, hand_start_time, playerIds, hudImportData): - """Update cached statistics. If update fails because no record exists, do an insert. - Can't use array updates here (not easily anyway) because we need to insert any rows - that don't get updated.""" - - # if (category=="holdem" or category=="omahahi" or category=="omahahilo"): - try: - if self.use_date_in_hudcache: - #print "key =", "d%02d%02d%02d " % (hand_start_time.year-2000, hand_start_time.month, hand_start_time.day) - styleKey = "d%02d%02d%02d" % (hand_start_time.year-2000, hand_start_time.month, hand_start_time.day) - else: - # hard-code styleKey as 'A000000' (all-time cache, no key) for now - styleKey = 'A000000' - - #print "storeHudCache, len(playerIds)=", len(playerIds), " len(vpip)=" \ - #, len(hudImportData['street0VPI']), " len(totprof)=", len(hudImportData['totalProfit']) - for player in xrange(len(playerIds)): - - # Set up a clean row - row=[] - row.append(0)#blank for id - row.append(gametypeId) - row.append(playerIds[player]) - row.append(len(playerIds))#seats - for i in xrange(len(hudImportData)+2): - row.append(0) - - if base=="hold": - row[4]=hudImportData['position'][player] - else: - row[4]=0 - row[5]=1 #tourneysGametypeId - row[6]+=1 #HDs - if hudImportData['street0VPI'][player]: row[7]+=1 - if hudImportData['street0Aggr'][player]: row[8]+=1 - if hudImportData['street0_3BChance'][player]: row[9]+=1 - if hudImportData['street0_3BDone'][player]: row[10]+=1 - if hudImportData['street1Seen'][player]: row[11]+=1 - if hudImportData['street2Seen'][player]: row[12]+=1 - if hudImportData['street3Seen'][player]: row[13]+=1 - if hudImportData['street4Seen'][player]: row[14]+=1 - if hudImportData['sawShowdown'][player]: row[15]+=1 - if hudImportData['street1Aggr'][player]: row[16]+=1 - if hudImportData['street2Aggr'][player]: row[17]+=1 - if hudImportData['street3Aggr'][player]: row[18]+=1 - if hudImportData['street4Aggr'][player]: row[19]+=1 - if hudImportData['otherRaisedStreet1'][player]: row[20]+=1 - if hudImportData['otherRaisedStreet2'][player]: row[21]+=1 - if hudImportData['otherRaisedStreet3'][player]: row[22]+=1 - if hudImportData['otherRaisedStreet4'][player]: row[23]+=1 - if hudImportData['foldToOtherRaisedStreet1'][player]: row[24]+=1 - if hudImportData['foldToOtherRaisedStreet2'][player]: row[25]+=1 - if hudImportData['foldToOtherRaisedStreet3'][player]: row[26]+=1 - if hudImportData['foldToOtherRaisedStreet4'][player]: row[27]+=1 - if hudImportData['wonWhenSeenStreet1'][player]!=0.0: row[28]+=hudImportData['wonWhenSeenStreet1'][player] - if hudImportData['wonAtSD'][player]!=0.0: row[29]+=hudImportData['wonAtSD'][player] - if hudImportData['stealAttemptChance'][player]: row[30]+=1 - if hudImportData['stealAttempted'][player]: row[31]+=1 - if hudImportData['foldBbToStealChance'][player]: row[32]+=1 - if hudImportData['foldedBbToSteal'][player]: row[33]+=1 - if hudImportData['foldSbToStealChance'][player]: row[34]+=1 - if hudImportData['foldedSbToSteal'][player]: row[35]+=1 - - if hudImportData['street1CBChance'][player]: row[36]+=1 - if hudImportData['street1CBDone'][player]: row[37]+=1 - if hudImportData['street2CBChance'][player]: row[38]+=1 - if hudImportData['street2CBDone'][player]: row[39]+=1 - if hudImportData['street3CBChance'][player]: row[40]+=1 - if hudImportData['street3CBDone'][player]: row[41]+=1 - if hudImportData['street4CBChance'][player]: row[42]+=1 - if hudImportData['street4CBDone'][player]: row[43]+=1 - - if hudImportData['foldToStreet1CBChance'][player]: row[44]+=1 - if hudImportData['foldToStreet1CBDone'][player]: row[45]+=1 - if hudImportData['foldToStreet2CBChance'][player]: row[46]+=1 - if hudImportData['foldToStreet2CBDone'][player]: row[47]+=1 - if hudImportData['foldToStreet3CBChance'][player]: row[48]+=1 - if hudImportData['foldToStreet3CBDone'][player]: row[49]+=1 - if hudImportData['foldToStreet4CBChance'][player]: row[50]+=1 - if hudImportData['foldToStreet4CBDone'][player]: row[51]+=1 - - #print "player=", player - #print "len(totalProfit)=", len(hudImportData['totalProfit']) - if hudImportData['totalProfit'][player]: - row[52]+=hudImportData['totalProfit'][player] - - if hudImportData['street1CheckCallRaiseChance'][player]: row[53]+=1 - if hudImportData['street1CheckCallRaiseDone'][player]: row[54]+=1 - if hudImportData['street2CheckCallRaiseChance'][player]: row[55]+=1 - if hudImportData['street2CheckCallRaiseDone'][player]: row[56]+=1 - if hudImportData['street3CheckCallRaiseChance'][player]: row[57]+=1 - if hudImportData['street3CheckCallRaiseDone'][player]: row[58]+=1 - if hudImportData['street4CheckCallRaiseChance'][player]: row[59]+=1 - if hudImportData['street4CheckCallRaiseDone'][player]: row[60]+=1 - - # Try to do the update first: - cursor = self.get_cursor() - num = cursor.execute("""UPDATE HudCache - SET HDs=HDs+%s, street0VPI=street0VPI+%s, street0Aggr=street0Aggr+%s, - street0_3BChance=street0_3BChance+%s, street0_3BDone=street0_3BDone+%s, - street1Seen=street1Seen+%s, street2Seen=street2Seen+%s, street3Seen=street3Seen+%s, - street4Seen=street4Seen+%s, sawShowdown=sawShowdown+%s, - street1Aggr=street1Aggr+%s, street2Aggr=street2Aggr+%s, street3Aggr=street3Aggr+%s, - street4Aggr=street4Aggr+%s, otherRaisedStreet1=otherRaisedStreet1+%s, - otherRaisedStreet2=otherRaisedStreet2+%s, otherRaisedStreet3=otherRaisedStreet3+%s, - otherRaisedStreet4=otherRaisedStreet4+%s, - foldToOtherRaisedStreet1=foldToOtherRaisedStreet1+%s, foldToOtherRaisedStreet2=foldToOtherRaisedStreet2+%s, - foldToOtherRaisedStreet3=foldToOtherRaisedStreet3+%s, foldToOtherRaisedStreet4=foldToOtherRaisedStreet4+%s, - wonWhenSeenStreet1=wonWhenSeenStreet1+%s, wonAtSD=wonAtSD+%s, stealAttemptChance=stealAttemptChance+%s, - stealAttempted=stealAttempted+%s, foldBbToStealChance=foldBbToStealChance+%s, - foldedBbToSteal=foldedBbToSteal+%s, - foldSbToStealChance=foldSbToStealChance+%s, foldedSbToSteal=foldedSbToSteal+%s, - street1CBChance=street1CBChance+%s, street1CBDone=street1CBDone+%s, street2CBChance=street2CBChance+%s, - street2CBDone=street2CBDone+%s, street3CBChance=street3CBChance+%s, - street3CBDone=street3CBDone+%s, street4CBChance=street4CBChance+%s, street4CBDone=street4CBDone+%s, - foldToStreet1CBChance=foldToStreet1CBChance+%s, foldToStreet1CBDone=foldToStreet1CBDone+%s, - foldToStreet2CBChance=foldToStreet2CBChance+%s, foldToStreet2CBDone=foldToStreet2CBDone+%s, - foldToStreet3CBChance=foldToStreet3CBChance+%s, - foldToStreet3CBDone=foldToStreet3CBDone+%s, foldToStreet4CBChance=foldToStreet4CBChance+%s, - foldToStreet4CBDone=foldToStreet4CBDone+%s, totalProfit=totalProfit+%s, - street1CheckCallRaiseChance=street1CheckCallRaiseChance+%s, - street1CheckCallRaiseDone=street1CheckCallRaiseDone+%s, street2CheckCallRaiseChance=street2CheckCallRaiseChance+%s, - street2CheckCallRaiseDone=street2CheckCallRaiseDone+%s, street3CheckCallRaiseChance=street3CheckCallRaiseChance+%s, - street3CheckCallRaiseDone=street3CheckCallRaiseDone+%s, street4CheckCallRaiseChance=street4CheckCallRaiseChance+%s, - street4CheckCallRaiseDone=street4CheckCallRaiseDone+%s - WHERE gametypeId+0=%s - AND playerId=%s - AND activeSeats=%s - AND position=%s - AND tourneyTypeId+0=%s - AND styleKey=%s - """.replace('%s', self.sql.query['placeholder']) - ,(row[6], row[7], row[8], row[9], row[10], - row[11], row[12], row[13], row[14], row[15], - row[16], row[17], row[18], row[19], row[20], - row[21], row[22], row[23], row[24], row[25], - row[26], row[27], row[28], row[29], row[30], - row[31], row[32], row[33], row[34], row[35], - row[36], row[37], row[38], row[39], row[40], - row[41], row[42], row[43], row[44], row[45], - row[46], row[47], row[48], row[49], row[50], - row[51], row[52], row[53], row[54], row[55], - row[56], row[57], row[58], row[59], row[60], - row[1], row[2], row[3], str(row[4]), row[5], styleKey)) - # Test statusmessage to see if update worked, do insert if not - #print "storehud2, upd num =", num.rowcount - # num is a cursor in sqlite - if ( (backend == self.PGSQL and cursor.statusmessage != "UPDATE 1") - or (backend == self.MYSQL_INNODB and num == 0) - or (backend == self.SQLITE and num.rowcount == 0) - ): - #print "playerid before insert:",row[2]," num = ", num - num = cursor.execute("""INSERT INTO HudCache - (gametypeId, playerId, activeSeats, position, tourneyTypeId, styleKey, - HDs, street0VPI, street0Aggr, street0_3BChance, street0_3BDone, - street1Seen, street2Seen, street3Seen, street4Seen, sawShowdown, - street1Aggr, street2Aggr, street3Aggr, street4Aggr, otherRaisedStreet1, - otherRaisedStreet2, otherRaisedStreet3, otherRaisedStreet4, foldToOtherRaisedStreet1, foldToOtherRaisedStreet2, - foldToOtherRaisedStreet3, foldToOtherRaisedStreet4, wonWhenSeenStreet1, wonAtSD, stealAttemptChance, - stealAttempted, foldBbToStealChance, foldedBbToSteal, foldSbToStealChance, foldedSbToSteal, - street1CBChance, street1CBDone, street2CBChance, street2CBDone, street3CBChance, - street3CBDone, street4CBChance, street4CBDone, foldToStreet1CBChance, foldToStreet1CBDone, - foldToStreet2CBChance, foldToStreet2CBDone, foldToStreet3CBChance, foldToStreet3CBDone, foldToStreet4CBChance, - foldToStreet4CBDone, totalProfit, street1CheckCallRaiseChance, street1CheckCallRaiseDone, street2CheckCallRaiseChance, - street2CheckCallRaiseDone, street3CheckCallRaiseChance, street3CheckCallRaiseDone, street4CheckCallRaiseChance, street4CheckCallRaiseDone) - VALUES (%s, %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s, - %s, %s, %s, %s, %s)""".replace('%s', self.sql.query['placeholder']) - , (row[1], row[2], row[3], row[4], row[5], styleKey, row[6], row[7], row[8], row[9], row[10] - ,row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19], row[20] - ,row[21], row[22], row[23], row[24], row[25], row[26], row[27], row[28], row[29], row[30] - ,row[31], row[32], row[33], row[34], row[35], row[36], row[37], row[38], row[39], row[40] - ,row[41], row[42], row[43], row[44], row[45], row[46], row[47], row[48], row[49], row[50] - ,row[51], row[52], row[53], row[54], row[55], row[56], row[57], row[58], row[59], row[60]) ) - #print "hopefully inserted hud data line: ", cursor.rowcount - # message seems to be "INSERT 0 1" - else: - #print "updated(2) hud data line" - pass - # else: - # print "todo: implement storeHudCache for stud base" - - except: - raise FpdbError( "storeHudCache error: " + str(sys.exc_value) ) - - #end def storeHudCache - - def store_tourneys(self, tourneyTypeId, siteTourneyNo, entries, prizepool, startTime): - ret = -1 - try: - # try and create tourney record, fetch id if it already exists - # avoids race condition when doing the select first - cursor = self.get_cursor() - cursor.execute("savepoint ins_tourney") - cursor.execute("""INSERT INTO Tourneys - (tourneyTypeId, siteTourneyNo, entries, prizepool, startTime) - VALUES (%s, %s, %s, %s, %s)""".replace('%s', self.sql.query['placeholder']) - ,(tourneyTypeId, siteTourneyNo, entries, prizepool, startTime)) - ret = self.get_last_insert_id(cursor) - #print "created new tourneys.id:",ret - except: - #if str(sys.exc_value) contains 'sitetourneyno': - # raise FpdbError( "store_tourneys error: " + str(sys.exc_value) ) - #else: - #print "error insert tourney (%s) trying select ..." % (str(sys.exc_value),) - cursor.execute("rollback to savepoint ins_tourney") - try: - cursor.execute( "SELECT id FROM Tourneys WHERE siteTourneyNo=%s AND tourneyTypeId+0=%s".replace('%s', self.sql.query['placeholder']) - , (siteTourneyNo, tourneyTypeId) ) - rec = cursor.fetchone() - #print "select tourney result: ", rec - try: - len(rec) - ret = rec[0] - except: - print "Tourney id not found" - except: - print "Error selecting tourney id:", str(sys.exc_info()[1]) - - cursor.execute("release savepoint ins_tourney") - #print "store_tourneys returning", ret - return ret - #end def store_tourneys - def store_tourneys_players(self, tourney_id, player_ids, payin_amounts, ranks, winnings): try: result=[] @@ -2531,7 +1931,7 @@ class Database: # end def send_finish_msg(): def tRecogniseTourneyType(self, tourney): - logging.debug("Database.tRecogniseTourneyType") + log.debug("Database.tRecogniseTourneyType") typeId = 1 # Check if Tourney exists, and if so retrieve TTypeId : in that case, check values of the ttype cursor = self.get_cursor() @@ -2547,10 +1947,10 @@ class Database: try: len(result) typeId = result[0] - logging.debug("Tourney found in db with Tourney_Type_ID = %d" % typeId) + log.debug("Tourney found in db with Tourney_Type_ID = %d" % typeId) for ev in expectedValues : if ( getattr( tourney, expectedValues.get(ev) ) <> result[ev] ): - logging.debug("TypeId mismatch : wrong %s : Tourney=%s / db=%s" % (expectedValues.get(ev), getattr( tourney, expectedValues.get(ev)), result[ev]) ) + log.debug("TypeId mismatch : wrong %s : Tourney=%s / db=%s" % (expectedValues.get(ev), getattr( tourney, expectedValues.get(ev)), result[ev]) ) typeIdMatch = False #break except: @@ -2560,7 +1960,7 @@ class Database: if typeIdMatch == False : # Check for an existing TTypeId that matches tourney info (buyin/fee, knockout, rebuy, speed, matrix, shootout) # if not found create it - logging.debug("Searching for a TourneyTypeId matching TourneyType data") + log.debug("Searching for a TourneyTypeId matching TourneyType data") cursor.execute (self.sql.query['getTourneyTypeId'].replace('%s', self.sql.query['placeholder']), (tourney.siteId, tourney.buyin, tourney.fee, tourney.isKO, tourney.isRebuy, tourney.speed, tourney.isHU, tourney.isShootout, tourney.isMatrix) @@ -2570,9 +1970,9 @@ class Database: try: len(result) typeId = result[0] - logging.debug("Existing Tourney Type Id found : %d" % typeId) + log.debug("Existing Tourney Type Id found : %d" % typeId) except TypeError: #this means we need to create a new entry - logging.debug("Tourney Type Id not found : create one") + log.debug("Tourney Type Id not found : create one") cursor.execute (self.sql.query['insertTourneyTypes'].replace('%s', self.sql.query['placeholder']), (tourney.siteId, tourney.buyin, tourney.fee, tourney.isKO, tourney.isRebuy, tourney.speed, tourney.isHU, tourney.isShootout, tourney.isMatrix) @@ -2583,183 +1983,6 @@ class Database: #end def tRecogniseTourneyType - def tRecognizeTourney(self, tourney, dbTourneyTypeId): - logging.debug("Database.tRecognizeTourney") - tourneyID = 1 - # Check if tourney exists in db (based on tourney.siteId and tourney.tourNo) - # If so retrieve all data to check for consistency - cursor = self.get_cursor() - cursor.execute (self.sql.query['getTourney'].replace('%s', self.sql.query['placeholder']), - (tourney.tourNo, tourney.siteId) - ) - result=cursor.fetchone() - - expectedValuesDecimal = { 2 : "entries", 3 : "prizepool", 6 : "buyInChips", 9 : "rebuyChips", - 10 : "addOnChips", 11 : "rebuyAmount", 12 : "addOnAmount", 13 : "totalRebuys", - 14 : "totalAddOns", 15 : "koBounty" } - expectedValues = { 7 : "tourneyName", 16 : "tourneyComment" } - - tourneyDataMatch = True - tCommentTs = None - starttime = None - endtime = None - - try: - len(result) - tourneyID = result[0] - logging.debug("Tourney found in db with TourneyID = %d" % tourneyID) - if result[1] <> dbTourneyTypeId: - tourneyDataMatch = False - logging.debug("Tourney has wrong type ID (expected : %s - found : %s)" % (dbTourneyTypeId, result[1])) - if (tourney.starttime is None and result[4] is not None) or ( tourney.starttime is not None and fpdb_simple.parseHandStartTime("- %s" % tourney.starttime) <> result[4]) : - tourneyDataMatch = False - logging.debug("Tourney data mismatch : wrong starttime : Tourney=%s / db=%s" % (tourney.starttime, result[4])) - if (tourney.endtime is None and result[5] is not None) or ( tourney.endtime is not None and fpdb_simple.parseHandStartTime("- %s" % tourney.endtime) <> result[5]) : - tourneyDataMatch = False - logging.debug("Tourney data mismatch : wrong endtime : Tourney=%s / db=%s" % (tourney.endtime, result[5])) - - for ev in expectedValues : - if ( getattr( tourney, expectedValues.get(ev) ) <> result[ev] ): - logging.debug("Tourney data mismatch : wrong %s : Tourney=%s / db=%s" % (expectedValues.get(ev), getattr( tourney, expectedValues.get(ev)), result[ev]) ) - tourneyDataMatch = False - #break - for evD in expectedValuesDecimal : - if ( Decimal(getattr( tourney, expectedValuesDecimal.get(evD)) ) <> result[evD] ): - logging.debug("Tourney data mismatch : wrong %s : Tourney=%s / db=%s" % (expectedValuesDecimal.get(evD), getattr( tourney, expectedValuesDecimal.get(evD)), result[evD]) ) - tourneyDataMatch = False - #break - - # TO DO : Deal with matrix summary mutliple parsings - - except: - # Tourney not found : create - logging.debug("Tourney is not found : create") - if tourney.tourneyComment is not None : - tCommentTs = datetime.today() - if tourney.starttime is not None : - starttime = fpdb_simple.parseHandStartTime("- %s" % tourney.starttime) - if tourney.endtime is not None : - endtime = fpdb_simple.parseHandStartTime("- %s" % tourney.endtime) - # TODO : deal with matrix Id processed - cursor.execute (self.sql.query['insertTourney'].replace('%s', self.sql.query['placeholder']), - (dbTourneyTypeId, tourney.tourNo, tourney.entries, tourney.prizepool, starttime, - endtime, tourney.buyInChips, tourney.tourneyName, 0, tourney.rebuyChips, tourney.addOnChips, - tourney.rebuyAmount, tourney.addOnAmount, tourney.totalRebuys, tourney.totalAddOns, tourney.koBounty, - tourney.tourneyComment, tCommentTs) - ) - tourneyID = self.get_last_insert_id(cursor) - - - # Deal with inconsistent tourney in db - if tourneyDataMatch == False : - # Update Tourney - if result[16] <> tourney.tourneyComment : - tCommentTs = datetime.today() - if tourney.starttime is not None : - starttime = fpdb_simple.parseHandStartTime("- %s" % tourney.starttime) - if tourney.endtime is not None : - endtime = fpdb_simple.parseHandStartTime("- %s" % tourney.endtime) - - cursor.execute (self.sql.query['updateTourney'].replace('%s', self.sql.query['placeholder']), - (dbTourneyTypeId, tourney.entries, tourney.prizepool, starttime, - endtime, tourney.buyInChips, tourney.tourneyName, 0, tourney.rebuyChips, tourney.addOnChips, - tourney.rebuyAmount, tourney.addOnAmount, tourney.totalRebuys, tourney.totalAddOns, tourney.koBounty, - tourney.tourneyComment, tCommentTs, tourneyID) - ) - - return tourneyID - #end def tRecognizeTourney - - def tStoreTourneyPlayers(self, tourney, dbTourneyId): - logging.debug("Database.tStoreTourneyPlayers") - # First, get playerids for the players and specifically the one for hero : - playersIds = self.recognisePlayerIDs(tourney.players, tourney.siteId) - # hero may be None for matrix tourneys summaries -# hero = [ tourney.hero ] -# heroId = self.recognisePlayerIDs(hero , tourney.siteId) -# logging.debug("hero Id = %s - playersId = %s" % (heroId , playersIds)) - - tourneyPlayersIds=[] - try: - cursor = self.get_cursor() - - for i in xrange(len(playersIds)): - cursor.execute(self.sql.query['getTourneysPlayers'].replace('%s', self.sql.query['placeholder']) - ,(dbTourneyId, playersIds[i])) - result=cursor.fetchone() - #print "tried SELECTing tourneys_players.id:",tmp - - try: - len(result) - # checking data - logging.debug("TourneysPlayers found : checking data") - expectedValuesDecimal = { 1 : "payinAmounts", 2 : "finishPositions", 3 : "winnings", 4 : "countRebuys", - 5 : "countAddOns", 6 : "countKO" } - - tourneyPlayersIds.append(result[0]); - - tourneysPlayersDataMatch = True - for evD in expectedValuesDecimal : - if ( Decimal(getattr( tourney, expectedValuesDecimal.get(evD))[tourney.players[i]] ) <> result[evD] ): - logging.debug("TourneysPlayers data mismatch for TourneysPlayer id=%d, name=%s : wrong %s : Tourney=%s / db=%s" % (result[0], tourney.players[i], expectedValuesDecimal.get(evD), getattr( tourney, expectedValuesDecimal.get(evD))[tourney.players[i]], result[evD]) ) - tourneysPlayersDataMatch = False - #break - - if tourneysPlayersDataMatch == False: - logging.debug("TourneysPlayers data update needed") - cursor.execute (self.sql.query['updateTourneysPlayers'].replace('%s', self.sql.query['placeholder']), - (tourney.payinAmounts[tourney.players[i]], tourney.finishPositions[tourney.players[i]], - tourney.winnings[tourney.players[i]] , tourney.countRebuys[tourney.players[i]], - tourney.countAddOns[tourney.players[i]] , tourney.countKO[tourney.players[i]], - result[7], result[8], result[0]) - ) - - except TypeError: - logging.debug("TourneysPlayers not found : need insert") - cursor.execute (self.sql.query['insertTourneysPlayers'].replace('%s', self.sql.query['placeholder']), - (dbTourneyId, playersIds[i], - tourney.payinAmounts[tourney.players[i]], tourney.finishPositions[tourney.players[i]], - tourney.winnings[tourney.players[i]] , tourney.countRebuys[tourney.players[i]], - tourney.countAddOns[tourney.players[i]] , tourney.countKO[tourney.players[i]], - None, None) - ) - tourneyPlayersIds.append(self.get_last_insert_id(cursor)) - - except: - raise fpdb_simple.FpdbError( "tStoreTourneyPlayers error: " + str(sys.exc_value) ) - - return tourneyPlayersIds - #end def tStoreTourneyPlayers - - def tUpdateTourneysHandsPlayers(self, tourney, dbTourneysPlayersIds, dbTourneyTypeId): - logging.debug("Database.tCheckTourneysHandsPlayers") - try: - # Massive update seems to take quite some time ... -# query = self.sql.query['updateHandsPlayersForTTypeId2'] % (dbTourneyTypeId, self.sql.query['handsPlayersTTypeId_joiner'].join([self.sql.query['placeholder'] for id in dbTourneysPlayersIds]) ) -# cursor = self.get_cursor() -# cursor.execute (query, dbTourneysPlayersIds) - - query = self.sql.query['selectHandsPlayersWithWrongTTypeId'] % (dbTourneyTypeId, self.sql.query['handsPlayersTTypeId_joiner'].join([self.sql.query['placeholder'] for id in dbTourneysPlayersIds]) ) - #print "query : %s" % query - cursor = self.get_cursor() - cursor.execute (query, dbTourneysPlayersIds) - result=cursor.fetchall() - - if (len(result) > 0): - logging.debug("%d lines need update : %s" % (len(result), result) ) - listIds = [] - for i in result: - listIds.append(i[0]) - - query2 = self.sql.query['updateHandsPlayersForTTypeId'] % (dbTourneyTypeId, self.sql.query['handsPlayersTTypeId_joiner_id'].join([self.sql.query['placeholder'] for id in listIds]) ) - cursor.execute (query2, listIds) - else: - logging.debug("No need to update, HandsPlayers are correct") - - except: - raise fpdb_simple.FpdbError( "tStoreTourneyPlayers error: " + str(sys.exc_value) ) - #end def tUpdateTourneysHandsPlayers - # Class used to hold all the data needed to write a hand to the db # mainParser() in fpdb_parse_logic.py creates one of these and then passes it to diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index b65b0d05..d7ded83b 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -48,32 +48,33 @@ class DerivedStats(): self.handsplayers[player[1]]['sawShowdown'] = False self.handsplayers[player[1]]['wonAtSD'] = 0.0 self.handsplayers[player[1]]['startCards'] = 0 + self.handsplayers[player[1]]['position'] = 2 + self.handsplayers[player[1]]['street0_3BChance'] = False + self.handsplayers[player[1]]['street0_3BDone'] = False + self.handsplayers[player[1]]['street0_4BChance'] = False + self.handsplayers[player[1]]['street0_4BDone'] = False + self.handsplayers[player[1]]['stealAttemptChance'] = False + self.handsplayers[player[1]]['stealAttempted'] = False + self.handsplayers[player[1]]['foldBbToStealChance'] = False + self.handsplayers[player[1]]['foldSbToStealChance'] = False + self.handsplayers[player[1]]['foldedSbToSteal'] = False + self.handsplayers[player[1]]['foldedBbToSteal'] = False for i in range(5): self.handsplayers[player[1]]['street%dCalls' % i] = 0 self.handsplayers[player[1]]['street%dBets' % i] = 0 for i in range(1,5): self.handsplayers[player[1]]['street%dCBChance' %i] = False self.handsplayers[player[1]]['street%dCBDone' %i] = False + self.handsplayers[player[1]]['street%dCheckCallRaiseChance' %i] = False + self.handsplayers[player[1]]['street%dCheckCallRaiseDone' %i] = False #FIXME - Everything below this point is incomplete. - self.handsplayers[player[1]]['position'] = 2 self.handsplayers[player[1]]['tourneyTypeId'] = 1 - self.handsplayers[player[1]]['street0_3BChance'] = False - self.handsplayers[player[1]]['street0_3BDone'] = False - self.handsplayers[player[1]]['stealAttemptChance'] = False - self.handsplayers[player[1]]['stealAttempted'] = False - self.handsplayers[player[1]]['foldBbToStealChance'] = False - self.handsplayers[player[1]]['foldBbToStealChance'] = False - self.handsplayers[player[1]]['foldSbToStealChance'] = False - self.handsplayers[player[1]]['foldedSbToSteal'] = False - self.handsplayers[player[1]]['foldedBbToSteal'] = False for i in range(1,5): self.handsplayers[player[1]]['otherRaisedStreet%d' %i] = False self.handsplayers[player[1]]['foldToOtherRaisedStreet%d' %i] = False self.handsplayers[player[1]]['foldToStreet%dCBChance' %i] = False self.handsplayers[player[1]]['foldToStreet%dCBDone' %i] = False - self.handsplayers[player[1]]['street%dCheckCallRaiseChance' %i] = False - self.handsplayers[player[1]]['street%dCheckCallRaiseDone' %i] = False self.assembleHands(self.hand) self.assembleHandsPlayers(self.hand) @@ -174,33 +175,62 @@ class DerivedStats(): self.handsplayers[player[1]]['card%s' % (i+1)] = Card.encodeCard(card) self.handsplayers[player[1]]['startCards'] = Card.calcStartCards(hand, player[1]) - # position, - #Stud 3rd street card test - # denny501: brings in for $0.02 - # s0rrow: calls $0.02 - # TomSludge: folds - # Soroka69: calls $0.02 - # rdiezchang: calls $0.02 (Seat 8) - # u.pressure: folds (Seat 1) - # 123smoothie: calls $0.02 - # gashpor: calls $0.02 - + self.setPositions(hand) + self.calcCheckCallRaise(hand) + self.calc34BetStreet0(hand) + self.calcSteals(hand) # Additional stats # 3betSB, 3betBB # Squeeze, Ratchet? - def getPosition(hand, seat): - """Returns position value like 'B', 'S', 0, 1, ...""" - # Flop/Draw games with blinds - # Need a better system??? - # -2 BB - B (all) - # -1 SB - S (all) - # 0 Button - # 1 Cutoff - # 2 Hijack + def setPositions(self, hand): + """Sets the position for each player in HandsPlayers + any blinds are negative values, and the last person to act on the + first betting round is 0 + NOTE: HU, both values are negative for non-stud games + NOTE2: I've never seen a HU stud match""" + # The position calculation must be done differently for Stud and other games as + # Stud the 'blind' acts first - in all other games they act last. + # + #This function is going to get it wrong when there in situations where there + # is no small blind. I can live with that. + actions = hand.actions[hand.holeStreets[0]] + # Note: pfbao list may not include big blind if all others folded + players = self.pfbao(actions) + + if hand.gametype['base'] == 'stud': + positions = [7, 6, 5, 4, 3, 2, 1, 0, 'S', 'B'] + seats = len(players) + map = [] + # Could posibly change this to be either -2 or -1 depending if they complete or bring-in + # First player to act is -1, last player is 0 for 6 players it should look like: + # ['S', 4, 3, 2, 1, 0] + map = positions[-seats-1:-1] # Copy required positions from postions array anding in -1 + map = map[-1:] + map[0:-1] # and move the -1 to the start of that array + + for i, player in enumerate(players): + #print "player %s in posn %s" % (player, str(map[i])) + self.handsplayers[player]['position'] = map[i] + else: + # set blinds first, then others from pfbao list, avoids problem if bb + # is missing from pfbao list or if there is no small blind + bb = [x[0] for x in hand.actions[hand.actionStreets[0]] if x[2] == 'big blind'] + sb = [x[0] for x in hand.actions[hand.actionStreets[0]] if x[2] == 'small blind'] + # if there are > 1 sb or bb only the first is used! + if bb: + self.handsplayers[bb[0]]['position'] = 'B' + if bb[0] in players: players.remove(bb[0]) + if sb: + self.handsplayers[sb[0]]['position'] = 'S' + if sb[0] in players: players.remove(sb[0]) + + #print "bb =", bb, "sb =", sb, "players =", players + for i,player in enumerate(reversed(players)): + self.handsplayers[player]['position'] = str(i) def assembleHudCache(self, hand): + # No real work to be done - HandsPlayers data already contains the correct info pass def vpip(self, hand): @@ -224,6 +254,7 @@ class DerivedStats(): # The number of unique players in the list per street gives the value for playersAtStreetXXX # FIXME?? - This isn't couting people that are all in - at least showdown needs to reflect this + # ... new code below hopefully fixes this self.hands['playersAtStreet1'] = 0 self.hands['playersAtStreet2'] = 0 @@ -231,23 +262,31 @@ class DerivedStats(): self.hands['playersAtStreet4'] = 0 self.hands['playersAtShowdown'] = 0 - alliners = set() - for (i, street) in enumerate(hand.actionStreets[2:]): - actors = set() - for action in hand.actions[street]: - if len(action) > 2 and action[-1]: # allin - alliners.add(action[0]) - actors.add(action[0]) - if len(actors)==0 and len(alliners)<2: - alliners = set() - self.hands['playersAtStreet%d' % (i+1)] = len(set.union(alliners, actors)) - - actions = hand.actions[hand.actionStreets[-1]] - pas = set.union(self.pfba(actions) - self.pfba(actions, l=('folds',)), alliners) - self.hands['playersAtShowdown'] = len(pas) +# alliners = set() +# for (i, street) in enumerate(hand.actionStreets[2:]): +# actors = set() +# for action in hand.actions[street]: +# if len(action) > 2 and action[-1]: # allin +# alliners.add(action[0]) +# actors.add(action[0]) +# if len(actors)==0 and len(alliners)<2: +# alliners = set() +# self.hands['playersAtStreet%d' % (i+1)] = len(set.union(alliners, actors)) +# +# actions = hand.actions[hand.actionStreets[-1]] +# print "p_actions:", self.pfba(actions), "p_folds:", self.pfba(actions, l=('folds',)), "alliners:", alliners +# pas = set.union(self.pfba(actions) - self.pfba(actions, l=('folds',)), alliners) + + p_in = set(x[1] for x in hand.players) + for (i, street) in enumerate(hand.actionStreets): + actions = hand.actions[street] + p_in = p_in - self.pfba(actions, l=('folds',)) + self.hands['playersAtStreet%d' % (i-1)] = len(p_in) + + self.hands['playersAtShowdown'] = len(p_in) if self.hands['playersAtShowdown'] > 1: - for player in pas: + for player in p_in: self.handsplayers[player]['sawShowdown'] = True def streetXRaises(self, hand): @@ -262,13 +301,65 @@ class DerivedStats(): for (i, street) in enumerate(hand.actionStreets[1:]): self.hands['street%dRaises' % i] = len(filter( lambda action: action[1] in ('raises','bets'), hand.actions[street])) - def calcCBets(self, hand): - # Continuation Bet chance, action: - # Had the last bet (initiative) on previous street, got called, close street action - # Then no bets before the player with initiatives first action on current street - # ie. if player on street-1 had initiative - # and no donkbets occurred + def calcSteals(self, hand): + """Fills stealAttempt(Chance|ed, fold(Bb|Sb)ToSteal(Chance|) + Steal attempt - open raise on positions 1 0 S - i.e. MP3, CO, BU, SB + Fold to steal - folding blind after steal attemp wo any other callers or raisers + """ + steal_attempt = False + steal_positions = ('1', '0', 'S') + if hand.gametype['base'] == 'stud': + steal_positions = ('2', '1', '0') + for action in hand.actions[hand.actionStreets[1]]: + pname, act = action[0], action[1] + posn = self.handsplayers[pname]['position'] + #print "\naction:", action[0], posn, type(posn), steal_attempt, act + if posn == 'B': + #NOTE: Stud games will never hit this section + self.handsplayers[pname]['foldBbToStealChance'] = steal_attempt + self.handsplayers[pname]['foldedBbToSteal'] = steal_attempt and act == 'folds' + break + elif posn == 'S': + self.handsplayers[pname]['foldSbToStealChance'] = steal_attempt + self.handsplayers[pname]['foldedSbToSteal'] = steal_attempt and act == 'folds' + + if steal_attempt and act != 'folds': + break + + if posn in steal_positions and not steal_attempt: + self.handsplayers[pname]['stealAttemptChance'] = True + if act in ('bets', 'raises'): + self.handsplayers[pname]['stealAttempted'] = True + steal_attempt = True + if act == 'calls': + break + + if posn not in steal_positions and act != 'folds': + break + + def calc34BetStreet0(self, hand): + """Fills street0_(3|4)B(Chance|Done), other(3|4)BStreet0""" + bet_level = 1 # bet_level after 3-bet is equal to 3 + for action in hand.actions[hand.actionStreets[1]]: + # FIXME: fill other(3|4)BStreet0 - i have no idea what does it mean + pname, aggr = action[0], action[1] in ('raises', 'bets') + self.handsplayers[pname]['street0_3BChance'] = bet_level == 2 + self.handsplayers[pname]['street0_4BChance'] = bet_level == 3 + self.handsplayers[pname]['street0_3BDone'] = aggr and (self.handsplayers[pname]['street0_3BChance']) + self.handsplayers[pname]['street0_4BDone'] = aggr and (self.handsplayers[pname]['street0_4BChance']) + if aggr: + bet_level += 1 + + + def calcCBets(self, hand): + """Fill streetXCBChance, streetXCBDone, foldToStreetXCBDone, foldToStreetXCBChance + + Continuation Bet chance, action: + Had the last bet (initiative) on previous street, got called, close street action + Then no bets before the player with initiatives first action on current street + ie. if player on street-1 had initiative and no donkbets occurred + """ # XXX: enumerate(list, start=x) is python 2.6 syntax; 'start' # came there #for i, street in enumerate(hand.actionStreets[2:], start=1): @@ -280,6 +371,29 @@ class DerivedStats(): if chance == True: self.handsplayers[name]['street%dCBDone' % (i+1)] = self.betStreet(hand.actionStreets[i+2], name) + def calcCheckCallRaise(self, hand): + """Fill streetXCheckCallRaiseChance, streetXCheckCallRaiseDone + + streetXCheckCallRaiseChance = got raise/bet after check + streetXCheckCallRaiseDone = checked. got raise/bet. didn't fold + + CG: CheckCall would be a much better name for this. + """ + #for i, street in enumerate(hand.actionStreets[2:], start=1): + for i, street in enumerate(hand.actionStreets[2:]): + actions = hand.actions[hand.actionStreets[i+1]] + checkers = set() + initial_raiser = None + for action in actions: + pname, act = action[0], action[1] + if act in ('bets', 'raises') and initial_raiser is None: + initial_raiser = pname + elif act == 'checks' and initial_raiser is None: + checkers.add(pname) + elif initial_raiser is not None and pname in checkers: + self.handsplayers[pname]['street%dCheckCallRaiseChance' % (i+1)] = True + self.handsplayers[pname]['street%dCheckCallRaiseDone' % (i+1)] = act!='folds' + def seen(self, hand, i): pas = set() for act in hand.actions[hand.actionStreets[i+1]]: @@ -293,11 +407,13 @@ class DerivedStats(): def aggr(self, hand, i): aggrers = set() - for act in hand.actions[hand.actionStreets[i]]: - if act[1] in ('completes', 'raises'): + # Growl - actionStreets contains 'BLINDSANTES', which isn't actually an action street + for act in hand.actions[hand.actionStreets[i+1]]: + if act[1] in ('completes', 'bets', 'raises'): aggrers.add(act[0]) for player in hand.players: + #print "DEBUG: actionStreet[%s]: %s" %(hand.actionStreets[i+1], i) if player[1] in aggrers: self.handsplayers[player[1]]['street%sAggr' % i] = True else: @@ -333,6 +449,44 @@ class DerivedStats(): players.add(action[0]) return players + def pfbao(self, actions, f=None, l=None, unique=True): + """Helper method. Returns set of PlayersFilteredByActionsOrdered + + f - forbidden actions + l - limited to actions + """ + # Note, this is an adaptation of function 5 from: + # http://www.peterbe.com/plog/uniqifiers-benchmark + seen = {} + players = [] + for action in actions: + if l is not None and action[1] not in l: continue + if f is not None and action[1] in f: continue + if action[0] in seen and unique: continue + seen[action[0]] = 1 + players.append(action[0]) + return players + + def firstsBetOrRaiser(self, actions): + """Returns player name that placed the first bet or raise. + + None if there were no bets or raises on that street + """ + for act in actions: + if act[1] in ('bets', 'raises'): + return act[0] + return None + + def lastBetOrRaiser(self, street): + """Returns player name that placed the last bet or raise for that street. + None if there were no bets or raises on that street""" + lastbet = None + for act in self.hand.actions[street]: + if act[1] in ('bets', 'raises'): + lastbet = act[0] + return lastbet + + def noBetsBefore(self, street, player): """Returns true if there were no bets before the specified players turn, false otherwise""" betOrRaise = False @@ -345,6 +499,7 @@ class DerivedStats(): break return betOrRaise + def betStreet(self, street, player): """Returns true if player bet/raised the street as their first action""" betOrRaise = False @@ -355,12 +510,3 @@ class DerivedStats(): break return betOrRaise - - def lastBetOrRaiser(self, street): - """Returns player name that placed the last bet or raise for that street. - None if there were no bets or raises on that street""" - lastbet = None - for act in self.hand.actions[street]: - if act[1] in ('bets', 'raises'): - lastbet = act[0] - return lastbet diff --git a/pyfpdb/EverleafToFpdb.py b/pyfpdb/EverleafToFpdb.py index fcd76c25..5dd8d041 100755 --- a/pyfpdb/EverleafToFpdb.py +++ b/pyfpdb/EverleafToFpdb.py @@ -2,12 +2,12 @@ # -*- coding: utf-8 -*- # # Copyright 2008, Carl Gherardi -# +# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. -# +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -25,7 +25,7 @@ from HandHistoryConverter import * # Class for converting Everleaf HH format. class Everleaf(HandHistoryConverter): - + sitename = 'Everleaf' filetype = "text" codepage = "cp1252" @@ -38,10 +38,11 @@ class Everleaf(HandHistoryConverter): #re.compile(ur"^(Blinds )?(?P\$| €|)(?P[.0-9]+)/(?:\$| €)?(?P[.0-9]+) (?PNL|PL|) (?P(Hold\'em|Omaha|7 Card Stud))", re.MULTILINE) re_HandInfo = re.compile(ur".*#(?P[0-9]+)\n.*\n(Blinds )?(?:\$| €|)(?P[.0-9]+)/(?:\$| €|)(?P[.0-9]+) (?P.*) - (?P\d\d\d\d/\d\d/\d\d - \d\d:\d\d:\d\d)\nTable (?P.+$)", re.MULTILINE) re_Button = re.compile(ur"^Seat (?P
[0-9]+)\.txt") + + def compilePlayerRegexs(self, hand): players = set([player[1] for player in hand.players]) if not players <= self.compiledPlayers: # x <= y means 'x is subset of y' @@ -55,10 +56,10 @@ class Everleaf(HandHistoryConverter): self.re_Antes = re.compile(ur"^%s: posts ante \[(?:\$| €|) (?P[.0-9]+)" % player_re, re.MULTILINE) self.re_BringIn = re.compile(ur"^%s posts bring-in (?:\$| €|)(?P[.0-9]+)\." % player_re, re.MULTILINE) self.re_HeroCards = re.compile(ur"^Dealt to %s \[ (?P.*) \]" % player_re, re.MULTILINE) - self.re_Action = re.compile(ur"^%s(?P: bets| checks| raises| calls| folds)(\s\[(?:\$| €|) (?P[.\d]+) (USD|EUR|)\])?" % player_re, re.MULTILINE) + self.re_Action = re.compile(ur"^%s(?P: bets| checks| raises| calls| folds)(\s\[(?:\$| €|) (?P[.,\d]+) (USD|EURO|Chips)\])?" % player_re, re.MULTILINE) #self.re_Action = re.compile(ur"^%s(?P: bets| checks| raises| calls| folds| complete to)(\s\[?(?:\$| €|) ?(?P\d+\.?\d*)\.?\s?(USD|EUR|)\]?)?" % player_re, re.MULTILINE) self.re_ShowdownAction = re.compile(ur"^%s shows \[ (?P.*) \]" % player_re, re.MULTILINE) - self.re_CollectPot = re.compile(ur"^%s wins (?:\$| €|) (?P[.\d]+) (USD|EUR|chips)(.*?\[ (?P.*?) \])?" % player_re, re.MULTILINE) + self.re_CollectPot = re.compile(ur"^%s wins (?:\$| €|) (?P[.\d]+) (USD|EURO|chips)(.*?\[ (?P.*?) \])?" % player_re, re.MULTILINE) self.re_SitsOut = re.compile(ur"^%s sits out" % player_re, re.MULTILINE) def readSupportedGames(self): @@ -66,7 +67,9 @@ class Everleaf(HandHistoryConverter): ["ring", "hold", "pl"], ["ring", "hold", "fl"], ["ring", "studhi", "fl"], - ["ring", "omahahi", "pl"] + ["ring", "omahahi", "pl"], + ["ring", "omahahilo", "pl"], + ["tour", "hold", "nl"] ] def determineGameType(self, handText): @@ -83,30 +86,30 @@ class Everleaf(HandHistoryConverter): 'currency' in ('USD', 'EUR', 'T$', ) or None if we fail to get the info """ #(TODO: which parts are optional/required?) - + # Blinds $0.50/$1 PL Omaha - 2008/12/07 - 21:59:48 # Blinds $0.05/$0.10 NL Hold'em - 2009/02/21 - 11:21:57 # $0.25/$0.50 7 Card Stud - 2008/12/05 - 21:43:59 - + # Tourney: # Everleaf Gaming Game #75065769 # ***** Hand history for game #75065769 ***** # Blinds 10/20 NL Hold'em - 2009/02/25 - 17:30:32 # Table 2 info = {'type':'ring'} - + m = self.re_GameInfo.search(handText) if not m: return None - + mg = m.groupdict() - + # translations from captured groups to our info strings limits = { 'NL':'nl', 'PL':'pl', '':'fl' } games = { # base, category - "Hold'em" : ('hold','holdem'), - 'Omaha' : ('hold','omahahi'), - 'Razz' : ('stud','razz'), + "Hold'em" : ('hold','holdem'), + 'Omaha' : ('hold','omahahi'), + 'Razz' : ('stud','razz'), '7 Card Stud' : ('stud','studhi') } currencies = { u' €':'EUR', '$':'USD', '':'T$' } @@ -123,7 +126,7 @@ or None if we fail to get the info """ if info['currency'] == 'T$': info['type'] = 'tour' # NB: SB, BB must be interpreted as blinds or bets depending on limit type. - + return info @@ -138,6 +141,12 @@ or None if we fail to get the info """ hand.tablename = m.group('TABLE') hand.maxseats = 6 # assume 6-max unless we have proof it's a larger/smaller game, since everleaf doesn't give seat max info + t = self.re_TourneyInfoFromFilename.search(self.in_path) + if t: + tourno = t.group('TOURNO') + hand.tourNo = tourno + hand.tablename = t.group('TABLE') + # Believe Everleaf time is GMT/UTC, no transation necessary # Stars format (Nov 10 2008): 2008/11/07 12:38:49 CET [2008/11/07 7:38:49 ET] # or : 2008/11/07 12:38:49 ET @@ -156,8 +165,8 @@ or None if we fail to get the info """ if seatnum > 6: hand.maxseats = 10 # everleaf currently does 2/6/10 games, so if seats > 6 are in use, it must be 10-max. # TODO: implement lookup list by table-name to determine maxes, then fall back to 6 default/10 here, if there's no entry in the list? - - + + def markStreets(self, hand): # PREFLOP = ** Dealing down cards ** # This re fails if, say, river is missing; then we don't get the ** that starts the river. @@ -196,7 +205,7 @@ or None if we fail to get the info """ def readBringIn(self, hand): m = self.re_BringIn.search(hand.handText,re.DOTALL) if m: - logging.debug("Player bringing in: %s for %s" %(m.group('PNAME'), m.group('BRINGIN'))) + logging.debug("Player bringing in: %s for %s" %(m.group('PNAME'), m.group('BRINGIN'))) hand.addBringIn(m.group('PNAME'), m.group('BRINGIN')) else: logging.warning("No bringin found.") @@ -285,6 +294,12 @@ or None if we fail to get the info """ # hand.addShownCards(cards=None, player=m.group('PNAME'), holeandboard=cards) hand.addShownCards(cards=cards, player=m.group('PNAME')) + @staticmethod + def getTableTitleRe(type, table_name=None, tournament = None, table_number=None): + if tournament: + return "%s - Tournament ID: %s -" % (table_number, tournament) + return "%s -" % (table_name) + if __name__ == "__main__": @@ -305,4 +320,3 @@ if __name__ == "__main__": logging.basicConfig(filename=LOG_FILENAME,level=options.verbosity) e = Everleaf(in_path = options.ipath, out_path = options.opath, follow = options.follow, autostart=True) - diff --git a/pyfpdb/Exceptions.py b/pyfpdb/Exceptions.py index fd7c20e3..789c7b83 100644 --- a/pyfpdb/Exceptions.py +++ b/pyfpdb/Exceptions.py @@ -48,5 +48,11 @@ class FpdbPostgresqlNoDatabase(FpdbDatabaseError): def __str__(self): return repr(self.value +" " + self.errmsg) -class DuplicateError(FpdbError): +class FpdbHandError(FpdbError): + pass + +class FpdbHandDuplicate(FpdbHandError): + pass + +class FpdbHandPartial(FpdbHandError): pass diff --git a/pyfpdb/Filters.py b/pyfpdb/Filters.py index dc2e4859..27e5a49d 100644 --- a/pyfpdb/Filters.py +++ b/pyfpdb/Filters.py @@ -26,21 +26,47 @@ from time import * import gobject #import pokereval +import logging +# logging has been set up in fpdb.py or HUD_main.py, use their settings: +log = logging.getLogger("filter") + + import Configuration -import fpdb_db -import FpdbSQLQueries +import Database +import SQL +import Charset + class Filters(threading.Thread): def __init__(self, db, config, qdict, display = {}, debug=True): # config and qdict are now redundant self.debug = debug - #print "start of GraphViewer constructor" self.db = db self.cursor = db.cursor self.sql = db.sql self.conf = db.config self.display = display + # text used on screen stored here so that it can be configured + self.filterText = {'limitsall':'All', 'limitsnone':'None', 'limitsshow':'Show _Limits' + ,'seatsbetween':'Between:', 'seatsand':'And:', 'seatsshow':'Show Number of _Players' + ,'playerstitle':'Hero:', 'sitestitle':'Sites:', 'gamestitle':'Games:' + ,'limitstitle':'Limits:', 'seatstitle':'Number of Players:' + ,'groupstitle':'Grouping:', 'posnshow':'Show Position Stats:' + ,'datestitle':'Date:' + ,'groupsall':'All Players' + ,'limitsFL':'FL', 'limitsNL':'NL', 'limitsPL':'PL', 'ring':'Ring', 'tour':'Tourney' + } + + # Outer Packing box + self.mainVBox = gtk.VBox(False, 0) + + self.label = {} + self.callback = {} + + self.make_filter() + + def make_filter(self): self.sites = {} self.games = {} self.limits = {} @@ -50,14 +76,14 @@ class Filters(threading.Thread): self.heroes = {} self.boxes = {} - # text used on screen stored here so that it can be configured - self.filterText = {'limitsall':'All', 'limitsnone':'None', 'limitsshow':'Show _Limits' - ,'seatsbetween':'Between:', 'seatsand':'And:', 'seatsshow':'Show Number of _Players' - ,'limitstitle':'Limits:', 'seatstitle':'Number of Players:' - ,'groupstitle':'Grouping:', 'posnshow':'Show Position Stats:' - ,'groupsall':'All Players' - ,'limitsFL':'FL', 'limitsNL':'NL', 'ring':'Ring', 'tour':'Tourney' - } + for site in self.conf.get_supported_sites(): + #Get db site id for filtering later + self.cursor.execute(self.sql.query['getSiteId'], (site,)) + result = self.db.cursor.fetchall() + if len(result) == 1: + self.siteid[site] = result[0][0] + else: + print "Either 0 or more than one site matched - EEK" # For use in date ranges. self.start_date = gtk.Entry(max=12) @@ -69,34 +95,28 @@ class Filters(threading.Thread): self.sbGroups = {} self.numHands = 0 - # Outer Packing box - self.mainVBox = gtk.VBox(False, 0) - - playerFrame = gtk.Frame("Hero:") + playerFrame = gtk.Frame() playerFrame.set_label_align(0.0, 0.0) vbox = gtk.VBox(False, 0) self.fillPlayerFrame(vbox, self.display) playerFrame.add(vbox) - self.boxes['player'] = vbox - sitesFrame = gtk.Frame("Sites:") + sitesFrame = gtk.Frame() sitesFrame.set_label_align(0.0, 0.0) vbox = gtk.VBox(False, 0) self.fillSitesFrame(vbox) sitesFrame.add(vbox) - self.boxes['sites'] = vbox # Game types - gamesFrame = gtk.Frame("Games:") + gamesFrame = gtk.Frame() gamesFrame.set_label_align(0.0, 0.0) gamesFrame.show() vbox = gtk.VBox(False, 0) self.fillGamesFrame(vbox) gamesFrame.add(vbox) - self.boxes['games'] = vbox # Limits limitsFrame = gtk.Frame() @@ -107,6 +127,7 @@ class Filters(threading.Thread): self.cbAllLimits = None self.cbFL = None self.cbNL = None + self.cbPL = None self.rb = {} # radio buttons for ring/tour self.type = None # ring/tour self.types = {} # list of all ring/tour values @@ -132,14 +153,13 @@ class Filters(threading.Thread): groupsFrame.add(vbox) # Date - dateFrame = gtk.Frame("Date:") + dateFrame = gtk.Frame() dateFrame.set_label_align(0.0, 0.0) dateFrame.show() vbox = gtk.VBox(False, 0) self.fillDateFrame(vbox) dateFrame.add(vbox) - self.boxes['date'] = vbox # Buttons self.Button1=gtk.Button("Unnamed 1") @@ -180,6 +200,17 @@ class Filters(threading.Thread): if "Button2" not in self.display or self.display["Button2"] == False: self.Button2.hide() + if 'button1' in self.label and self.label['button1']: + self.Button1.set_label( self.label['button1'] ) + if 'button2' in self.label and self.label['button2']: + self.Button2.set_label( self.label['button2'] ) + if 'button1' in self.callback and self.callback['button1']: + self.Button1.connect("clicked", self.callback['button1'], "clicked") + self.Button1.set_sensitive(True) + if 'button2' in self.callback and self.callback['button2']: + self.Button2.connect("clicked", self.callback['button2'], "clicked") + self.Button2.set_sensitive(True) + def get_vbox(self): """returns the vbox of this thread""" return self.mainVBox @@ -191,6 +222,9 @@ class Filters(threading.Thread): def getSites(self): return self.sites + def getGames(self): + return self.games + def getSiteIds(self): return self.siteid @@ -222,24 +256,29 @@ class Filters(threading.Thread): def registerButton1Name(self, title): self.Button1.set_label(title) + self.label['button1'] = title def registerButton1Callback(self, callback): self.Button1.connect("clicked", callback, "clicked") self.Button1.set_sensitive(True) + self.callback['button1'] = callback def registerButton2Name(self, title): self.Button2.set_label(title) + self.label['button2'] = title def registerButton2Callback(self, callback): self.Button2.connect("clicked", callback, "clicked") self.Button2.set_sensitive(True) + self.callback['button2'] = callback def cardCallback(self, widget, data=None): - print "DEBUG: %s was toggled %s" % (data, ("OFF", "ON")[widget.get_active()]) + log.debug( "%s was toggled %s" % (data, ("OFF", "ON")[widget.get_active()]) ) def createPlayerLine(self, hbox, site, player): + log.debug('add:"%s"' % player) label = gtk.Label(site +" id:") - hbox.pack_start(label, False, False, 0) + hbox.pack_start(label, False, False, 3) pname = gtk.Entry() pname.set_text(player) @@ -253,22 +292,27 @@ class Filters(threading.Thread): liststore = gtk.ListStore(gobject.TYPE_STRING) completion.set_model(liststore) completion.set_text_column(0) - names = self.db.get_player_names(self.conf) # (config=self.conf, site_id=None, like_player_name="%") - for n in names: - liststore.append(n) + names = self.db.get_player_names(self.conf, self.siteid[site]) # (config=self.conf, site_id=None, like_player_name="%") + for n in names: # list of single-element "tuples" + _n = Charset.to_gui(n[0]) + _nt = (_n, ) + liststore.append(_nt) self.__set_hero_name(pname, site) def __set_hero_name(self, w, site): - self.heroes[site] = w.get_text() -# print "DEBUG: setting heroes[%s]: %s"%(site, self.heroes[site]) + _name = w.get_text() + # get_text() returns a str but we want internal variables to be unicode: + _guiname = unicode(_name) + self.heroes[site] = _guiname +# log.debug("setting heroes[%s]: %s"%(site, self.heroes[site])) def __set_num_hands(self, w, val): try: self.numHands = int(w.get_text()) except: self.numHands = 0 -# print "DEBUG: setting numHands:", self.numHands +# log.debug("setting numHands:", self.numHands) def createSiteLine(self, hbox, site): cb = gtk.CheckButton(site) @@ -280,6 +324,7 @@ class Filters(threading.Thread): cb = gtk.CheckButton(game) cb.connect('clicked', self.__set_game_select, game) hbox.pack_start(cb, False, False, 0) + cb.set_active(True) def createLimitLine(self, hbox, limit, ltext): cb = gtk.CheckButton(str(ltext)) @@ -292,18 +337,18 @@ class Filters(threading.Thread): def __set_site_select(self, w, site): #print w.get_active() self.sites[site] = w.get_active() - print "self.sites[%s] set to %s" %(site, self.sites[site]) + log.debug("self.sites[%s] set to %s" %(site, self.sites[site])) def __set_game_select(self, w, game): #print w.get_active() self.games[game] = w.get_active() - print "self.games[%s] set to %s" %(game, self.games[game]) + log.debug("self.games[%s] set to %s" %(game, self.games[game])) def __set_limit_select(self, w, limit): #print w.get_active() self.limits[limit] = w.get_active() - print "self.limit[%s] set to %s" %(limit, self.limits[limit]) - if limit.isdigit() or (len(limit) > 2 and limit[-2:] == 'nl'): + log.debug("self.limit[%s] set to %s" %(limit, self.limits[limit])) + if limit.isdigit() or (len(limit) > 2 and (limit[-2:] == 'nl' or limit[-2:] == 'fl' or limit[-2:] == 'pl')): if self.limits[limit]: if self.cbNoLimits is not None: self.cbNoLimits.set_active(False) @@ -314,9 +359,12 @@ class Filters(threading.Thread): if limit.isdigit(): if self.cbFL is not None: self.cbFL.set_active(False) - else: + elif (len(limit) > 2 and (limit[-2:] == 'nl')): if self.cbNL is not None: self.cbNL.set_active(False) + else: + if self.cbPL is not None: + self.cbPL.set_active(False) elif limit == "all": if self.limits[limit]: #for cb in self.cbLimits.values(): @@ -325,6 +373,8 @@ class Filters(threading.Thread): self.cbFL.set_active(True) if self.cbNL is not None: self.cbNL.set_active(True) + if self.cbPL is not None: + self.cbPL.set_active(True) elif limit == "none": if self.limits[limit]: for cb in self.cbLimits.values(): @@ -333,6 +383,8 @@ class Filters(threading.Thread): self.cbNL.set_active(False) if self.cbFL is not None: self.cbFL.set_active(False) + if self.cbPL is not None: + self.cbPL.set_active(False) elif limit == "fl": if not self.limits[limit]: # only toggle all fl limits off if they are all currently on @@ -381,11 +433,39 @@ class Filters(threading.Thread): if self.limits[limit]: if not found[self.type]: if self.type == 'ring': - self.rb['tour'].set_active(True) + if 'tour' in self.rb: + self.rb['tour'].set_active(True) elif self.type == 'tour': - self.rb['ring'].set_active(True) + if 'ring' in self.rb: + self.rb['ring'].set_active(True) + elif limit == "pl": + if not self.limits[limit]: + # only toggle all nl limits off if they are all currently on + # this stops turning one off from cascading into 'nl' box off + # and then all nl limits being turned off + all_nl_on = True + for cb in self.cbLimits.values(): + t = cb.get_children()[0].get_text() + if "pl" in t and len(t) > 2: + if not cb.get_active(): + all_nl_on = False + found = {'ring':False, 'tour':False} + for cb in self.cbLimits.values(): + t = cb.get_children()[0].get_text() + if "pl" in t and len(t) > 2: + if self.limits[limit] or all_nl_on: + cb.set_active(self.limits[limit]) + found[self.types[t]] = True + if self.limits[limit]: + if not found[self.type]: + if self.type == 'ring': + if 'tour' in self.rb: + self.rb['tour'].set_active(True) + elif self.type == 'tour': + if 'ring' in self.rb: + self.rb['ring'].set_active(True) elif limit == "ring": - print "set", limit, "to", self.limits[limit] + log.debug("set", limit, "to", self.limits[limit]) if self.limits[limit]: self.type = "ring" for cb in self.cbLimits.values(): @@ -393,7 +473,7 @@ class Filters(threading.Thread): if self.types[cb.get_children()[0].get_text()] == 'tour': cb.set_active(False) elif limit == "tour": - print "set", limit, "to", self.limits[limit] + log.debug( "set", limit, "to", self.limits[limit] ) if self.limits[limit]: self.type = "tour" for cb in self.cbLimits.values(): @@ -404,24 +484,38 @@ class Filters(threading.Thread): def __set_seat_select(self, w, seat): #print "__set_seat_select: seat =", seat, "active =", w.get_active() self.seats[seat] = w.get_active() - print "self.seats[%s] set to %s" %(seat, self.seats[seat]) + log.debug( "self.seats[%s] set to %s" %(seat, self.seats[seat]) ) def __set_group_select(self, w, group): #print "__set_seat_select: seat =", seat, "active =", w.get_active() self.groups[group] = w.get_active() - print "self.groups[%s] set to %s" %(group, self.groups[group]) + log.debug( "self.groups[%s] set to %s" %(group, self.groups[group]) ) def fillPlayerFrame(self, vbox, display): + top_hbox = gtk.HBox(False, 0) + vbox.pack_start(top_hbox, False, False, 0) + lbl_title = gtk.Label(self.filterText['playerstitle']) + lbl_title.set_alignment(xalign=0.0, yalign=0.5) + top_hbox.pack_start(lbl_title, expand=True, padding=3) + showb = gtk.Button(label="refresh", stock=None, use_underline=True) + showb.set_alignment(xalign=1.0, yalign=0.5) + showb.connect('clicked', self.__refresh, 'players') + + vbox1 = gtk.VBox(False, 0) + vbox.pack_start(vbox1, False, False, 0) + self.boxes['players'] = vbox1 + for site in self.conf.get_supported_sites(): hBox = gtk.HBox(False, 0) - vbox.pack_start(hBox, False, True, 0) + vbox1.pack_start(hBox, False, True, 0) player = self.conf.supported_sites[site].screen_name - self.createPlayerLine(hBox, site, player) + _pname = Charset.to_gui(player) + self.createPlayerLine(hBox, site, _pname) if "GroupsAll" in display and display["GroupsAll"] == True: hbox = gtk.HBox(False, 0) - vbox.pack_start(hbox, False, False, 0) + vbox1.pack_start(hbox, False, False, 0) cb = gtk.CheckButton(self.filterText['groupsall']) cb.connect('clicked', self.__set_group_select, 'allplayers') hbox.pack_start(cb, False, False, 0) @@ -437,30 +531,64 @@ class Filters(threading.Thread): phands.set_width_chars(8) hbox.pack_start(phands, False, False, 0) phands.connect("changed", self.__set_num_hands, site) + top_hbox.pack_start(showb, expand=False, padding=1) def fillSitesFrame(self, vbox): + top_hbox = gtk.HBox(False, 0) + top_hbox.show() + vbox.pack_start(top_hbox, False, False, 0) + + lbl_title = gtk.Label(self.filterText['sitestitle']) + lbl_title.set_alignment(xalign=0.0, yalign=0.5) + top_hbox.pack_start(lbl_title, expand=True, padding=3) + + showb = gtk.Button(label="hide", stock=None, use_underline=True) + showb.set_alignment(xalign=1.0, yalign=0.5) + showb.connect('clicked', self.__toggle_box, 'sites') + showb.show() + top_hbox.pack_start(showb, expand=False, padding=1) + + vbox1 = gtk.VBox(False, 0) + self.boxes['sites'] = vbox1 + vbox.pack_start(vbox1, False, False, 0) + for site in self.conf.get_supported_sites(): hbox = gtk.HBox(False, 0) - vbox.pack_start(hbox, False, True, 0) + vbox1.pack_start(hbox, False, True, 0) self.createSiteLine(hbox, site) #Get db site id for filtering later - self.cursor.execute(self.sql.query['getSiteId'], (site,)) - result = self.db.cursor.fetchall() - if len(result) == 1: - self.siteid[site] = result[0][0] - else: - print "Either 0 or more than one site matched - EEK" + #self.cursor.execute(self.sql.query['getSiteId'], (site,)) + #result = self.db.cursor.fetchall() + #if len(result) == 1: + # self.siteid[site] = result[0][0] + #else: + # print "Either 0 or more than one site matched - EEK" def fillGamesFrame(self, vbox): + top_hbox = gtk.HBox(False, 0) + vbox.pack_start(top_hbox, False, False, 0) + lbl_title = gtk.Label(self.filterText['gamestitle']) + lbl_title.set_alignment(xalign=0.0, yalign=0.5) + top_hbox.pack_start(lbl_title, expand=True, padding=3) + showb = gtk.Button(label="hide", stock=None, use_underline=True) + showb.set_alignment(xalign=1.0, yalign=0.5) + showb.connect('clicked', self.__toggle_box, 'games') + top_hbox.pack_start(showb, expand=False, padding=1) + + vbox1 = gtk.VBox(False, 0) + vbox.pack_start(vbox1, False, False, 0) + self.boxes['games'] = vbox1 + self.cursor.execute(self.sql.query['getGames']) result = self.db.cursor.fetchall() if len(result) >= 1: for line in result: hbox = gtk.HBox(False, 0) - vbox.pack_start(hbox, False, True, 0) + vbox1.pack_start(hbox, False, True, 0) self.createGameLine(hbox, line[0]) else: print "INFO: No games returned from database" + log.info("No games returned from database") def fillLimitsFrame(self, vbox, display): top_hbox = gtk.HBox(False, 0) @@ -476,10 +604,10 @@ class Filters(threading.Thread): vbox.pack_start(vbox1, False, False, 0) self.boxes['limits'] = vbox1 - self.cursor.execute(self.sql.query['getLimits2']) + self.cursor.execute(self.sql.query['getLimits3']) # selects limitType, bigBlind result = self.db.cursor.fetchall() - found = {'nl':False, 'fl':False, 'ring':False, 'tour':False} + found = {'nl':False, 'fl':False, 'pl':False, 'ring':False, 'tour':False} if len(result) >= 1: hbox = gtk.HBox(True, 0) @@ -497,14 +625,18 @@ class Filters(threading.Thread): vbox2.pack_start(hbox, False, False, 0) else: vbox3.pack_start(hbox, False, False, 0) - if line[1] == 'fl': - name = str(line[2]) - found['fl'] = True - else: - name = str(line[2])+line[1] - found['nl'] = True - self.cbLimits[name] = self.createLimitLine(hbox, name, name) - self.types[name] = line[0] + if True: #line[0] == 'ring': + if line[1] == 'fl': + name = str(line[2]) + found['fl'] = True + elif line[1] == 'pl': + name = str(line[2])+line[1] + found['pl'] = True + else: + name = str(line[2])+line[1] + found['nl'] = True + self.cbLimits[name] = self.createLimitLine(hbox, name, name) + self.types[name] = line[0] found[line[0]] = True # type is ring/tour self.type = line[0] # if only one type, set it now if "LimitSep" in display and display["LimitSep"] == True and len(result) >= 2: @@ -532,9 +664,13 @@ class Filters(threading.Thread): hbox = gtk.HBox(False, 0) vbox3.pack_start(hbox, False, False, 0) self.cbNL = self.createLimitLine(hbox, 'nl', self.filterText['limitsNL']) + hbox = gtk.HBox(False, 0) + vbox3.pack_start(hbox, False, False, 0) + self.cbPL = self.createLimitLine(hbox, 'pl', self.filterText['limitsPL']) dest = vbox2 # for ring/tour buttons else: print "INFO: No games returned from database" + log.info("No games returned from database") if "Type" in display and display["Type"] == True and found['ring'] and found['tour']: rb1 = gtk.RadioButton(None, self.filterText['ring']) @@ -645,8 +781,22 @@ class Filters(threading.Thread): def fillDateFrame(self, vbox): # Hat tip to Mika Bostrom - calendar code comes from PokerStats + top_hbox = gtk.HBox(False, 0) + vbox.pack_start(top_hbox, False, False, 0) + lbl_title = gtk.Label(self.filterText['datestitle']) + lbl_title.set_alignment(xalign=0.0, yalign=0.5) + top_hbox.pack_start(lbl_title, expand=True, padding=3) + showb = gtk.Button(label="hide", stock=None, use_underline=True) + showb.set_alignment(xalign=1.0, yalign=0.5) + showb.connect('clicked', self.__toggle_box, 'dates') + top_hbox.pack_start(showb, expand=False, padding=1) + + vbox1 = gtk.VBox(False, 0) + vbox.pack_start(vbox1, False, False, 0) + self.boxes['dates'] = vbox1 + hbox = gtk.HBox() - vbox.pack_start(hbox, False, True, 0) + vbox1.pack_start(hbox, False, True, 0) lbl_start = gtk.Label('From:') @@ -660,7 +810,7 @@ class Filters(threading.Thread): #New row for end date hbox = gtk.HBox() - vbox.pack_start(hbox, False, True, 0) + vbox1.pack_start(hbox, False, True, 0) lbl_end = gtk.Label(' To:') btn_end = gtk.Button() @@ -676,10 +826,13 @@ class Filters(threading.Thread): hbox.pack_start(btn_clear, expand=False, padding=15) + def __refresh(self, widget, entry): + for w in self.mainVBox.get_children(): + w.destroy() + self.make_filter() + def __toggle_box(self, widget, entry): - if "Limits" not in self.display or self.display["Limits"] == False: - self.boxes[entry].hide() - elif self.boxes[entry].props.visible: + if self.boxes[entry].props.visible: self.boxes[entry].hide() widget.set_label("show") else: @@ -740,10 +893,10 @@ def main(argv=None): config = Configuration.Config() db = None - db = fpdb_db.fpdb_db() + db = Database.Database() db.do_connect(config) - qdict = FpdbSQLQueries.FpdbSQLQueries(db.get_backend_name()) + qdict = SQL.SQL(db.get_backend_name()) i = Filters(db, config, qdict) main_window = gtk.Window() diff --git a/pyfpdb/FulltiltToFpdb.py b/pyfpdb/FulltiltToFpdb.py index 1721236a..af55fd41 100755 --- a/pyfpdb/FulltiltToFpdb.py +++ b/pyfpdb/FulltiltToFpdb.py @@ -18,12 +18,10 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ######################################################################## -import sys import logging from HandHistoryConverter import * # Fulltilt HH Format converter -# TODO: cat tourno and table to make table name for tournaments class Fulltilt(HandHistoryConverter): @@ -67,8 +65,8 @@ class Fulltilt(HandHistoryConverter): (\s\((?PTurbo)\))?)|(?P.+)) ''', re.VERBOSE) re_Button = re.compile('^The button is in seat #(?P
\d+)\)?\s+ + (?:[a-zA-Z0-9 ]+\s+\#(?P\d+).+)? (\(No\sDP\)\s)? - \((?PReal|Play)\s+Money\)\s* + \((?PReal|Play)\s+Money\)\s+ # FIXME: check if play money is correct + Seat\s+(?P
[-\ a-zA-Z\d]+)\'\s + ^Table\s\'(?P
[-\ \#a-zA-Z\d]+)\'\s ((?P\d+)-max\s)? (?P\(Play\sMoney\)\s)? (Seat\s\#(?P
[ a-zA-Z]+) - \$?(?P[.0-9]+)/\$?(?P[.0-9]+) - (?P.*) - (?P
[0-9]+):(?P[0-9]+) ET - (?P[0-9]+)/(?P[0-9]+)/(?P[0-9]+)Table (?P
[ a-zA-Z]+)\nSeat (?P
.+$)", re.MULTILINE) + re_GameInfo = re.compile(ur"^(Blinds )?(?P[$€]?)(?P[.0-9]+)/(?:\$|€)?(?P[.0-9]+) (?PNL|PL|) ?(?P(Hold\'em|Omaha|7 Card Stud))", re.MULTILINE) + #re.compile(ur"^(Blinds )?(?P\$| €|)(?P[.0-9]+)/(?:\$| €)?(?P[.0-9]+) (?PNL|PL|) ?(?P(Hold\'em|Omaha|7 Card Stud))", re.MULTILINE) + re_HandInfo = re.compile(ur".*#(?P[0-9]+)\n.*\n(Blinds )?(?P[$€])?(?P[.0-9]+)/(?:[$€])?(?P[.0-9]+) (?P.*) - (?P\d\d\d\d/\d\d/\d\d - \d\d:\d\d:\d\d)\nTable (?P
.+$)", re.MULTILINE) re_Button = re.compile(ur"^Seat (?P
.*) \(Real Money\))?", re.MULTILINE) + re_HandInfo = re.compile(ur"^Stage #C?(?P[0-9]+): .*(?P\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d).*\n(Table: (?P
.*) \(Real Money\))?", re.MULTILINE) re_TableFromFilename = re.compile(ur".*IHH([0-9]+) (?P
.*) -") # on HORSE STUD games, the table name isn't in the hand info! re_Button = re.compile(ur"Seat #(?P
.+$)", re.MULTILINE) re_Button = re.compile(ur"^Seat (?P
[0-9]+)\.txt") @@ -50,11 +50,11 @@ class Everleaf(HandHistoryConverter): self.compiledPlayers = players player_re = "(?P" + "|".join(map(re.escape, players)) + ")" logging.debug("player_re: "+ player_re) - self.re_PostSB = re.compile(ur"^%s: posts small blind \[(?:\$| €|) (?P[.0-9]+)" % player_re, re.MULTILINE) - self.re_PostBB = re.compile(ur"^%s: posts big blind \[(?:\$| €|) (?P[.0-9]+)" % player_re, re.MULTILINE) - self.re_PostBoth = re.compile(ur"^%s: posts both blinds \[(?:\$| €|) (?P[.0-9]+)" % player_re, re.MULTILINE) - self.re_Antes = re.compile(ur"^%s: posts ante \[(?:\$| €|) (?P[.0-9]+)" % player_re, re.MULTILINE) - self.re_BringIn = re.compile(ur"^%s posts bring-in (?:\$| €|)(?P[.0-9]+)\." % player_re, re.MULTILINE) + self.re_PostSB = re.compile(ur"^%s: posts small blind \[[$€]? (?P[.0-9]+)" % player_re, re.MULTILINE) + self.re_PostBB = re.compile(ur"^%s: posts big blind \[[$€]? (?P[.0-9]+)" % player_re, re.MULTILINE) + self.re_PostBoth = re.compile(ur"^%s: posts both blinds \[[$€]? (?P[.0-9]+)" % player_re, re.MULTILINE) + self.re_Antes = re.compile(ur"^%s: posts ante \[[$€]? (?P[.0-9]+)" % player_re, re.MULTILINE) + self.re_BringIn = re.compile(ur"^%s posts bring-in [$€]? (?P[.0-9]+)\." % player_re, re.MULTILINE) self.re_HeroCards = re.compile(ur"^Dealt to %s \[ (?P.*) \]" % player_re, re.MULTILINE) # ^%s(?P: bets| checks| raises| calls| folds)(\s\[(?:\$| €|) (?P[.,\d]+) (USD|EURO|Chips)\])? self.re_Action = re.compile(ur"^%s(?P: bets| checks| raises| calls| folds)(\s\[(?:[$€]?) (?P[.,\d]+)\s?(USD|EURO|Chips|)\])?" % player_re, re.MULTILINE) From e8d39711dd9d67746d384bf6eeb9e55388fd21bb Mon Sep 17 00:00:00 2001 From: Eric Blade Date: Sat, 31 Jul 2010 17:24:06 -0400 Subject: [PATCH 056/301] fix from carl for wtsd, more tweaks to everleaf regexes --- pyfpdb/DerivedStats.py | 5 ++++- pyfpdb/EverleafToFpdb.py | 16 ++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index e92bfeaa..7778c956 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -290,7 +290,10 @@ class DerivedStats(): # print "p_actions:", self.pfba(actions), "p_folds:", self.pfba(actions, l=('folds',)), "alliners:", alliners # pas = set.union(self.pfba(actions) - self.pfba(actions, l=('folds',)), alliners) - p_in = set(x[1] for x in hand.players) + # hand.players includes people that are sitting out on some sites. + # Those that posted an ante should have been deal cards. + p_in = set([x[0] for x in hand.actions['BLINDSANTES']]) + for (i, street) in enumerate(hand.actionStreets): actions = hand.actions[street] p_in = p_in - self.pfba(actions, l=('folds',)) diff --git a/pyfpdb/EverleafToFpdb.py b/pyfpdb/EverleafToFpdb.py index 9da5966f..454f7e79 100755 --- a/pyfpdb/EverleafToFpdb.py +++ b/pyfpdb/EverleafToFpdb.py @@ -37,8 +37,8 @@ class Everleaf(HandHistoryConverter): re_GameInfo = re.compile(ur"^(Blinds )?(?P[$€]?)(?P[.0-9]+)/[$€]?(?P[.0-9]+) (?PNL|PL|) ?(?P(Hold\'em|Omaha|7 Card Stud))", re.MULTILINE) #re.compile(ur"^(Blinds )?(?P\$| €|)(?P[.0-9]+)/(?:\$| €)?(?P[.0-9]+) (?PNL|PL|) ?(?P(Hold\'em|Omaha|7 Card Stud))", re.MULTILINE) re_HandInfo = re.compile(ur".*#(?P[0-9]+)\n.*\n(Blinds )?(?P[$€])?(?P[.0-9]+)/(?:[$€])?(?P[.0-9]+) (?P.*) - (?P\d\d\d\d/\d\d/\d\d - \d\d:\d\d:\d\d)\nTable (?P
.+$)", re.MULTILINE) - re_Button = re.compile(ur"^Seat (?P
[0-9]+)\.txt") @@ -50,15 +50,15 @@ class Everleaf(HandHistoryConverter): self.compiledPlayers = players player_re = "(?P" + "|".join(map(re.escape, players)) + ")" logging.debug("player_re: "+ player_re) - self.re_PostSB = re.compile(ur"^%s: posts small blind \[[$€]? (?P[.0-9]+)" % player_re, re.MULTILINE) - self.re_PostBB = re.compile(ur"^%s: posts big blind \[[$€]? (?P[.0-9]+)" % player_re, re.MULTILINE) - self.re_PostBoth = re.compile(ur"^%s: posts both blinds \[[$€]? (?P[.0-9]+)" % player_re, re.MULTILINE) - self.re_Antes = re.compile(ur"^%s: posts ante \[[$€]? (?P[.0-9]+)" % player_re, re.MULTILINE) + self.re_PostSB = re.compile(ur"^%s: posts small blind \[[$€]? (?P[.0-9]+)\s.*\]$" % player_re, re.MULTILINE) + self.re_PostBB = re.compile(ur"^%s: posts big blind \[[$€]? (?P[.0-9]+)\s.*\]$" % player_re, re.MULTILINE) + self.re_PostBoth = re.compile(ur"^%s: posts both blinds \[[$€]? (?P[.0-9]+)\s.*\]$" % player_re, re.MULTILINE) + self.re_Antes = re.compile(ur"^%s: posts ante \[[$€]? (?P[.0-9]+)\s.*\]$" % player_re, re.MULTILINE) self.re_BringIn = re.compile(ur"^%s posts bring-in [$€]? (?P[.0-9]+)\." % player_re, re.MULTILINE) - self.re_HeroCards = re.compile(ur"^Dealt to %s \[ (?P.*) \]" % player_re, re.MULTILINE) + self.re_HeroCards = re.compile(ur"^Dealt to %s \[ (?P.*) \]$" % player_re, re.MULTILINE) # ^%s(?P: bets| checks| raises| calls| folds)(\s\[(?:\$| €|) (?P[.,\d]+) (USD|EURO|Chips)\])? self.re_Action = re.compile(ur"^%s(?P: bets| checks| raises| calls| folds)(\s\[(?:[$€]?) (?P[.,\d]+)\s?(USD|EURO|Chips|)\])?" % player_re, re.MULTILINE) - self.re_ShowdownAction = re.compile(ur"^%s shows \[ (?P.*) \]" % player_re, re.MULTILINE) + self.re_ShowdownAction = re.compile(ur"^%s shows \[ (?P.*) \]$" % player_re, re.MULTILINE) self.re_CollectPot = re.compile(ur"^%s wins (?:[$€]?)\s?(?P[.\d]+) (USD|EURO|chips)(.*?\[ (?P.*?) \])?" % player_re, re.MULTILINE) self.re_SitsOut = re.compile(ur"^%s sits out" % player_re, re.MULTILINE) From d3f99eec9b18324c63557e4688e0c8289ea46a8a Mon Sep 17 00:00:00 2001 From: Eric Blade Date: Sun, 1 Aug 2010 03:05:35 -0400 Subject: [PATCH 057/301] call reposition_windows after doing a window move, so that the user doesn't need to hit the menu option to do it (reposition_windows manages to successfully move the hidden windows, whereas the original move doesn't, for some reason) --- pyfpdb/Hud.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index 8d3d7d0c..a92682e7 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -469,6 +469,9 @@ class Hud: # While we're at it, fix the positions of mucked cards too for aux in self.aux_windows: aux.update_card_positions() + + self.reposition_windows() + # call reposition_windows, which apparently moves even hidden windows, where this function does not, even though they do the same thing, afaict return True From 5f2acf9fe658403a3277956d5d04ace2ddfdec95 Mon Sep 17 00:00:00 2001 From: gimick Date: Sun, 1 Aug 2010 23:51:33 +0100 Subject: [PATCH 058/301] py2exe: get pytz working; make script more restartable; update walkthrough --- .../windows/py2exeWalkthroughPython26.txt | 28 ++++++++- pyfpdb/py2exe_setup.py | 57 +++++++++++-------- 2 files changed, 60 insertions(+), 25 deletions(-) diff --git a/packaging/windows/py2exeWalkthroughPython26.txt b/packaging/windows/py2exeWalkthroughPython26.txt index e379cdae..b2221bc1 100644 --- a/packaging/windows/py2exeWalkthroughPython26.txt +++ b/packaging/windows/py2exeWalkthroughPython26.txt @@ -30,15 +30,41 @@ py2exe 0.6.9 ... http://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/py2ex psycopg2 ... http://www.stickpeople.com/projects/python/win-psycopg/psycopg2-2.2.1.win32-py2.6-pg8.4.3-release.exe (Note: stickpeople is the offical repository, not a community build) + 1.2/ MySQL MySQL-python-1.2.3.win32-py2.6-fpdb0.20.exe ... http://www.mediafire.com/file/iodnnnznmj1/MySQL-python-1.2.3.win32-py2.6-fpdb0.20.exe -This is an intaller built from source by gimick. There are no official mysql-python2.6 build for windows. +This is an intaller built from source by gimick. There are no official mysql-python2.6 builds for windows. Community builds are also available from some developers. see www.codegood.com for example. +1.3/ pytz fixup to work in an executable package + +pytz needs runtime access to timezone definition files. pytz is hard-coded to search in the directory from which the pytz .py modules are being run. +In a py2exe package, this directory is actually a library.zip container file, so windows cannot find the timezone definitions, and will crash the app. + +We need to make a one-line change to pytz to search in the current working directory (which is not a container), and not the application directory. +The py2exe script copies the timezone datafiles into the package folder pyfpdb/zoneinfo. + +Thanks to Jeff Peck gmail.com> on the py2exe mailing list for documenting this problem and solution. + +1.3.1/ Navigate to C:\Python26\Lib\site-packages\pytz +1.3.2/ Edit __init__.py +1.3.3/ At line 55 replace the following line(s): + + filename = os.path.join(os.path.dirname(__file__), + 'zoneinfo', *name_parts) + +with this line: + + filename = os.path.join(os.getcwd(), 'zoneinfo', *name_parts) + +1.3.4/ Save and exit + + + Step 2 Setup GTK ----------------- diff --git a/pyfpdb/py2exe_setup.py b/pyfpdb/py2exe_setup.py index 1be0b437..42d22e21 100644 --- a/pyfpdb/py2exe_setup.py +++ b/pyfpdb/py2exe_setup.py @@ -72,6 +72,14 @@ Py2exe script for fpdb. import os import sys + +# get out now if parameter not passed +try: + sys.argv[1] <> "" +except: + print "A parameter is required, quitting now" + quit() + from distutils.core import setup import py2exe import glob @@ -82,7 +90,6 @@ from datetime import date origIsSystemDLL = py2exe.build_exe.isSystemDLL def isSystemDLL(pathname): - #VisC++ runtime msvcp71.dll removed; py2.6 needs msvcp90.dll which will not be distributed. #dwmapi appears to be vista-specific file, not XP if os.path.basename(pathname).lower() in ("dwmapi.dll"): return 0 @@ -97,7 +104,7 @@ def remove_tree(top): # could delete all your disk files. # sc: Nicked this from somewhere, added the if statement to try # make it a bit safer - if top in ('build','dist','gfx') and os.path.basename(os.getcwd()) == 'pyfpdb': + if top in ('build','dist','pyfpdb',dist_dirname) and os.path.basename(os.getcwd()) == 'pyfpdb': #print "removing directory '"+top+"' ..." for root, dirs, files in os.walk(top, topdown=False): for name in files: @@ -114,12 +121,6 @@ def test_and_remove(top): print "Unexpected file '"+top+"' found. Exiting." exit() -# remove build and dist dirs if they exist -test_and_remove('dist') -test_and_remove('build') -#test_and_remove('gfx') - - today = date.today().strftime('%Y%m%d') print "\n" + r"Output will be created in \pyfpdb\ and \fpdb_"+today+'\\' #print "Enter value for XXX (any length): ", # the comma means no newline @@ -128,7 +129,13 @@ dist_dirname = r'fpdb-' + today + '-exe' dist_dir = r'..\fpdb-' + today + '-exe' print -test_and_remove(dist_dir) +# remove build and dist dirs if they exist +test_and_remove('dist') +test_and_remove('build') +test_and_remove('pyfpdb') + +test_and_remove(dist_dirname) + setup( name = 'fpdb', @@ -142,7 +149,7 @@ setup( options = {'py2exe': { 'packages' : ['encodings', 'matplotlib'], - 'includes' : ['gio', 'cairo', 'pango', 'pangocairo', 'atk', 'gobject' + 'includes' : ['gio', 'cairo', 'pango', 'pangocairo', 'atk', 'gobject' ,'matplotlib.numerix.random_array' ,'AbsoluteToFpdb', 'BetfairToFpdb' ,'CarbonToFpdb', 'EverleafToFpdb' @@ -151,8 +158,8 @@ setup( ,'UltimateBetToFpdb', 'Win2dayToFpdb' ], 'excludes' : ['_tkagg', '_agg2', 'cocoaagg', 'fltkagg'], # surely we need this? '_gtkagg' - 'dll_excludes': ['libglade-2.0-0.dll', 'libgdk-win32-2.0-0.dll' - ,'libgobject-2.0-0.dll', 'msvcr90.dll', 'MSVCP90.dll', 'MSVCR90.dll','msvcr90.dll'], + 'dll_excludes': ['libglade-2.0-0.dll', 'libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll' + , 'msvcr90.dll', 'MSVCP90.dll', 'MSVCR90.dll','msvcr90.dll'], # these are vis c / c++ runtimes, and must not be redistributed } }, @@ -166,25 +173,28 @@ setup( ] + matplotlib.get_py2exe_datafiles() ) - +# rename completed output package as pyfpdb os.rename('dist', 'pyfpdb') -# these instructions no longer needed: -#print '\n' + 'If py2exe was successful add the \\etc \\lib and \\share dirs ' -#print 'from your gtk dir to \\%s\\pyfpdb\\\n' % dist_dirname -#print 'Also copy libgobject-2.0-0.dll and libgdk-win32-2.0-0.dll from \\bin' -#print 'into there' +# pull pytz zoneinfo into pyfpdb package folder +src_dir = r'c:\python26\Lib\site-packages\pytz\zoneinfo' +src_dir = src_dir.replace('\\', '\\\\') +dest_dir = os.path.join(r'pyfpdb', 'zoneinfo') +shutil.copytree( src_dir, dest_dir ) +# shunt pyfpdb package over to the distribution folder dest = os.path.join(dist_dirname, 'pyfpdb') -#print "try renaming pyfpdb to", dest +# print "try renaming pyfpdb to", dest dest = dest.replace('\\', '\\\\') -#print "dest is now", dest +# print "dest is now", dest os.rename( 'pyfpdb', dest ) +# prompt for gtk location -print "Enter directory name for GTK (e.g. c:\code\gtk_2.14.7-20090119)\n: ", # the comma means no newline -gtk_dir = sys.stdin.readline().rstrip() - +gtk_dir = "" +while not os.path.exists(gtk_dir): + print "Enter directory name for GTK (e.g. c:\code\gtk_2.14.7-20090119)\n: ", # the comma means no newline + gtk_dir = sys.stdin.readline().rstrip() print "\ncopying files and dirs from ", gtk_dir, "to", dest.replace('\\\\', '\\'), "..." src = os.path.join(gtk_dir, 'bin', 'libgdk-win32-2.0-0.dll') @@ -195,7 +205,6 @@ src = os.path.join(gtk_dir, 'bin', 'libgobject-2.0-0.dll') src = src.replace('\\', '\\\\') shutil.copy( src, dest ) - src_dir = os.path.join(gtk_dir, 'etc') src_dir = src_dir.replace('\\', '\\\\') dest_dir = os.path.join(dest, 'etc') From 0c4ce1b655b9bfb072684e2355139493c27efb34 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 2 Aug 2010 11:18:44 +0200 Subject: [PATCH 059/301] remove license menu entry as that info is in the about dialogue --- pyfpdb/fpdb.pyw | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index cc050d07..b875900f 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -810,7 +810,6 @@ class fpdb: - """ @@ -846,8 +845,7 @@ class fpdb: ('dumptofile', None, 'Dump Database to Textfile (takes ALOT of time)', None, 'Dump Database to Textfile (takes ALOT of time)', self.dia_dump_db), ('help', None, '_Help'), ('Logs', None, '_Log Messages', None, 'Log and Debug Messages', self.dia_logs), - ('About', None, 'A_bout', None, 'About the program', self.dia_about), - ('License', None, '_License and Copying (todo)', None, 'License and Copying', self.dia_licensing), + ('About', None, 'A_bout, License, Copying', None, 'About the program', self.dia_about), ]) actiongroup.get_action('Quit').set_property('short-label', '_Quit') From ddf69015cbad5d673f193d5e84cbe3f674286c30 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 2 Aug 2010 11:53:02 +0200 Subject: [PATCH 060/301] add MIT license and notice --- mit.txt | 22 ++++++++++++++++++++++ pyfpdb/fpdb.pyw | 3 ++- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 mit.txt diff --git a/mit.txt b/mit.txt new file mode 100644 index 00000000..65b7bc8b --- /dev/null +++ b/mit.txt @@ -0,0 +1,22 @@ +This license applies to the pytz files distributed with fpdb's Windows installer + +Copyright (c) Stuart Bishop + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index b875900f..acf79c14 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -1060,7 +1060,8 @@ If you need help click on Contact - Get Help on our website. Please note that default.conf is no longer needed nor used, all configuration now happens in HUD_config.xml. This program is free/libre open source software licensed partially under the AGPL3, and partially under GPL2 or later. -You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt and gpl-3.0.txt in the fpdb installation directory.""") +The Windows installer package includes code licensed under the MIT license. +You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt and mit.txt in the fpdb installation directory.""") self.add_and_display_tab(mh_tab, "Help") def tabGraphViewer(self, widget, data=None): From d3f75831745ffee3223d8e82272ae994a75d5e32 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 2 Aug 2010 12:05:49 +0200 Subject: [PATCH 061/301] correct license info in about dialogue --- pyfpdb/fpdb.pyw | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index acf79c14..8231209d 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -228,13 +228,12 @@ class fpdb: self.quit(widget) def dia_about(self, widget, data=None): - #self.warning_box("About FPDB:\n\nFPDB was originally created by a guy named Steffen, sometime in 2008, \nand is mostly worked on these days by people named Eratosthenes, s0rrow, _mt, EricBlade, sqlcoder, and other strange people.\n\n", "ABOUT FPDB") dia = gtk.AboutDialog() dia.set_name("Free Poker Database (FPDB)") dia.set_version(VERSION) dia.set_copyright("Copyright 2008-2010, Steffen, Eratosthenes, Carl Gherardi, Eric Blade, _mt, sqlcoder, Bostik, and others") - dia.set_comments("") - dia.set_license("This program is licensed under the AGPL3, see agpl-3.0.txt in the fpdb installation directory") + dia.set_comments("You are free to change and distribute original or changed versions of fpdb within the rules set out by the license") + dia.set_license("Please see fpdb's start screen for license information") dia.set_website("http://fpdb.sourceforge.net/") dia.set_authors(['Steffen', 'Eratosthenes', 'Carl Gherardi', From 388097a41230fff3d342d7baa7c25269c4196d9f Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 2 Aug 2010 13:35:20 +0200 Subject: [PATCH 062/301] fix import for non-KO tourneys --- pyfpdb/PokerStarsToFpdb.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index a45a9b4e..cdeeb74c 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -72,7 +72,7 @@ class PokerStars(HandHistoryConverter): (Tournament\s\# # open paren of tournament info (?P\d+),\s # here's how I plan to use LS - (?P(?P[%(LS)s\d\.]+)\+(?P[%(LS)s\d\.]+)?\+(?P[%(LS)s\d\.]+)\s?(?P%(LEGAL_ISO)s)|Freeroll)\s+)? + (?P(?P[%(LS)s\d\.]+)\+(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)\s?(?P%(LEGAL_ISO)s)|Freeroll)\s+)? # close paren of tournament info (?PHORSE|8\-Game|HOSE)?\s?\(? (?PHold\'em|Razz|RAZZ|7\sCard\sStud|7\sCard\sStud\sHi/Lo|Omaha|Omaha\sHi/Lo|Badugi|Triple\sDraw\s2\-7\sLowball|5\sCard\sDraw)\s @@ -251,11 +251,14 @@ class PokerStars(HandHistoryConverter): #FIXME: handle other currencies, FPP, play money raise FpdbParseError("failed to detect currency") - if hand.buyinCurrency=="USD" or hand.buyinCurrency=="EUR": + if hand.buyinCurrency!="PSFP": hand.buyin = int(100*Decimal(info['BIAMT'][1:])) - hand.fee = int(100*Decimal(info['BIRAKE'][1:])) + if info['BIRAKE']=="0": #we have a non-bounty game + hand.fee = int(100*Decimal(info['BOUNTY'][1:])) + else: + hand.fee = int(100*Decimal(info['BIRAKE'][1:])) # TODO: Bounty is in key 'BOUNTY' - elif hand.buyinCurrency=="PSFP": + else: hand.buyin = int(Decimal(info[key][0:-3])) hand.fee = 0 if key == 'LEVEL': From 7b3bee91469e2aab8db073f4530b6cf89894c771 Mon Sep 17 00:00:00 2001 From: gimick Date: Mon, 2 Aug 2010 12:36:42 +0100 Subject: [PATCH 063/301] py2exe : include mit.txt licence file --- pyfpdb/py2exe_setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/py2exe_setup.py b/pyfpdb/py2exe_setup.py index 42d22e21..a836ed76 100644 --- a/pyfpdb/py2exe_setup.py +++ b/pyfpdb/py2exe_setup.py @@ -165,7 +165,7 @@ setup( # files in 2nd value in tuple are moved to dir named in 1st value #data_files updated for new locations of licences + readme nolonger exists - data_files = [('', ['HUD_config.xml.example', 'Cards01.png', 'logging.conf', '../agpl-3.0.txt', '../fdl-1.2.txt', '../gpl-3.0.txt', '../gpl-2.0.txt', '../readme.txt']) + data_files = [('', ['HUD_config.xml.example', 'Cards01.png', 'logging.conf', '../agpl-3.0.txt', '../fdl-1.2.txt', '../gpl-3.0.txt', '../gpl-2.0.txt', '../mit.txt', '../readme.txt']) ,(dist_dir, [r'..\run_fpdb.bat']) ,( dist_dir + r'\gfx', glob.glob(r'..\gfx\*.*') ) # line below has problem with fonts subdir ('not a regular file') From 9ad275e11c4bbf6d9c97cb6a3fa75ffa836a99de Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 2 Aug 2010 13:53:50 +0200 Subject: [PATCH 064/301] recognise and store knockout and bounty --- pyfpdb/Database.py | 6 +++--- pyfpdb/Hand.py | 2 ++ pyfpdb/PokerStarsToFpdb.py | 3 ++- pyfpdb/SQL.py | 4 ++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 500dfb0a..e810d28a 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -1990,7 +1990,7 @@ class Database: #print "the query:",self.sql.query['getTourneyTypeId'].replace('%s', self.sql.query['placeholder']) cursor.execute (self.sql.query['getTourneyTypeId'].replace('%s', self.sql.query['placeholder']), (hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.gametype['category'], hand.gametype['limitType'], hand.isKO, - hand.isRebuy, hand.isAddOn, hand.speed, hand.isShootout, hand.isMatrix) + hand.isRebuy, hand.isAddOn, hand.speed, hand.isShootout, hand.isMatrix) #TODO: add koamount ) result=cursor.fetchone() #print "result of fetching TT by details:",result @@ -1999,8 +1999,8 @@ class Database: tourneyTypeId = result[0] except TypeError: #this means we need to create a new entry cursor.execute (self.sql.query['insertTourneyType'].replace('%s', self.sql.query['placeholder']), - (hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.gametype['category'], hand.gametype['limitType'], hand.buyInChips, - hand.isKO, hand.isRebuy, + (hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.gametype['category'], hand.gametype['limitType'], + hand.buyInChips, hand.isKO, hand.koBounty, hand.isRebuy, hand.isAddOn, hand.speed, hand.isShootout, hand.isMatrix, hand.added, hand.addedCurrency) ) tourneyTypeId = self.get_last_insert_id(cursor) diff --git a/pyfpdb/Hand.py b/pyfpdb/Hand.py index a1a6c5d8..e4965dab 100644 --- a/pyfpdb/Hand.py +++ b/pyfpdb/Hand.py @@ -83,6 +83,7 @@ class Hand(object): self.isRebuy = False self.isAddOn = False self.isKO = False + self.koBounty = None self.isMatrix = False self.isShootout = False self.added = None @@ -168,6 +169,7 @@ class Hand(object): ("IS REBUY", self.isRebuy), ("IS ADDON", self.isAddOn), ("IS KO", self.isKO), + ("KO BOUNTY", self.koBounty), ("IS MATRIX", self.isMatrix), ("IS SHOOTOUT", self.isShootout), ("TOURNEY COMMENT", self.tourneyComment), diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index cdeeb74c..28dbd219 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -257,7 +257,8 @@ class PokerStars(HandHistoryConverter): hand.fee = int(100*Decimal(info['BOUNTY'][1:])) else: hand.fee = int(100*Decimal(info['BIRAKE'][1:])) - # TODO: Bounty is in key 'BOUNTY' + hand.isKO = True + hand.koBounty = int(100*Decimal(info['BOUNTY'][1:])) else: hand.buyin = int(Decimal(info[key][0:-3])) hand.fee = 0 diff --git a/pyfpdb/SQL.py b/pyfpdb/SQL.py index fcebc5c9..8d9e5f1b 100644 --- a/pyfpdb/SQL.py +++ b/pyfpdb/SQL.py @@ -3786,9 +3786,9 @@ class Sql: """ self.query['insertTourneyType'] = """INSERT INTO TourneyTypes - (siteId, currency, buyin, fee, category, limitType, buyInChips, knockout, rebuy, + (siteId, currency, buyin, fee, category, limitType, buyInChips, knockout, koBounty, rebuy, addOn ,speed, shootout, matrix, added, addedCurrency) - VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) + VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) """ self.query['getTourneyByTourneyNo'] = """SELECT t.* From 57d9cc5665d9cff939e71736539cf628008dcf32 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 2 Aug 2010 14:56:20 +0200 Subject: [PATCH 065/301] very dirty hack to work around bug in gameinfo regex missing last digit of second number --- pyfpdb/PokerStarsToFpdb.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index 28dbd219..573b8dfb 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -253,7 +253,8 @@ class PokerStars(HandHistoryConverter): if hand.buyinCurrency!="PSFP": hand.buyin = int(100*Decimal(info['BIAMT'][1:])) - if info['BIRAKE']=="0": #we have a non-bounty game + if info['BIRAKE'][0]!="$": #we have a non-bounty game + info['BOUNTY']=info['BOUNTY']+info['BIRAKE'] #TODO remove this dirty dirty hack by fixing regex hand.fee = int(100*Decimal(info['BOUNTY'][1:])) else: hand.fee = int(100*Decimal(info['BIRAKE'][1:])) From 9daadeb7f9f0ed85b95b2d8919602e99f5021a81 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 2 Aug 2010 15:12:55 +0200 Subject: [PATCH 066/301] fix regex for FPP tourneys --- pyfpdb/PokerStarsToFpdb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index 573b8dfb..dddb92a2 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -72,7 +72,7 @@ class PokerStars(HandHistoryConverter): (Tournament\s\# # open paren of tournament info (?P\d+),\s # here's how I plan to use LS - (?P(?P[%(LS)s\d\.]+)\+(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)\s?(?P%(LEGAL_ISO)s)|Freeroll)\s+)? + (?P(?P[%(LS)s\d\.]+)\+?(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)\s?(?P%(LEGAL_ISO)s)|Freeroll)\s+)? # close paren of tournament info (?PHORSE|8\-Game|HOSE)?\s?\(? (?PHold\'em|Razz|RAZZ|7\sCard\sStud|7\sCard\sStud\sHi/Lo|Omaha|Omaha\sHi/Lo|Badugi|Triple\sDraw\s2\-7\sLowball|5\sCard\sDraw)\s From 08959e3176d096b224203a2fd65b8dc13e830841 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 2 Aug 2010 16:36:25 +0200 Subject: [PATCH 067/301] fix for 1FPP tourney --- pyfpdb/PokerStarsToFpdb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index dddb92a2..378d6615 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -72,7 +72,7 @@ class PokerStars(HandHistoryConverter): (Tournament\s\# # open paren of tournament info (?P\d+),\s # here's how I plan to use LS - (?P(?P[%(LS)s\d\.]+)\+?(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)\s?(?P%(LEGAL_ISO)s)|Freeroll)\s+)? + (?P(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)\s?(?P%(LEGAL_ISO)s)|Freeroll)\s+)? # close paren of tournament info (?PHORSE|8\-Game|HOSE)?\s?\(? (?PHold\'em|Razz|RAZZ|7\sCard\sStud|7\sCard\sStud\sHi/Lo|Omaha|Omaha\sHi/Lo|Badugi|Triple\sDraw\s2\-7\sLowball|5\sCard\sDraw)\s From ed3d6ac15a4e6d2d319a8d70b5da2414a2dd441b Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 2 Aug 2010 16:46:46 +0200 Subject: [PATCH 068/301] fix so it works with old-style tourney header missing ISO currency code --- pyfpdb/PokerStarsToFpdb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index 378d6615..1e71c39e 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -72,7 +72,7 @@ class PokerStars(HandHistoryConverter): (Tournament\s\# # open paren of tournament info (?P\d+),\s # here's how I plan to use LS - (?P(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)\s?(?P%(LEGAL_ISO)s)|Freeroll)\s+)? + (?P(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)\s?(?P%(LEGAL_ISO)s)?|Freeroll)\s+)? # close paren of tournament info (?PHORSE|8\-Game|HOSE)?\s?\(? (?PHold\'em|Razz|RAZZ|7\sCard\sStud|7\sCard\sStud\sHi/Lo|Omaha|Omaha\sHi/Lo|Badugi|Triple\sDraw\s2\-7\sLowball|5\sCard\sDraw)\s From 55214ad93474a9526859e95862a4c342c24b94da Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 2 Aug 2010 22:35:00 +0200 Subject: [PATCH 069/301] slight change to make it easier for normals to understand the resulting filename --- packaging/windows/py2exeWalkthroughPython26.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/windows/py2exeWalkthroughPython26.txt b/packaging/windows/py2exeWalkthroughPython26.txt index b2221bc1..b023d80d 100644 --- a/packaging/windows/py2exeWalkthroughPython26.txt +++ b/packaging/windows/py2exeWalkthroughPython26.txt @@ -222,7 +222,7 @@ pyfpdb/share/man Step 12 rename folder --------------------- -Rename the folder to something meaningful to the community. If you have built for NoSSE, append noSSE to the directory name. +Rename the folder to something meaningful to the community. If you have built for NoSSE, append anyCPU to the directory name. Step 13 Compress to executable archive From 8b3131eb9eefeb0e1db5c522ba8a74037e7ff766 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 2 Aug 2010 22:35:31 +0200 Subject: [PATCH 070/301] update GUI version to indicate git --- pyfpdb/fpdb.pyw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index 0fb1ee37..d76eb62f 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -116,7 +116,7 @@ import Configuration import Exceptions import Stats -VERSION = "0.20.903" +VERSION = "0.20.903 plus git" class fpdb: From 7d70386c7ef8698b7d979cad1846f964c200b4a0 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 2 Aug 2010 22:37:00 +0200 Subject: [PATCH 071/301] remove two windows packaging files as they're superseded --- pyfpdb/makeexe.bat | 1 - pyfpdb/makeexe.py | 27 --------------------------- 2 files changed, 28 deletions(-) delete mode 100644 pyfpdb/makeexe.bat delete mode 100644 pyfpdb/makeexe.py diff --git a/pyfpdb/makeexe.bat b/pyfpdb/makeexe.bat deleted file mode 100644 index ddcdba7c..00000000 --- a/pyfpdb/makeexe.bat +++ /dev/null @@ -1 +0,0 @@ -python makeexe.py py2exe diff --git a/pyfpdb/makeexe.py b/pyfpdb/makeexe.py deleted file mode 100644 index 568b1939..00000000 --- a/pyfpdb/makeexe.py +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -#Copyright 2009-2010 Eric Blade -#This program is free software: you can redistribute it and/or modify -#it under the terms of the GNU Affero General Public License as published by -#the Free Software Foundation, version 3 of the License. -# -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -# -#You should have received a copy of the GNU Affero General Public License -#along with this program. If not, see . -#In the "official" distribution you can find the license in agpl-3.0.txt. - -from distutils.core import setup -import py2exe -opts = { - 'py2exe': { - 'includes': "pango,atk,gobject", - } - } - -setup(name='Free Poker Database', version='0.12', console=[{"script":"fpdb.py"}]) - From 49d8e0055d63521e5c8153541ea4f11de806296a Mon Sep 17 00:00:00 2001 From: Eric Blade Date: Mon, 2 Aug 2010 16:47:32 -0400 Subject: [PATCH 072/301] tweak cards shown regex --- pyfpdb/EverleafToFpdb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/EverleafToFpdb.py b/pyfpdb/EverleafToFpdb.py index 454f7e79..8bff1cdd 100755 --- a/pyfpdb/EverleafToFpdb.py +++ b/pyfpdb/EverleafToFpdb.py @@ -58,7 +58,7 @@ class Everleaf(HandHistoryConverter): self.re_HeroCards = re.compile(ur"^Dealt to %s \[ (?P.*) \]$" % player_re, re.MULTILINE) # ^%s(?P: bets| checks| raises| calls| folds)(\s\[(?:\$| €|) (?P[.,\d]+) (USD|EURO|Chips)\])? self.re_Action = re.compile(ur"^%s(?P: bets| checks| raises| calls| folds)(\s\[(?:[$€]?) (?P[.,\d]+)\s?(USD|EURO|Chips|)\])?" % player_re, re.MULTILINE) - self.re_ShowdownAction = re.compile(ur"^%s shows \[ (?P.*) \]$" % player_re, re.MULTILINE) + self.re_ShowdownAction = re.compile(ur"^%s shows \[ (?P.*) \]" % player_re, re.MULTILINE) self.re_CollectPot = re.compile(ur"^%s wins (?:[$€]?)\s?(?P[.\d]+) (USD|EURO|chips)(.*?\[ (?P.*?) \])?" % player_re, re.MULTILINE) self.re_SitsOut = re.compile(ur"^%s sits out" % player_re, re.MULTILINE) From 7cd9b767a7e42dd68a631cd942a5c87608f57536 Mon Sep 17 00:00:00 2001 From: Eric Blade Date: Mon, 2 Aug 2010 17:33:18 -0400 Subject: [PATCH 073/301] add some missing stats to the default popup --- pyfpdb/HUD_config.xml.example | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pyfpdb/HUD_config.xml.example b/pyfpdb/HUD_config.xml.example index 9ee17c1c..da257d1c 100644 --- a/pyfpdb/HUD_config.xml.example +++ b/pyfpdb/HUD_config.xml.example @@ -556,22 +556,26 @@ Left-Drag to Move" + + + + + - From 0c318df8ea1c9da5ab643eb7bc79edf0a7d89d5f Mon Sep 17 00:00:00 2001 From: Eric Blade Date: Mon, 2 Aug 2010 17:50:19 -0400 Subject: [PATCH 074/301] fix comment on cbet stat --- pyfpdb/Stats.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/Stats.py b/pyfpdb/Stats.py index 9bb6307c..74558da8 100755 --- a/pyfpdb/Stats.py +++ b/pyfpdb/Stats.py @@ -589,8 +589,8 @@ def agg_fact(stat_dict, player): def cbet(stat_dict, player): - """ Flop continuation bet.""" - """ Continuation bet % = (times made a continuation bet on the flop) * 100 / (number of opportunities to make a continuation bet on the flop) """ + """ Total continuation bet.""" + """ Continuation bet % = (times made a continuation bet on any street) * 100 / (number of opportunities to make a continuation bet on any street) """ stat = 0.0 try: From d20c82c2964444b70abea55ba813dc4cffb35d34 Mon Sep 17 00:00:00 2001 From: Eric Blade Date: Tue, 3 Aug 2010 00:24:14 -0400 Subject: [PATCH 075/301] add preflop actors to blindsantes for determining who was in hand for wtsd calcs --- pyfpdb/DerivedStats.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index 7778c956..26e95394 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -292,7 +292,7 @@ class DerivedStats(): # hand.players includes people that are sitting out on some sites. # Those that posted an ante should have been deal cards. - p_in = set([x[0] for x in hand.actions['BLINDSANTES']]) + p_in = set([x[0] for x in hand.actions['BLINDSANTES']] + [x[0] for x in hand.actions['PREFLOP']]) for (i, street) in enumerate(hand.actionStreets): actions = hand.actions[street] From 2fd856d55bd93db87d23bead009dfd2c29e52d56 Mon Sep 17 00:00:00 2001 From: Worros Date: Tue, 3 Aug 2010 18:24:03 +0800 Subject: [PATCH 076/301] HHC: Shorten length of time hh file is open by 2 lines --- pyfpdb/HandHistoryConverter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index 59ba90ef..8faf5dfb 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -433,9 +433,9 @@ or None if we fail to get the info """ try: in_fh = codecs.open(self.in_path, 'r', kodec) whole_file = in_fh.read() + in_fh.close() self.obs = whole_file[self.index:] self.index = len(whole_file) - in_fh.close() break except: pass From 9329475298546c95993cb7578acb84c09d8a3d47 Mon Sep 17 00:00:00 2001 From: Worros Date: Tue, 3 Aug 2010 19:22:52 +0800 Subject: [PATCH 077/301] Stars: Take 42 on Tourney parsing Hopefully fix parsing for bounty and cash tourneys for good. FPP is probably still broken --- pyfpdb/PokerStarsToFpdb.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index 1e71c39e..80d48b6b 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -72,7 +72,7 @@ class PokerStars(HandHistoryConverter): (Tournament\s\# # open paren of tournament info (?P\d+),\s # here's how I plan to use LS - (?P(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)\s?(?P%(LEGAL_ISO)s)?|Freeroll)\s+)? + (?P(?P[%(LS)s\d\.]+)?\+(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)?\s?(?P%(LEGAL_ISO)s)?|Freeroll)\s+)? # close paren of tournament info (?PHORSE|8\-Game|HOSE)?\s?\(? (?PHold\'em|Razz|RAZZ|7\sCard\sStud|7\sCard\sStud\sHi/Lo|Omaha|Omaha\sHi/Lo|Badugi|Triple\sDraw\s2\-7\sLowball|5\sCard\sDraw)\s @@ -252,14 +252,20 @@ class PokerStars(HandHistoryConverter): raise FpdbParseError("failed to detect currency") if hand.buyinCurrency!="PSFP": - hand.buyin = int(100*Decimal(info['BIAMT'][1:])) - if info['BIRAKE'][0]!="$": #we have a non-bounty game - info['BOUNTY']=info['BOUNTY']+info['BIRAKE'] #TODO remove this dirty dirty hack by fixing regex - hand.fee = int(100*Decimal(info['BOUNTY'][1:])) - else: - hand.fee = int(100*Decimal(info['BIRAKE'][1:])) - hand.isKO = True - hand.koBounty = int(100*Decimal(info['BOUNTY'][1:])) + if info['BOUNTY'] != None: + # There is a bounty, Which means we need to switch BOUNTY and BIRAKE values + tmp = info['BOUNTY'] + info['BOUNTY'] = info['BIRAKE'] + info['BIRAKE'] = tmp + info['BOUNTY'] = info['BOUNTY'].strip(u'$€') # Strip here where it isn't 'None' + hand.koBounty = int(100*Decimal(info['BOUNTY'])) + + info['BIAMT'] = info['BIAMT'].strip(u'$€') + info['BIRAKE'] = info['BIRAKE'].strip(u'$€') + + hand.buyin = int(100*Decimal(info['BIAMT'])) + hand.fee = int(100*Decimal(info['BIRAKE'])) + hand.isKO = True else: hand.buyin = int(Decimal(info[key][0:-3])) hand.fee = 0 From 53c796dddce18ddc3cca159103c73ddfac6fcf38 Mon Sep 17 00:00:00 2001 From: Worros Date: Tue, 3 Aug 2010 19:27:34 +0800 Subject: [PATCH 078/301] Importer: Add excetion handler to hud call. Had a report on the 2+2 thread that: File "C:\Documents and Settings\b\Desktop\fpdb\pyfpdb\GuiAutoImport.py", line 160, in do_import self.importer.runUpdated() File "C:\Documents and Settings\b\Desktop\fpdb\pyfpdb\fpdb_import.py", line 371, in runUpdated (stored, duplicates, partial, errors, ttime) = self.import_file_dict(self.database, file, self.filelist[file][0], self.filelist[file][1], None) File "C:\Documents and Settings\b\Desktop\fpdb\pyfpdb\fpdb_import.py", line 467, in import_file_dict print "fpdb_import: sending hand to hud", hand.dbid_hands, "pipe =", self.caller.pipe_to_hud IOError: [Errno 9] Bad file descriptor Was happening, which is a crash attempting to print self.caller.pipe_to_hud This patch doesn't fix the problem, but should give some indication in the log that it happened. --- pyfpdb/fpdb_import.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index eeaa63ac..cbe87684 100755 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -464,8 +464,11 @@ class Importer: #pipe the Hands.id out to the HUD for hid in to_hud: - print "fpdb_import: sending hand to hud", hand.dbid_hands, "pipe =", self.caller.pipe_to_hud - self.caller.pipe_to_hud.stdin.write("%s" % (hid) + os.linesep) + try: + print "fpdb_import: sending hand to hud", hand.dbid_hands, "pipe =", self.caller.pipe_to_hud + self.caller.pipe_to_hud.stdin.write("%s" % (hid) + os.linesep) + except IOError, e: + log.error("Failed to send hand to HUD: %s" % e) errors = getattr(hhc, 'numErrors') stored = getattr(hhc, 'numHands') From dc2b315a9f7078783ff9a71b55561560d66ff6da Mon Sep 17 00:00:00 2001 From: Worros Date: Tue, 3 Aug 2010 19:52:49 +0800 Subject: [PATCH 079/301] Stars: Fix FPP tourneys (maybe...) Also move hand.isKO to the correct place --- pyfpdb/PokerStarsToFpdb.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index 80d48b6b..384f5082 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -72,7 +72,7 @@ class PokerStars(HandHistoryConverter): (Tournament\s\# # open paren of tournament info (?P\d+),\s # here's how I plan to use LS - (?P(?P[%(LS)s\d\.]+)?\+(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)?\s?(?P%(LEGAL_ISO)s)?|Freeroll)\s+)? + (?P(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)?\s?(?P%(LEGAL_ISO)s)?|Freeroll)\s+)? # close paren of tournament info (?PHORSE|8\-Game|HOSE)?\s?\(? (?PHold\'em|Razz|RAZZ|7\sCard\sStud|7\sCard\sStud\sHi/Lo|Omaha|Omaha\sHi/Lo|Badugi|Triple\sDraw\s2\-7\sLowball|5\sCard\sDraw)\s @@ -250,6 +250,8 @@ class PokerStars(HandHistoryConverter): else: #FIXME: handle other currencies, FPP, play money raise FpdbParseError("failed to detect currency") + + info['BIAMT'] = info['BIAMT'].strip(u'$€FPP') if hand.buyinCurrency!="PSFP": if info['BOUNTY'] != None: @@ -259,15 +261,14 @@ class PokerStars(HandHistoryConverter): info['BIRAKE'] = tmp info['BOUNTY'] = info['BOUNTY'].strip(u'$€') # Strip here where it isn't 'None' hand.koBounty = int(100*Decimal(info['BOUNTY'])) + hand.isKO = True - info['BIAMT'] = info['BIAMT'].strip(u'$€') info['BIRAKE'] = info['BIRAKE'].strip(u'$€') hand.buyin = int(100*Decimal(info['BIAMT'])) hand.fee = int(100*Decimal(info['BIRAKE'])) - hand.isKO = True else: - hand.buyin = int(Decimal(info[key][0:-3])) + hand.buyin = int(Decimal(info['BIAMT'])) hand.fee = 0 if key == 'LEVEL': hand.level = info[key] From 15605efd241afcba9a8541fda72a724ee724581e Mon Sep 17 00:00:00 2001 From: Mika Bostrom Date: Tue, 3 Aug 2010 17:48:47 +0300 Subject: [PATCH 080/301] Update changelog for .903 snapshot --- packaging/debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packaging/debian/changelog b/packaging/debian/changelog index 0616ad0e..0a27920a 100644 --- a/packaging/debian/changelog +++ b/packaging/debian/changelog @@ -1,3 +1,9 @@ +free-poker-tools (0.20.903-1) unstable; urgency=low + + * .903 snapshot release + + -- Mika Bostrom Tue, 03 Aug 2010 17:47:41 +0300 + free-poker-tools (0.20.902-1) unstable; urgency=low * New snapshot release; .901 was broken for FTP From edd0d36aa7d9416809d5cced754ab0761f11644f Mon Sep 17 00:00:00 2001 From: Worros Date: Wed, 4 Aug 2010 02:10:44 +0800 Subject: [PATCH 081/301] Test file: NLHE-USD-MTT-1-KO.201008.txt $1.40 KO SnG from Stars. Worth noting that neither the HH nor the tournament summary contain any bounty information. The only place it was noted was in the individual tourney mailout "You have also received USD 1.25 in Knockout Bounties for this tournament. You won bounties for the following players: odotb, Yvbo, bumbastik7, gliberis, __DMN__54321" --- .../Stars/Flop/NLHE-USD-MTT-1-KO.201008.txt | 10384 ++++++++++++++++ 1 file changed, 10384 insertions(+) create mode 100644 pyfpdb/regression-test-files/tour/Stars/Flop/NLHE-USD-MTT-1-KO.201008.txt diff --git a/pyfpdb/regression-test-files/tour/Stars/Flop/NLHE-USD-MTT-1-KO.201008.txt b/pyfpdb/regression-test-files/tour/Stars/Flop/NLHE-USD-MTT-1-KO.201008.txt new file mode 100644 index 00000000..e24e5423 --- /dev/null +++ b/pyfpdb/regression-test-files/tour/Stars/Flop/NLHE-USD-MTT-1-KO.201008.txt @@ -0,0 +1,10384 @@ +PokerStars Game #47653044623: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level I (10/20) - 2010/08/03 10:57:43 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: g0ty4 (2000 in chips) +Seat 2: ruslan999588 (2000 in chips) +Seat 3: Buell XB12sl (2000 in chips) +Seat 4: seric1975 (2000 in chips) +Seat 5: svarcipapa (2000 in chips) +Seat 6: titasands (2000 in chips) +Seat 7: Gibsons66 (2000 in chips) +Seat 8: tanker175 (2000 in chips) +Seat 9: s0rrow (2000 in chips) +ruslan999588: posts small blind 10 +Buell XB12sl: posts big blind 20 +*** HOLE CARDS *** +Dealt to s0rrow [7h Qc] +seric1975: folds +svarcipapa: folds +titasands: folds +Gibsons66 has timed out +Gibsons66: folds +Gibsons66 is sitting out +tanker175: calls 20 +s0rrow: calls 20 +g0ty4: folds +ruslan999588: calls 10 +Buell XB12sl: checks +*** FLOP *** [8c 4h Qd] +ruslan999588: checks +Buell XB12sl: checks +tanker175: checks +s0rrow: bets 100 +ruslan999588: folds +Buell XB12sl: folds +tanker175: calls 100 +*** TURN *** [8c 4h Qd] [Jd] +tanker175: checks +s0rrow: checks +*** RIVER *** [8c 4h Qd Jd] [Ah] +tanker175: checks +s0rrow: checks +*** SHOW DOWN *** +tanker175: shows [Tc Qh] (a pair of Queens) +s0rrow: mucks hand +tanker175 collected 280 from pot +*** SUMMARY *** +Total pot 280 | Rake 0 +Board [8c 4h Qd Jd Ah] +Seat 1: g0ty4 (button) folded before Flop (didn't bet) +Seat 2: ruslan999588 (small blind) folded on the Flop +Seat 3: Buell XB12sl (big blind) folded on the Flop +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: svarcipapa folded before Flop (didn't bet) +Seat 6: titasands folded before Flop (didn't bet) +Seat 7: Gibsons66 folded before Flop (didn't bet) +Seat 8: tanker175 showed [Tc Qh] and won (280) with a pair of Queens +Seat 9: s0rrow mucked [7h Qc] + + + +PokerStars Game #47653087764: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level I (10/20) - 2010/08/03 10:59:19 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: g0ty4 (2000 in chips) +Seat 2: ruslan999588 (1980 in chips) +Seat 3: Buell XB12sl (1980 in chips) +Seat 4: seric1975 (2000 in chips) +Seat 5: svarcipapa (2000 in chips) +Seat 6: titasands (2000 in chips) +Seat 7: Gibsons66 (2000 in chips) is sitting out +Seat 8: tanker175 (2160 in chips) +Seat 9: s0rrow (1880 in chips) +Buell XB12sl: posts small blind 10 +seric1975: posts big blind 20 +*** HOLE CARDS *** +Dealt to s0rrow [Ts Ad] +svarcipapa: folds +titasands is disconnected +titasands has timed out while disconnected +titasands: folds +Gibsons66: folds +titasands is sitting out +tanker175: folds +s0rrow: folds +g0ty4: folds +ruslan999588: calls 20 +Buell XB12sl: calls 10 +seric1975: checks +*** FLOP *** [Td 3h Tc] +Buell XB12sl: checks +seric1975: bets 60 +ruslan999588: calls 60 +Buell XB12sl: folds +*** TURN *** [Td 3h Tc] [Jd] +seric1975: bets 200 +ruslan999588: folds +Uncalled bet (200) returned to seric1975 +seric1975 collected 180 from pot +*** SUMMARY *** +Total pot 180 | Rake 0 +Board [Td 3h Tc Jd] +Seat 1: g0ty4 folded before Flop (didn't bet) +Seat 2: ruslan999588 (button) folded on the Turn +Seat 3: Buell XB12sl (small blind) folded on the Flop +Seat 4: seric1975 (big blind) collected (180) +Seat 5: svarcipapa folded before Flop (didn't bet) +Seat 6: titasands folded before Flop (didn't bet) +Seat 7: Gibsons66 folded before Flop (didn't bet) +Seat 8: tanker175 folded before Flop (didn't bet) +Seat 9: s0rrow folded before Flop (didn't bet) + + + +PokerStars Game #47653133668: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level I (10/20) - 2010/08/03 11:00:54 ET +Table '297808375 8' 9-max Seat #3 is the button +Seat 1: g0ty4 (2000 in chips) +Seat 2: ruslan999588 (1900 in chips) +Seat 3: Buell XB12sl (1960 in chips) +Seat 4: seric1975 (2100 in chips) +Seat 5: svarcipapa (2000 in chips) +Seat 6: titasands (2000 in chips) is sitting out +Seat 7: Gibsons66 (2000 in chips) is sitting out +Seat 8: tanker175 (2160 in chips) +Seat 9: s0rrow (1880 in chips) +seric1975: posts small blind 10 +svarcipapa: posts big blind 20 +*** HOLE CARDS *** +Dealt to s0rrow [4s 4d] +titasands: folds +Gibsons66: folds +tanker175: calls 20 +s0rrow: raises 40 to 60 +g0ty4: folds +ruslan999588: calls 60 +Buell XB12sl: folds +seric1975: folds +svarcipapa: folds +tanker175: calls 40 +*** FLOP *** [Qc 2h 9c] +tanker175: checks +s0rrow: bets 120 +ruslan999588: folds +tanker175: calls 120 +*** TURN *** [Qc 2h 9c] [4h] +tanker175: checks +s0rrow: bets 280 +tanker175: calls 280 +*** RIVER *** [Qc 2h 9c 4h] [5h] +tanker175: checks +s0rrow: bets 1420 and is all-in +tanker175: folds +Uncalled bet (1420) returned to s0rrow +s0rrow collected 1010 from pot +*** SUMMARY *** +Total pot 1010 | Rake 0 +Board [Qc 2h 9c 4h 5h] +Seat 1: g0ty4 folded before Flop (didn't bet) +Seat 2: ruslan999588 folded on the Flop +Seat 3: Buell XB12sl (button) folded before Flop (didn't bet) +Seat 4: seric1975 (small blind) folded before Flop +Seat 5: svarcipapa (big blind) folded before Flop +Seat 6: titasands folded before Flop (didn't bet) +Seat 7: Gibsons66 folded before Flop (didn't bet) +Seat 8: tanker175 folded on the River +Seat 9: s0rrow collected (1010) + + + +PokerStars Game #47653174206: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level I (10/20) - 2010/08/03 11:02:08 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: g0ty4 (2000 in chips) +Seat 2: ruslan999588 (1840 in chips) +Seat 3: Buell XB12sl (1960 in chips) +Seat 4: seric1975 (2090 in chips) +Seat 5: svarcipapa (1980 in chips) +Seat 6: titasands (2000 in chips) is sitting out +Seat 7: Gibsons66 (2000 in chips) is sitting out +Seat 8: tanker175 (1700 in chips) +Seat 9: s0rrow (2430 in chips) +svarcipapa: posts small blind 10 +titasands: posts big blind 20 +*** HOLE CARDS *** +Dealt to s0rrow [6c Qd] +Gibsons66: folds +tanker175: calls 20 +s0rrow: folds +g0ty4: folds +ruslan999588: calls 20 +Buell XB12sl: calls 20 +seric1975: raises 20 to 40 +svarcipapa: folds +titasands: folds +tanker175: calls 20 +ruslan999588: calls 20 +Buell XB12sl: calls 20 +*** FLOP *** [Ac 3d As] +tanker175: checks +ruslan999588: checks +Buell XB12sl: checks +seric1975: checks +*** TURN *** [Ac 3d As] [8c] +tanker175: checks +ruslan999588: checks +Buell XB12sl: checks +seric1975: checks +*** RIVER *** [Ac 3d As 8c] [Kc] +tanker175: checks +ruslan999588: checks +Buell XB12sl: bets 100 +seric1975: folds +tanker175: calls 100 +ruslan999588: folds +*** SHOW DOWN *** +Buell XB12sl: shows [Th Ad] (three of a kind, Aces) +tanker175: mucks hand +Buell XB12sl collected 390 from pot +*** SUMMARY *** +Total pot 390 | Rake 0 +Board [Ac 3d As 8c Kc] +Seat 1: g0ty4 folded before Flop (didn't bet) +Seat 2: ruslan999588 folded on the River +Seat 3: Buell XB12sl showed [Th Ad] and won (390) with three of a kind, Aces +Seat 4: seric1975 (button) folded on the River +Seat 5: svarcipapa (small blind) folded before Flop +Seat 6: titasands (big blind) folded before Flop +Seat 7: Gibsons66 folded before Flop (didn't bet) +Seat 8: tanker175 mucked [8s 7s] +Seat 9: s0rrow folded before Flop (didn't bet) + + + +PokerStars Game #47653219981: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level I (10/20) - 2010/08/03 11:03:31 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: g0ty4 (2000 in chips) +Seat 2: ruslan999588 (1800 in chips) +Seat 3: Buell XB12sl (2210 in chips) +Seat 4: seric1975 (2050 in chips) +Seat 5: svarcipapa (1970 in chips) +Seat 6: titasands (1980 in chips) is sitting out +Seat 7: Gibsons66 (2000 in chips) is sitting out +Seat 8: tanker175 (1560 in chips) +Seat 9: s0rrow (2430 in chips) +titasands: posts small blind 10 +Gibsons66: posts big blind 20 +*** HOLE CARDS *** +Dealt to s0rrow [6c 8h] +tanker175: folds +s0rrow: folds +g0ty4: calls 20 +ruslan999588: calls 20 +Buell XB12sl: folds +seric1975: folds +svarcipapa: folds +titasands: folds +Gibsons66: folds +*** FLOP *** [3c 8c Ad] +g0ty4: checks +ruslan999588: checks +*** TURN *** [3c 8c Ad] [6h] +g0ty4: checks +ruslan999588: checks +*** RIVER *** [3c 8c Ad 6h] [4d] +g0ty4: checks +ruslan999588: checks +*** SHOW DOWN *** +g0ty4: shows [9s 9c] (a pair of Nines) +ruslan999588: shows [5d As] (a pair of Aces) +ruslan999588 collected 70 from pot +*** SUMMARY *** +Total pot 70 | Rake 0 +Board [3c 8c Ad 6h 4d] +Seat 1: g0ty4 showed [9s 9c] and lost with a pair of Nines +Seat 2: ruslan999588 showed [5d As] and won (70) with a pair of Aces +Seat 3: Buell XB12sl folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: svarcipapa (button) folded before Flop (didn't bet) +Seat 6: titasands (small blind) folded before Flop +Seat 7: Gibsons66 (big blind) folded before Flop +Seat 8: tanker175 folded before Flop (didn't bet) +Seat 9: s0rrow folded before Flop (didn't bet) + + + +PokerStars Game #47653246794: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level I (10/20) - 2010/08/03 11:04:16 ET +Table '297808375 8' 9-max Seat #6 is the button +Seat 1: g0ty4 (1980 in chips) +Seat 2: ruslan999588 (1850 in chips) +Seat 3: Buell XB12sl (2210 in chips) +Seat 4: seric1975 (2050 in chips) +Seat 5: svarcipapa (1970 in chips) +Seat 6: titasands (1970 in chips) is sitting out +Seat 7: Gibsons66 (1980 in chips) is sitting out +Seat 8: tanker175 (1560 in chips) +Seat 9: s0rrow (2430 in chips) +Gibsons66: posts small blind 10 +tanker175: posts big blind 20 +*** HOLE CARDS *** +Dealt to s0rrow [4c 2s] +s0rrow: folds +g0ty4: folds +ruslan999588: folds +Buell XB12sl: calls 20 +seric1975: folds +svarcipapa: folds +titasands: folds +Gibsons66: folds +tanker175: checks +*** FLOP *** [8c Kd Ts] +tanker175: checks +Buell XB12sl: checks +*** TURN *** [8c Kd Ts] [5d] +tanker175: checks +Buell XB12sl: checks +*** RIVER *** [8c Kd Ts 5d] [8s] +tanker175: checks +Buell XB12sl: checks +*** SHOW DOWN *** +tanker175: shows [9d As] (a pair of Eights) +Buell XB12sl: shows [2h Ah] (a pair of Eights) +tanker175 collected 25 from pot +Buell XB12sl collected 25 from pot +*** SUMMARY *** +Total pot 50 | Rake 0 +Board [8c Kd Ts 5d 8s] +Seat 1: g0ty4 folded before Flop (didn't bet) +Seat 2: ruslan999588 folded before Flop (didn't bet) +Seat 3: Buell XB12sl showed [2h Ah] and won (25) with a pair of Eights +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: svarcipapa folded before Flop (didn't bet) +Seat 6: titasands (button) folded before Flop (didn't bet) +Seat 7: Gibsons66 (small blind) folded before Flop +Seat 8: tanker175 (big blind) showed [9d As] and won (25) with a pair of Eights +Seat 9: s0rrow folded before Flop (didn't bet) + + + +PokerStars Game #47653271774: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level I (10/20) - 2010/08/03 11:05:00 ET +Table '297808375 8' 9-max Seat #7 is the button +Seat 1: g0ty4 (1980 in chips) +Seat 2: ruslan999588 (1850 in chips) +Seat 3: Buell XB12sl (2215 in chips) +Seat 4: seric1975 (2050 in chips) +Seat 5: svarcipapa (1970 in chips) +Seat 6: titasands (1970 in chips) is sitting out +Seat 7: Gibsons66 (1970 in chips) is sitting out +Seat 8: tanker175 (1565 in chips) +Seat 9: s0rrow (2430 in chips) +tanker175: posts small blind 10 +s0rrow: posts big blind 20 +*** HOLE CARDS *** +Dealt to s0rrow [Tc 4h] +g0ty4: folds +ruslan999588: calls 20 +Buell XB12sl: folds +seric1975: folds +svarcipapa: calls 20 +titasands: folds +Gibsons66: folds +tanker175: calls 10 +s0rrow: checks +*** FLOP *** [Th 5s 5d] +tanker175: checks +s0rrow: checks +ruslan999588: checks +svarcipapa: checks +*** TURN *** [Th 5s 5d] [5h] +tanker175: checks +s0rrow: bets 40 +ruslan999588: folds +svarcipapa: folds +tanker175: folds +Uncalled bet (40) returned to s0rrow +s0rrow collected 80 from pot +*** SUMMARY *** +Total pot 80 | Rake 0 +Board [Th 5s 5d 5h] +Seat 1: g0ty4 folded before Flop (didn't bet) +Seat 2: ruslan999588 folded on the Turn +Seat 3: Buell XB12sl folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: svarcipapa folded on the Turn +Seat 6: titasands folded before Flop (didn't bet) +Seat 7: Gibsons66 (button) folded before Flop (didn't bet) +Seat 8: tanker175 (small blind) folded on the Turn +Seat 9: s0rrow (big blind) collected (80) + + + +PokerStars Game #47653306913: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level I (10/20) - 2010/08/03 11:06:01 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: g0ty4 (1980 in chips) +Seat 2: ruslan999588 (1830 in chips) +Seat 3: Buell XB12sl (2215 in chips) +Seat 4: seric1975 (2050 in chips) +Seat 5: svarcipapa (1950 in chips) +Seat 7: Gibsons66 (1970 in chips) is sitting out +Seat 8: tanker175 (1545 in chips) +Seat 9: s0rrow (2490 in chips) +s0rrow: posts small blind 10 +g0ty4: posts big blind 20 +*** HOLE CARDS *** +Dealt to s0rrow [3s 9s] +ruslan999588: calls 20 +Buell XB12sl: folds +seric1975: folds +svarcipapa: folds +Gibsons66: folds +tanker175: folds +s0rrow: folds +g0ty4: checks +*** FLOP *** [Ks Jh Qd] +g0ty4: checks +ruslan999588: checks +*** TURN *** [Ks Jh Qd] [8c] +g0ty4: checks +ruslan999588: checks +*** RIVER *** [Ks Jh Qd 8c] [2h] +g0ty4: checks +ruslan999588: checks +*** SHOW DOWN *** +g0ty4: shows [9h 5c] (high card King) +ruslan999588: mucks hand +g0ty4 collected 50 from pot +*** SUMMARY *** +Total pot 50 | Rake 0 +Board [Ks Jh Qd 8c 2h] +Seat 1: g0ty4 (big blind) showed [9h 5c] and won (50) with high card King +Seat 2: ruslan999588 mucked [7d 3h] +Seat 3: Buell XB12sl folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: svarcipapa folded before Flop (didn't bet) +Seat 7: Gibsons66 folded before Flop (didn't bet) +Seat 8: tanker175 (button) folded before Flop (didn't bet) +Seat 9: s0rrow (small blind) folded before Flop + + + +PokerStars Game #47653329678: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level I (10/20) - 2010/08/03 11:06:41 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: g0ty4 (2010 in chips) +Seat 2: ruslan999588 (1810 in chips) +Seat 3: Buell XB12sl (2215 in chips) +Seat 4: seric1975 (2050 in chips) +Seat 5: svarcipapa (1950 in chips) +Seat 7: Gibsons66 (1970 in chips) is sitting out +Seat 8: tanker175 (1545 in chips) +Seat 9: s0rrow (2480 in chips) +g0ty4: posts small blind 10 +ruslan999588: posts big blind 20 +*** HOLE CARDS *** +Dealt to s0rrow [Tc 9s] +Buell XB12sl: folds +seric1975: calls 20 +svarcipapa: folds +Gibsons66: folds +tanker175: folds +s0rrow: calls 20 +g0ty4: folds +ruslan999588: checks +*** FLOP *** [6s 7h 3s] +ruslan999588: checks +seric1975: checks +s0rrow: bets 60 +ruslan999588: calls 60 +seric1975: folds +*** TURN *** [6s 7h 3s] [2d] +ruslan999588: checks +ramones004 is connected +s0rrow: checks +*** RIVER *** [6s 7h 3s 2d] [3c] +ruslan999588: bets 100 +s0rrow: folds +Uncalled bet (100) returned to ruslan999588 +ruslan999588 collected 190 from pot +ruslan999588: doesn't show hand +*** SUMMARY *** +Total pot 190 | Rake 0 +Board [6s 7h 3s 2d 3c] +Seat 1: g0ty4 (small blind) folded before Flop +Seat 2: ruslan999588 (big blind) collected (190) +Seat 3: Buell XB12sl folded before Flop (didn't bet) +Seat 4: seric1975 folded on the Flop +Seat 5: svarcipapa folded before Flop (didn't bet) +Seat 7: Gibsons66 folded before Flop (didn't bet) +Seat 8: tanker175 folded before Flop (didn't bet) +Seat 9: s0rrow (button) folded on the River + + + +PokerStars Game #47653363889: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level I (10/20) - 2010/08/03 11:07:40 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: g0ty4 (2000 in chips) +Seat 2: ruslan999588 (1920 in chips) +Seat 3: Buell XB12sl (2215 in chips) +Seat 4: seric1975 (2030 in chips) +Seat 5: svarcipapa (1950 in chips) +Seat 6: ramones004 (2350 in chips) +Seat 7: Gibsons66 (1970 in chips) is sitting out +Seat 8: tanker175 (1545 in chips) +Seat 9: s0rrow (2400 in chips) +ruslan999588: posts small blind 10 +Buell XB12sl: posts big blind 20 +*** HOLE CARDS *** +Dealt to s0rrow [2h 6s] +seric1975: calls 20 +svarcipapa: folds +ramones004: folds +Gibsons66: folds +tanker175: calls 20 +s0rrow: folds +g0ty4: folds +ruslan999588: calls 10 +Buell XB12sl: checks +*** FLOP *** [Kd Kc 5s] +ruslan999588: checks +Buell XB12sl: checks +seric1975: checks +tanker175: checks +*** TURN *** [Kd Kc 5s] [Qh] +ruslan999588: checks +Gibsons66 has returned +Buell XB12sl: checks +seric1975: checks +tanker175: checks +*** RIVER *** [Kd Kc 5s Qh] [As] +ruslan999588: checks +Buell XB12sl: checks +seric1975: checks +tanker175: checks +*** SHOW DOWN *** +ruslan999588: shows [Jh 3h] (a pair of Kings) +Buell XB12sl: shows [7d Jd] (a pair of Kings) +seric1975: mucks hand +tanker175: shows [6d Ah] (two pair, Aces and Kings) +tanker175 collected 80 from pot +*** SUMMARY *** +Total pot 80 | Rake 0 +Board [Kd Kc 5s Qh As] +Seat 1: g0ty4 (button) folded before Flop (didn't bet) +Seat 2: ruslan999588 (small blind) showed [Jh 3h] and lost with a pair of Kings +Seat 3: Buell XB12sl (big blind) showed [7d Jd] and lost with a pair of Kings +Seat 4: seric1975 mucked [6h 4h] +Seat 5: svarcipapa folded before Flop (didn't bet) +Seat 6: ramones004 folded before Flop (didn't bet) +Seat 7: Gibsons66 folded before Flop (didn't bet) +Seat 8: tanker175 showed [6d Ah] and won (80) with two pair, Aces and Kings +Seat 9: s0rrow folded before Flop (didn't bet) + + + +PokerStars Game #47653409610: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level II (15/30) - 2010/08/03 11:09:00 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: g0ty4 (2000 in chips) +Seat 2: ruslan999588 (1900 in chips) +Seat 3: Buell XB12sl (2195 in chips) +Seat 4: seric1975 (2010 in chips) +Seat 5: svarcipapa (1950 in chips) +Seat 6: ramones004 (2350 in chips) +Seat 7: Gibsons66 (1970 in chips) +Seat 8: tanker175 (1605 in chips) +Seat 9: s0rrow (2400 in chips) +Buell XB12sl: posts small blind 15 +seric1975: posts big blind 30 +*** HOLE CARDS *** +Dealt to s0rrow [5s 3h] +svarcipapa: folds +ramones004: raises 60 to 90 +Gibsons66: calls 90 +tanker175: folds +s0rrow: folds +g0ty4: folds +ruslan999588: calls 90 +Buell XB12sl: folds +seric1975: folds +*** FLOP *** [5d 3d Ac] +ramones004: bets 150 +Gibsons66: calls 150 +ruslan999588: folds +*** TURN *** [5d 3d Ac] [2s] +ramones004: checks +Gibsons66: bets 150 +ramones004: folds +Uncalled bet (150) returned to Gibsons66 +Gibsons66 collected 615 from pot +Gibsons66: doesn't show hand +*** SUMMARY *** +Total pot 615 | Rake 0 +Board [5d 3d Ac 2s] +Seat 1: g0ty4 folded before Flop (didn't bet) +Seat 2: ruslan999588 (button) folded on the Flop +Seat 3: Buell XB12sl (small blind) folded before Flop +Seat 4: seric1975 (big blind) folded before Flop +Seat 5: svarcipapa folded before Flop (didn't bet) +Seat 6: ramones004 folded on the Turn +Seat 7: Gibsons66 collected (615) +Seat 8: tanker175 folded before Flop (didn't bet) +Seat 9: s0rrow folded before Flop (didn't bet) + + + +PokerStars Game #47653441871: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level II (15/30) - 2010/08/03 11:09:56 ET +Table '297808375 8' 9-max Seat #3 is the button +Seat 1: g0ty4 (2000 in chips) +Seat 2: ruslan999588 (1810 in chips) +Seat 3: Buell XB12sl (2180 in chips) +Seat 4: seric1975 (1980 in chips) +Seat 5: svarcipapa (1950 in chips) +Seat 6: ramones004 (2110 in chips) +Seat 7: Gibsons66 (2345 in chips) +Seat 8: tanker175 (1605 in chips) +Seat 9: s0rrow (2400 in chips) +seric1975: posts small blind 15 +svarcipapa: posts big blind 30 +*** HOLE CARDS *** +Dealt to s0rrow [3s Jh] +ramones004: calls 30 +Gibsons66: calls 30 +tanker175: folds +s0rrow: folds +g0ty4: folds +ruslan999588: calls 30 +Buell XB12sl: calls 30 +seric1975: calls 15 +svarcipapa: checks +*** FLOP *** [8h Jc 6s] +seric1975: checks +svarcipapa: checks +ramones004: checks +Gibsons66: checks +ruslan999588: checks +Buell XB12sl: checks +*** TURN *** [8h Jc 6s] [3h] +seric1975: checks +svarcipapa: checks +ramones004: checks +Gibsons66: checks +ruslan999588: checks +Buell XB12sl: checks +*** RIVER *** [8h Jc 6s 3h] [Td] +seric1975: checks +svarcipapa: checks +ramones004: checks +Gibsons66: bets 30 +ruslan999588: folds +Buell XB12sl: folds +seric1975: calls 30 +svarcipapa: folds +ramones004: calls 30 +*** SHOW DOWN *** +Gibsons66: shows [2s Tc] (a pair of Tens) +seric1975: mucks hand +ramones004: shows [Ts Ks] (a pair of Tens - King kicker) +ramones004 collected 270 from pot +*** SUMMARY *** +Total pot 270 | Rake 0 +Board [8h Jc 6s 3h Td] +Seat 1: g0ty4 folded before Flop (didn't bet) +Seat 2: ruslan999588 folded on the River +Seat 3: Buell XB12sl (button) folded on the River +Seat 4: seric1975 (small blind) mucked [8s Qs] +Seat 5: svarcipapa (big blind) folded on the River +Seat 6: ramones004 showed [Ts Ks] and won (270) with a pair of Tens +Seat 7: Gibsons66 showed [2s Tc] and lost with a pair of Tens +Seat 8: tanker175 folded before Flop (didn't bet) +Seat 9: s0rrow folded before Flop (didn't bet) + + + +PokerStars Game #47653523025: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level II (15/30) - 2010/08/03 11:12:17 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 2: ruslan999588 (1780 in chips) +Seat 3: Buell XB12sl (2150 in chips) +Seat 4: seric1975 (1920 in chips) +Seat 5: svarcipapa (1920 in chips) +Seat 6: ramones004 (2320 in chips) +Seat 7: Gibsons66 (2285 in chips) +Seat 8: tanker175 (1605 in chips) +Seat 9: s0rrow (2400 in chips) +svarcipapa: posts small blind 15 +ramones004: posts big blind 30 +*** HOLE CARDS *** +Dealt to s0rrow [As Qd] +Gibsons66 has timed out +Gibsons66: folds +Gibsons66 is sitting out +tanker175: calls 30 +Gibsons66 has returned +s0rrow: raises 90 to 120 +ruslan999588: calls 120 +Buell XB12sl: folds +seric1975: folds +svarcipapa: folds +ramones004: folds +tanker175: calls 90 +*** FLOP *** [Qc Kh 4h] +tanker175: checks +s0rrow: checks +ruslan999588: checks +*** TURN *** [Qc Kh 4h] [5s] +tanker175: checks +s0rrow: bets 300 +ruslan999588: folds +tanker175: folds +Uncalled bet (300) returned to s0rrow +s0rrow collected 405 from pot +*** SUMMARY *** +Total pot 405 | Rake 0 +Board [Qc Kh 4h 5s] +Seat 2: ruslan999588 folded on the Turn +Seat 3: Buell XB12sl folded before Flop (didn't bet) +Seat 4: seric1975 (button) folded before Flop (didn't bet) +Seat 5: svarcipapa (small blind) folded before Flop +Seat 6: ramones004 (big blind) folded before Flop +Seat 7: Gibsons66 folded before Flop (didn't bet) +Seat 8: tanker175 folded on the Turn +Seat 9: s0rrow collected (405) + + + +PokerStars Game #47653567120: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level II (15/30) - 2010/08/03 11:13:33 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 2: ruslan999588 (1660 in chips) +Seat 3: Buell XB12sl (2150 in chips) +Seat 4: seric1975 (1920 in chips) +Seat 5: svarcipapa (1905 in chips) +Seat 6: ramones004 (2290 in chips) +Seat 7: Gibsons66 (2285 in chips) +Seat 8: tanker175 (1485 in chips) +Seat 9: s0rrow (2685 in chips) +ramones004: posts small blind 15 +Gibsons66: posts big blind 30 +*** HOLE CARDS *** +Dealt to s0rrow [7s Js] +tanker175: folds +s0rrow: folds +ruslan999588: calls 30 +Buell XB12sl: folds +seric1975: raises 30 to 60 +svarcipapa: folds +ramones004: folds +Gibsons66: calls 30 +ruslan999588: calls 30 +*** FLOP *** [9h Jc 6s] +Gibsons66: checks +ruslan999588: checks +seric1975: bets 90 +Gibsons66: folds +ruslan999588: folds +Uncalled bet (90) returned to seric1975 +seric1975 collected 195 from pot +*** SUMMARY *** +Total pot 195 | Rake 0 +Board [9h Jc 6s] +Seat 2: ruslan999588 folded on the Flop +Seat 3: Buell XB12sl folded before Flop (didn't bet) +Seat 4: seric1975 collected (195) +Seat 5: svarcipapa (button) folded before Flop (didn't bet) +Seat 6: ramones004 (small blind) folded before Flop +Seat 7: Gibsons66 (big blind) folded on the Flop +Seat 8: tanker175 folded before Flop (didn't bet) +Seat 9: s0rrow folded before Flop (didn't bet) + + + +PokerStars Game #47653605176: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level II (15/30) - 2010/08/03 11:14:39 ET +Table '297808375 8' 9-max Seat #6 is the button +Seat 2: ruslan999588 (1600 in chips) +Seat 3: Buell XB12sl (2150 in chips) +Seat 4: seric1975 (2055 in chips) +Seat 5: svarcipapa (1905 in chips) +Seat 6: ramones004 (2275 in chips) +Seat 7: Gibsons66 (2225 in chips) +Seat 8: tanker175 (1485 in chips) +Seat 9: s0rrow (2685 in chips) +Gibsons66: posts small blind 15 +tanker175: posts big blind 30 +*** HOLE CARDS *** +Dealt to s0rrow [As 6c] +s0rrow: folds +ruslan999588: calls 30 +Buell XB12sl: folds +seric1975: calls 30 +svarcipapa: calls 30 +ramones004: calls 30 +Gibsons66: calls 15 +tanker175: checks +*** FLOP *** [2h 5d 4c] +Gibsons66: bets 30 +tanker175: calls 30 +ruslan999588: calls 30 +seric1975: calls 30 +svarcipapa: calls 30 +ramones004: folds +*** TURN *** [2h 5d 4c] [4s] +Gibsons66: bets 30 +tanker175: calls 30 +ruslan999588: calls 30 +seric1975: calls 30 +svarcipapa: calls 30 +*** RIVER *** [2h 5d 4c 4s] [Js] +Gibsons66: checks +tanker175: checks +ruslan999588: checks +seric1975: bets 480 +svarcipapa: folds +Gibsons66: folds +tanker175: folds +ruslan999588: folds +Uncalled bet (480) returned to seric1975 +seric1975 collected 480 from pot +*** SUMMARY *** +Total pot 480 | Rake 0 +Board [2h 5d 4c 4s Js] +Seat 2: ruslan999588 folded on the River +Seat 3: Buell XB12sl folded before Flop (didn't bet) +Seat 4: seric1975 collected (480) +Seat 5: svarcipapa folded on the River +Seat 6: ramones004 (button) folded on the Flop +Seat 7: Gibsons66 (small blind) folded on the River +Seat 8: tanker175 (big blind) folded on the River +Seat 9: s0rrow folded before Flop (didn't bet) + + + +PokerStars Game #47653654718: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level II (15/30) - 2010/08/03 11:16:05 ET +Table '297808375 8' 9-max Seat #7 is the button +Seat 2: ruslan999588 (1510 in chips) +Seat 3: Buell XB12sl (2150 in chips) +Seat 4: seric1975 (2445 in chips) +Seat 5: svarcipapa (1815 in chips) +Seat 6: ramones004 (2245 in chips) +Seat 7: Gibsons66 (2135 in chips) +Seat 8: tanker175 (1395 in chips) +Seat 9: s0rrow (2685 in chips) +tanker175: posts small blind 15 +s0rrow: posts big blind 30 +*** HOLE CARDS *** +Dealt to s0rrow [Ks 5d] +ruslan999588: calls 30 +Buell XB12sl: folds +seric1975: folds +svarcipapa: folds +ramones004: calls 30 +Gibsons66: folds +tanker175: calls 15 +s0rrow: checks +*** FLOP *** [Ah 8s 4d] +ZoRzA420 is connected +tanker175: checks +s0rrow: checks +ruslan999588: checks +ramones004: checks +*** TURN *** [Ah 8s 4d] [7c] +tanker175: checks +s0rrow: checks +ruslan999588: checks +ramones004: checks +*** RIVER *** [Ah 8s 4d 7c] [3c] +tanker175: checks +s0rrow: checks +ruslan999588: checks +ramones004: checks +*** SHOW DOWN *** +tanker175: shows [Qd 7h] (a pair of Sevens) +s0rrow: mucks hand +ruslan999588: mucks hand +ramones004: mucks hand +tanker175 collected 120 from pot +*** SUMMARY *** +Total pot 120 | Rake 0 +Board [Ah 8s 4d 7c 3c] +Seat 2: ruslan999588 mucked [9s 6d] +Seat 3: Buell XB12sl folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: svarcipapa folded before Flop (didn't bet) +Seat 6: ramones004 mucked [2h 2c] +Seat 7: Gibsons66 (button) folded before Flop (didn't bet) +Seat 8: tanker175 (small blind) showed [Qd 7h] and won (120) with a pair of Sevens +Seat 9: s0rrow (big blind) mucked [Ks 5d] + + + +PokerStars Game #47653692921: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level II (15/30) - 2010/08/03 11:17:10 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: ZoRzA420 (3690 in chips) +Seat 2: ruslan999588 (1480 in chips) +Seat 3: Buell XB12sl (2150 in chips) +Seat 4: seric1975 (2445 in chips) +Seat 5: svarcipapa (1815 in chips) +Seat 6: ramones004 (2215 in chips) +Seat 7: Gibsons66 (2135 in chips) +Seat 8: tanker175 (1485 in chips) +Seat 9: s0rrow (2655 in chips) +s0rrow: posts small blind 15 +ZoRzA420: posts big blind 30 +*** HOLE CARDS *** +Dealt to s0rrow [4c Ks] +ruslan999588: calls 30 +Buell XB12sl: folds +seric1975: folds +svarcipapa: folds +ramones004: calls 30 +Gibsons66: folds +tanker175: calls 30 +s0rrow: calls 15 +ZoRzA420: checks +*** FLOP *** [2h 8s 9d] +s0rrow: checks +ZoRzA420: bets 60 +ruslan999588: calls 60 +ramones004: folds +tanker175: folds +s0rrow: folds +*** TURN *** [2h 8s 9d] [7d] +ZoRzA420: bets 90 +ruslan999588: calls 90 +*** RIVER *** [2h 8s 9d 7d] [Js] +ZoRzA420: bets 150 +ruslan999588: folds +Uncalled bet (150) returned to ZoRzA420 +ZoRzA420 collected 450 from pot +ZoRzA420: doesn't show hand +*** SUMMARY *** +Total pot 450 | Rake 0 +Board [2h 8s 9d 7d Js] +Seat 1: ZoRzA420 (big blind) collected (450) +Seat 2: ruslan999588 folded on the River +Seat 3: Buell XB12sl folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: svarcipapa folded before Flop (didn't bet) +Seat 6: ramones004 folded on the Flop +Seat 7: Gibsons66 folded before Flop (didn't bet) +Seat 8: tanker175 (button) folded on the Flop +Seat 9: s0rrow (small blind) folded on the Flop + + + +PokerStars Game #47653736062: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level III (20/40) - 2010/08/03 11:18:25 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: ZoRzA420 (3960 in chips) +Seat 2: ruslan999588 (1300 in chips) +Seat 3: Buell XB12sl (2150 in chips) +Seat 4: seric1975 (2445 in chips) +Seat 5: svarcipapa (1815 in chips) +Seat 6: ramones004 (2185 in chips) +Seat 7: Gibsons66 (2135 in chips) +Seat 8: tanker175 (1455 in chips) +Seat 9: s0rrow (2625 in chips) +ZoRzA420: posts small blind 20 +ruslan999588: posts big blind 40 +*** HOLE CARDS *** +Dealt to s0rrow [Jd 3c] +Buell XB12sl: folds +seric1975: calls 40 +svarcipapa: folds +ramones004: folds +Gibsons66: calls 40 +tanker175: folds +s0rrow: folds +ZoRzA420: folds +ruslan999588: checks +*** FLOP *** [Qs 5d 9s] +ruslan999588: checks +seric1975: bets 120 +Gibsons66: folds +ruslan999588: calls 120 +*** TURN *** [Qs 5d 9s] [Ac] +ruslan999588: checks +seric1975: bets 360 +ruslan999588: folds +Uncalled bet (360) returned to seric1975 +seric1975 collected 380 from pot +*** SUMMARY *** +Total pot 380 | Rake 0 +Board [Qs 5d 9s Ac] +Seat 1: ZoRzA420 (small blind) folded before Flop +Seat 2: ruslan999588 (big blind) folded on the Turn +Seat 3: Buell XB12sl folded before Flop (didn't bet) +Seat 4: seric1975 collected (380) +Seat 5: svarcipapa folded before Flop (didn't bet) +Seat 6: ramones004 folded before Flop (didn't bet) +Seat 7: Gibsons66 folded on the Flop +Seat 8: tanker175 folded before Flop (didn't bet) +Seat 9: s0rrow (button) folded before Flop (didn't bet) + + + +PokerStars Game #47653777193: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level III (20/40) - 2010/08/03 11:19:36 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: ZoRzA420 (3940 in chips) +Seat 2: ruslan999588 (1140 in chips) +Seat 3: Buell XB12sl (2150 in chips) +Seat 4: seric1975 (2665 in chips) +Seat 5: svarcipapa (1815 in chips) +Seat 6: ramones004 (2185 in chips) +Seat 7: Gibsons66 (2095 in chips) +Seat 8: tanker175 (1455 in chips) +Seat 9: s0rrow (2625 in chips) +ruslan999588: posts small blind 20 +Buell XB12sl: posts big blind 40 +*** HOLE CARDS *** +Dealt to s0rrow [Tc 6s] +seric1975: folds +svarcipapa: raises 80 to 120 +ramones004: folds +Gibsons66: folds +tanker175: calls 120 +s0rrow: folds +ZoRzA420: calls 120 +ruslan999588: folds +Buell XB12sl: calls 80 +*** FLOP *** [Th 7s Js] +Buell XB12sl: checks +svarcipapa: checks +tanker175: checks +ZoRzA420: checks +*** TURN *** [Th 7s Js] [Jh] +Buell XB12sl: bets 40 +svarcipapa: folds +tanker175: folds +ZoRzA420: folds +Uncalled bet (40) returned to Buell XB12sl +Buell XB12sl collected 500 from pot +Buell XB12sl: doesn't show hand +*** SUMMARY *** +Total pot 500 | Rake 0 +Board [Th 7s Js Jh] +Seat 1: ZoRzA420 (button) folded on the Turn +Seat 2: ruslan999588 (small blind) folded before Flop +Seat 3: Buell XB12sl (big blind) collected (500) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: svarcipapa folded on the Turn +Seat 6: ramones004 folded before Flop (didn't bet) +Seat 7: Gibsons66 folded before Flop (didn't bet) +Seat 8: tanker175 folded on the Turn +Seat 9: s0rrow folded before Flop (didn't bet) + + + +PokerStars Game #47653820099: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level III (20/40) - 2010/08/03 11:20:50 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: ZoRzA420 (3820 in chips) +Seat 2: ruslan999588 (1120 in chips) +Seat 3: Buell XB12sl (2530 in chips) +Seat 4: seric1975 (2665 in chips) +Seat 5: svarcipapa (1695 in chips) +Seat 6: ramones004 (2185 in chips) +Seat 7: Gibsons66 (2095 in chips) +Seat 8: tanker175 (1335 in chips) +Seat 9: s0rrow (2625 in chips) +Buell XB12sl: posts small blind 20 +seric1975: posts big blind 40 +*** HOLE CARDS *** +Dealt to s0rrow [Qh 3h] +svarcipapa: folds +ramones004: folds +Gibsons66: calls 40 +tanker175: folds +s0rrow: folds +ZoRzA420: folds +ruslan999588: calls 40 +Buell XB12sl: calls 20 +seric1975: checks +*** FLOP *** [2h Tc 2s] +Buell XB12sl: checks +seric1975: checks +Gibsons66: checks +ruslan999588: bets 80 +Buell XB12sl: folds +seric1975: folds +Gibsons66: calls 80 +*** TURN *** [2h Tc 2s] [Qd] +Gibsons66: checks +ruslan999588: bets 40 +Gibsons66: calls 40 +*** RIVER *** [2h Tc 2s Qd] [Jh] +Gibsons66: checks +ruslan999588: bets 960 and is all-in +Gibsons66: folds +Uncalled bet (960) returned to ruslan999588 +ruslan999588 collected 400 from pot +*** SUMMARY *** +Total pot 400 | Rake 0 +Board [2h Tc 2s Qd Jh] +Seat 1: ZoRzA420 folded before Flop (didn't bet) +Seat 2: ruslan999588 (button) collected (400) +Seat 3: Buell XB12sl (small blind) folded on the Flop +Seat 4: seric1975 (big blind) folded on the Flop +Seat 5: svarcipapa folded before Flop (didn't bet) +Seat 6: ramones004 folded before Flop (didn't bet) +Seat 7: Gibsons66 folded on the River +Seat 8: tanker175 folded before Flop (didn't bet) +Seat 9: s0rrow folded before Flop (didn't bet) + + + +PokerStars Game #47653867610: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level III (20/40) - 2010/08/03 11:22:10 ET +Table '297808375 8' 9-max Seat #3 is the button +Seat 1: ZoRzA420 (3820 in chips) +Seat 2: ruslan999588 (1360 in chips) +Seat 3: Buell XB12sl (2490 in chips) +Seat 4: seric1975 (2625 in chips) +Seat 5: svarcipapa (1695 in chips) +Seat 6: ramones004 (2185 in chips) +Seat 7: Gibsons66 (1935 in chips) +Seat 8: tanker175 (1335 in chips) +Seat 9: s0rrow (2625 in chips) +seric1975: posts small blind 20 +svarcipapa: posts big blind 40 +*** HOLE CARDS *** +Dealt to s0rrow [8c 4c] +ramones004: calls 40 +Gibsons66: folds +tanker175: folds +s0rrow: folds +ZoRzA420: folds +ruslan999588: calls 40 +Buell XB12sl: calls 40 +seric1975: calls 20 +svarcipapa: checks +*** FLOP *** [5s 2h As] +seric1975: checks +svarcipapa: checks +ramones004: checks +ruslan999588: checks +Buell XB12sl: checks +*** TURN *** [5s 2h As] [Tc] +seric1975: bets 120 +svarcipapa: folds +ramones004: folds +ruslan999588: calls 120 +Buell XB12sl: folds +*** RIVER *** [5s 2h As Tc] [7s] +seric1975: checks +ruslan999588: checks +*** SHOW DOWN *** +seric1975: shows [Ad 4h] (a pair of Aces) +ruslan999588: mucks hand +seric1975 collected 440 from pot +*** SUMMARY *** +Total pot 440 | Rake 0 +Board [5s 2h As Tc 7s] +Seat 1: ZoRzA420 folded before Flop (didn't bet) +Seat 2: ruslan999588 mucked [8s 3h] +Seat 3: Buell XB12sl (button) folded on the Turn +Seat 4: seric1975 (small blind) showed [Ad 4h] and won (440) with a pair of Aces +Seat 5: svarcipapa (big blind) folded on the Turn +Seat 6: ramones004 folded on the Turn +Seat 7: Gibsons66 folded before Flop (didn't bet) +Seat 8: tanker175 folded before Flop (didn't bet) +Seat 9: s0rrow folded before Flop (didn't bet) + + + +PokerStars Game #47653952453: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level III (20/40) - 2010/08/03 11:24:33 ET +Table '297808375 2' 9-max Seat #9 is the button +Seat 1: kosiarz72 (1135 in chips) +Seat 3: MexicanGamb (1775 in chips) +Seat 4: redviper131 (6370 in chips) +Seat 5: Georgy80 (3215 in chips) +Seat 6: s0rrow (2625 in chips) +Seat 7: ##terry##477 (3520 in chips) +Seat 8: MoIsonEx (5090 in chips) +Seat 9: hengchang (2910 in chips) +kosiarz72: posts small blind 20 +MexicanGamb: posts big blind 40 +*** HOLE CARDS *** +Dealt to s0rrow [Qc Qs] +redviper131: calls 40 +Georgy80: raises 60 to 100 +s0rrow: calls 100 +##terry##477: folds +MoIsonEx: folds +hengchang: folds +kosiarz72: calls 80 +MexicanGamb: folds +redviper131: calls 60 +*** FLOP *** [Qd 7s 7d] +kosiarz72: bets 40 +redviper131: folds +Georgy80: raises 140 to 180 +s0rrow: calls 180 +kosiarz72: calls 140 +*** TURN *** [Qd 7s 7d] [2d] +kosiarz72: checks +Georgy80: checks +s0rrow: checks +*** RIVER *** [Qd 7s 7d 2d] [2h] +kosiarz72: bets 120 +honza7601 is connected +Georgy80: folds +s0rrow: raises 920 to 1040 +kosiarz72: folds +Uncalled bet (920) returned to s0rrow +s0rrow collected 1220 from pot +*** SUMMARY *** +Total pot 1220 | Rake 0 +Board [Qd 7s 7d 2d 2h] +Seat 1: kosiarz72 (small blind) folded on the River +Seat 3: MexicanGamb (big blind) folded before Flop +Seat 4: redviper131 folded on the Flop +Seat 5: Georgy80 folded on the River +Seat 6: s0rrow collected (1220) +Seat 7: ##terry##477 folded before Flop (didn't bet) +Seat 8: MoIsonEx folded before Flop (didn't bet) +Seat 9: hengchang (button) folded before Flop (didn't bet) + + + +PokerStars Game #47654011118: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level III (20/40) - 2010/08/03 11:26:11 ET +Table '297808375 2' 9-max Seat #1 is the button +Seat 1: kosiarz72 (735 in chips) +Seat 2: honza7601 (185 in chips) out of hand (moved from another table into small blind) +Seat 3: MexicanGamb (1735 in chips) +Seat 4: redviper131 (6270 in chips) +Seat 5: Georgy80 (2935 in chips) +Seat 6: s0rrow (3445 in chips) +Seat 7: ##terry##477 (3520 in chips) +Seat 8: MoIsonEx (5090 in chips) +Seat 9: hengchang (2910 in chips) +MexicanGamb: posts small blind 20 +redviper131: posts big blind 40 +*** HOLE CARDS *** +Dealt to s0rrow [3d Qs] +Georgy80: folds +s0rrow: folds +##terry##477: folds +MoIsonEx: folds +hengchang: folds +kosiarz72: folds +MexicanGamb: raises 160 to 200 +redviper131: calls 160 +*** FLOP *** [9s 5h 7c] +MexicanGamb: checks +redviper131: bets 160 +MexicanGamb: calls 160 +*** TURN *** [9s 5h 7c] [7s] +MexicanGamb: checks +redviper131: bets 200 +MexicanGamb: calls 200 +*** RIVER *** [9s 5h 7c 7s] [Qd] +MexicanGamb: bets 375 +redviper131: calls 375 +*** SHOW DOWN *** +MexicanGamb: shows [Ks Ad] (a pair of Sevens) +redviper131: shows [Td 9c] (two pair, Nines and Sevens) +redviper131 collected 1870 from pot +*** SUMMARY *** +Total pot 1870 | Rake 0 +Board [9s 5h 7c 7s Qd] +Seat 1: kosiarz72 (button) folded before Flop (didn't bet) +Seat 3: MexicanGamb (small blind) showed [Ks Ad] and lost with a pair of Sevens +Seat 4: redviper131 (big blind) showed [Td 9c] and won (1870) with two pair, Nines and Sevens +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: s0rrow folded before Flop (didn't bet) +Seat 7: ##terry##477 folded before Flop (didn't bet) +Seat 8: MoIsonEx folded before Flop (didn't bet) +Seat 9: hengchang folded before Flop (didn't bet) + + + +PokerStars Game #47654056104: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level III (20/40) - 2010/08/03 11:27:27 ET +Table '297808375 2' 9-max Seat #3 is the button +Seat 1: kosiarz72 (735 in chips) +Seat 2: honza7601 (185 in chips) +Seat 3: MexicanGamb (800 in chips) +Seat 4: redviper131 (7205 in chips) +Seat 5: Georgy80 (2935 in chips) +Seat 6: s0rrow (3445 in chips) +Seat 7: ##terry##477 (3520 in chips) +Seat 8: MoIsonEx (5090 in chips) +Seat 9: hengchang (2910 in chips) +redviper131: posts small blind 20 +Georgy80: posts big blind 40 +*** HOLE CARDS *** +Dealt to s0rrow [Kc Qd] +s0rrow: raises 80 to 120 +##terry##477: folds +MoIsonEx: calls 120 +hengchang: folds +kosiarz72 has timed out +kosiarz72: folds +kosiarz72 is sitting out +honza7601: raises 65 to 185 and is all-in +MexicanGamb: folds +redviper131: folds +redviper131 is sitting out +Georgy80: folds +s0rrow: calls 65 +MoIsonEx: calls 65 +*** FLOP *** [Th 7s 4c] +s0rrow: checks +kosiarz72 has returned +MoIsonEx: checks +*** TURN *** [Th 7s 4c] [6d] +s0rrow: checks +MoIsonEx: checks +*** RIVER *** [Th 7s 4c 6d] [Ah] +s0rrow: checks +MoIsonEx: checks +*** SHOW DOWN *** +s0rrow: shows [Kc Qd] (high card Ace) +MoIsonEx: shows [3c 3h] (a pair of Threes) +honza7601: shows [Kd Ad] (a pair of Aces) +honza7601 collected 615 from pot +*** SUMMARY *** +Total pot 615 | Rake 0 +Board [Th 7s 4c 6d Ah] +Seat 1: kosiarz72 folded before Flop (didn't bet) +Seat 2: honza7601 showed [Kd Ad] and won (615) with a pair of Aces +Seat 3: MexicanGamb (button) folded before Flop (didn't bet) +Seat 4: redviper131 (small blind) folded before Flop +Seat 5: Georgy80 (big blind) folded before Flop +Seat 6: s0rrow showed [Kc Qd] and lost with high card Ace +Seat 7: ##terry##477 folded before Flop (didn't bet) +Seat 8: MoIsonEx showed [3c 3h] and lost with a pair of Threes +Seat 9: hengchang folded before Flop (didn't bet) + + + +PokerStars Game #47654094729: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IV (25/50) - 2010/08/03 11:28:32 ET +Table '297808375 2' 9-max Seat #4 is the button +Seat 1: kosiarz72 (735 in chips) +Seat 2: honza7601 (615 in chips) +Seat 3: MexicanGamb (800 in chips) +Seat 4: redviper131 (7185 in chips) is sitting out +Seat 5: Georgy80 (2895 in chips) +Seat 6: s0rrow (3260 in chips) +Seat 7: ##terry##477 (3520 in chips) +Seat 8: MoIsonEx (4905 in chips) +Seat 9: hengchang (2910 in chips) +Georgy80: posts small blind 25 +s0rrow: posts big blind 50 +*** HOLE CARDS *** +Dealt to s0rrow [5h 5s] +##terry##477: folds +MoIsonEx: folds +hengchang: calls 50 +kosiarz72: raises 50 to 100 +honza7601: calls 100 +MexicanGamb: folds +redviper131: folds +Georgy80: folds +s0rrow: calls 50 +hengchang: calls 50 +*** FLOP *** [9c 4d Qd] +s0rrow: checks +hengchang: checks +kosiarz72: bets 100 +honza7601: folds +s0rrow: folds +hengchang: folds +Uncalled bet (100) returned to kosiarz72 +kosiarz72 collected 425 from pot +*** SUMMARY *** +Total pot 425 | Rake 0 +Board [9c 4d Qd] +Seat 1: kosiarz72 collected (425) +Seat 2: honza7601 folded on the Flop +Seat 3: MexicanGamb folded before Flop (didn't bet) +Seat 4: redviper131 (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: s0rrow (big blind) folded on the Flop +Seat 7: ##terry##477 folded before Flop (didn't bet) +Seat 8: MoIsonEx folded before Flop (didn't bet) +Seat 9: hengchang folded on the Flop + + + +PokerStars Game #47654125122: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IV (25/50) - 2010/08/03 11:29:22 ET +Table '297808375 2' 9-max Seat #5 is the button +Seat 1: kosiarz72 (1060 in chips) +Seat 2: honza7601 (515 in chips) +Seat 3: MexicanGamb (800 in chips) +Seat 4: redviper131 (7185 in chips) is sitting out +Seat 5: Georgy80 (2870 in chips) +Seat 6: s0rrow (3160 in chips) +Seat 7: ##terry##477 (3520 in chips) +Seat 8: MoIsonEx (4905 in chips) +Seat 9: hengchang (2810 in chips) +s0rrow: posts small blind 25 +##terry##477: posts big blind 50 +*** HOLE CARDS *** +Dealt to s0rrow [5c 6s] +MoIsonEx: folds +hengchang: folds +kosiarz72: calls 50 +honza7601: calls 50 +MexicanGamb: folds +redviper131: folds +Georgy80: folds +s0rrow: folds +##terry##477: checks +*** FLOP *** [Qs 2h 4c] +##terry##477: checks +kosiarz72: checks +honza7601: checks +*** TURN *** [Qs 2h 4c] [9d] +##terry##477: checks +kosiarz72: checks +honza7601: checks +*** RIVER *** [Qs 2h 4c 9d] [8h] +##terry##477: checks +kosiarz72: checks +honza7601: checks +*** SHOW DOWN *** +##terry##477: shows [2d Ad] (a pair of Deuces) +kosiarz72: mucks hand +honza7601: mucks hand +##terry##477 collected 175 from pot +*** SUMMARY *** +Total pot 175 | Rake 0 +Board [Qs 2h 4c 9d 8h] +Seat 1: kosiarz72 mucked [Kd 7c] +Seat 2: honza7601 mucked [Kh 7h] +Seat 3: MexicanGamb folded before Flop (didn't bet) +Seat 4: redviper131 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 6: s0rrow (small blind) folded before Flop +Seat 7: ##terry##477 (big blind) showed [2d Ad] and won (175) with a pair of Deuces +Seat 8: MoIsonEx folded before Flop (didn't bet) +Seat 9: hengchang folded before Flop (didn't bet) + + + +PokerStars Game #47654168252: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IV (25/50) - 2010/08/03 11:30:35 ET +Table '297808375 2' 9-max Seat #6 is the button +Seat 1: kosiarz72 (1010 in chips) +Seat 2: honza7601 (465 in chips) +Seat 3: MexicanGamb (800 in chips) +Seat 5: Georgy80 (2870 in chips) +Seat 6: s0rrow (3135 in chips) +Seat 7: ##terry##477 (3645 in chips) +Seat 8: MoIsonEx (4905 in chips) +Seat 9: hengchang (2810 in chips) +##terry##477: posts small blind 25 +MoIsonEx: posts big blind 50 +*** HOLE CARDS *** +Dealt to s0rrow [Jh 4d] +hengchang: folds +kosiarz72: calls 50 +honza7601: raises 415 to 465 and is all-in +MexicanGamb: folds +Georgy80: folds +s0rrow: folds +##terry##477: calls 440 +MoIsonEx: folds +kosiarz72: calls 415 +*** FLOP *** [2d 8c Qh] +##terry##477: checks +kosiarz72: bets 50 +##terry##477: calls 50 +*** TURN *** [2d 8c Qh] [7h] +##terry##477: checks +kosiarz72: bets 100 +##terry##477: calls 100 +*** RIVER *** [2d 8c Qh 7h] [9h] +##terry##477: checks +kosiarz72: bets 250 +##terry##477: folds +Uncalled bet (250) returned to kosiarz72 +*** SHOW DOWN *** +kosiarz72: shows [8s 8h] (three of a kind, Eights) +kosiarz72 collected 300 from side pot +honza7601: shows [3d 3c] (a pair of Threes) +kosiarz72 collected 1445 from main pot +kosiarz72 wins the $0.25 bounty for eliminating honza7601 +honza7601 finished the tournament in 56th place +*** SUMMARY *** +Total pot 1745 Main pot 1445. Side pot 300. | Rake 0 +Board [2d 8c Qh 7h 9h] +Seat 1: kosiarz72 showed [8s 8h] and won (1745) with three of a kind, Eights +Seat 2: honza7601 showed [3d 3c] and lost with a pair of Threes +Seat 3: MexicanGamb folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: s0rrow (button) folded before Flop (didn't bet) +Seat 7: ##terry##477 (small blind) folded on the River +Seat 8: MoIsonEx (big blind) folded before Flop +Seat 9: hengchang folded before Flop (didn't bet) + + + +PokerStars Game #47654202524: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IV (25/50) - 2010/08/03 11:31:32 ET +Table '297808375 2' 9-max Seat #7 is the button +Seat 1: kosiarz72 (2140 in chips) +Seat 3: MexicanGamb (800 in chips) +Seat 5: Georgy80 (2870 in chips) +Seat 6: s0rrow (3135 in chips) +Seat 7: ##terry##477 (3030 in chips) +Seat 8: MoIsonEx (4855 in chips) +Seat 9: hengchang (2810 in chips) +MoIsonEx: posts small blind 25 +hengchang: posts big blind 50 +*** HOLE CARDS *** +Dealt to s0rrow [9s Kd] +kosiarz72: folds +MexicanGamb: folds +kosiarz72 is sitting out +Georgy80: folds +s0rrow: raises 100 to 150 +##terry##477: folds +MoIsonEx: folds +hengchang: calls 100 +*** FLOP *** [6s 8s 8c] +hengchang: checks +s0rrow: bets 250 +nenemalo77 is connected +THOUSANDGRAM is connected +hengchang: raises 400 to 650 +s0rrow: calls 400 +*** TURN *** [6s 8s 8c] [Qh] +hengchang: bets 650 +s0rrow: folds +Uncalled bet (650) returned to hengchang +hengchang collected 1625 from pot +hengchang: doesn't show hand +*** SUMMARY *** +Total pot 1625 | Rake 0 +Board [6s 8s 8c Qh] +Seat 1: kosiarz72 folded before Flop (didn't bet) +Seat 3: MexicanGamb folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: s0rrow folded on the Turn +Seat 7: ##terry##477 (button) folded before Flop (didn't bet) +Seat 8: MoIsonEx (small blind) folded before Flop +Seat 9: hengchang (big blind) collected (1625) + + + +PokerStars Game #47654246802: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IV (25/50) - 2010/08/03 11:32:46 ET +Table '297808375 2' 9-max Seat #8 is the button +Seat 1: kosiarz72 (2140 in chips) is sitting out +Seat 2: nenemalo77 (7003 in chips) +Seat 3: MexicanGamb (800 in chips) +Seat 4: THOUSANDGRAM (3870 in chips) +Seat 5: Georgy80 (2870 in chips) +Seat 6: s0rrow (2335 in chips) +Seat 7: ##terry##477 (3030 in chips) +Seat 8: MoIsonEx (4830 in chips) +Seat 9: hengchang (3635 in chips) +hengchang: posts small blind 25 +kosiarz72: posts big blind 50 +*** HOLE CARDS *** +Dealt to s0rrow [8s 5s] +nenemalo77: calls 50 +MexicanGamb: folds +THOUSANDGRAM: folds +Georgy80: raises 50 to 100 +s0rrow: folds +##terry##477: folds +MoIsonEx: calls 100 +hengchang: raises 400 to 500 +kosiarz72: folds +nenemalo77: folds +Georgy80: calls 400 +MoIsonEx: folds +*** FLOP *** [4s Qc 5c] +hengchang: bets 250 +Georgy80: calls 250 +*** TURN *** [4s Qc 5c] [7d] +hengchang: bets 550 +Georgy80: calls 550 +*** RIVER *** [4s Qc 5c 7d] [6d] +hengchang: bets 700 +Georgy80: calls 700 +*** SHOW DOWN *** +hengchang: shows [Qs Qd] (three of a kind, Queens) +Georgy80: mucks hand +hengchang collected 4200 from pot +*** SUMMARY *** +Total pot 4200 | Rake 0 +Board [4s Qc 5c 7d 6d] +Seat 1: kosiarz72 (big blind) folded before Flop +Seat 2: nenemalo77 folded before Flop +Seat 3: MexicanGamb folded before Flop (didn't bet) +Seat 4: THOUSANDGRAM folded before Flop (didn't bet) +Seat 5: Georgy80 mucked [As Qh] +Seat 6: s0rrow folded before Flop (didn't bet) +Seat 7: ##terry##477 folded before Flop (didn't bet) +Seat 8: MoIsonEx (button) folded before Flop +Seat 9: hengchang (small blind) showed [Qs Qd] and won (4200) with three of a kind, Queens + + + +PokerStars Game #47654301269: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IV (25/50) - 2010/08/03 11:34:19 ET +Table '297808375 2' 9-max Seat #9 is the button +Seat 1: kosiarz72 (2090 in chips) is sitting out +Seat 2: nenemalo77 (6953 in chips) +Seat 3: MexicanGamb (800 in chips) +Seat 4: THOUSANDGRAM (3870 in chips) +Seat 5: Georgy80 (870 in chips) +Seat 6: s0rrow (2335 in chips) +Seat 7: ##terry##477 (3030 in chips) +Seat 8: MoIsonEx (4730 in chips) +Seat 9: hengchang (5835 in chips) +kosiarz72: posts small blind 25 +nenemalo77: posts big blind 50 +*** HOLE CARDS *** +Dealt to s0rrow [9c 2h] +MexicanGamb: folds +THOUSANDGRAM: calls 50 +Georgy80: raises 820 to 870 and is all-in +s0rrow: folds +##terry##477 has timed out +##terry##477: folds +##terry##477 is sitting out +MoIsonEx: folds +hengchang: folds +kosiarz72: folds +nenemalo77: folds +THOUSANDGRAM: calls 820 +##terry##477 has returned +*** FLOP *** [Ks 4s 9d] +*** TURN *** [Ks 4s 9d] [3c] +*** RIVER *** [Ks 4s 9d 3c] [5c] +*** SHOW DOWN *** +THOUSANDGRAM: shows [Ac Td] (high card Ace) +Georgy80: shows [9s 9h] (three of a kind, Nines) +Georgy80 collected 1815 from pot +*** SUMMARY *** +Total pot 1815 | Rake 0 +Board [Ks 4s 9d 3c 5c] +Seat 1: kosiarz72 (small blind) folded before Flop +Seat 2: nenemalo77 (big blind) folded before Flop +Seat 3: MexicanGamb folded before Flop (didn't bet) +Seat 4: THOUSANDGRAM showed [Ac Td] and lost with high card Ace +Seat 5: Georgy80 showed [9s 9h] and won (1815) with three of a kind, Nines +Seat 6: s0rrow folded before Flop (didn't bet) +Seat 7: ##terry##477 folded before Flop (didn't bet) +Seat 8: MoIsonEx folded before Flop (didn't bet) +Seat 9: hengchang (button) folded before Flop (didn't bet) + + + +PokerStars Game #47654330399: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IV (25/50) - 2010/08/03 11:35:08 ET +Table '297808375 2' 9-max Seat #1 is the button +Seat 1: kosiarz72 (2065 in chips) is sitting out +Seat 2: nenemalo77 (6903 in chips) +Seat 3: MexicanGamb (800 in chips) +Seat 4: THOUSANDGRAM (3000 in chips) +Seat 5: Georgy80 (1815 in chips) +Seat 6: s0rrow (2335 in chips) +Seat 7: ##terry##477 (3030 in chips) +Seat 8: MoIsonEx (4730 in chips) +Seat 9: hengchang (5835 in chips) +nenemalo77: posts small blind 25 +MexicanGamb: posts big blind 50 +*** HOLE CARDS *** +Dealt to s0rrow [4s 9s] +THOUSANDGRAM has timed out +THOUSANDGRAM: folds +THOUSANDGRAM is sitting out +Georgy80: folds +s0rrow: folds +##terry##477: folds +MoIsonEx: folds +THOUSANDGRAM has returned +hengchang: raises 100 to 150 +kosiarz72: folds +nenemalo77: folds +MexicanGamb: folds +Uncalled bet (100) returned to hengchang +hengchang collected 125 from pot +hengchang: doesn't show hand +*** SUMMARY *** +Total pot 125 | Rake 0 +Seat 1: kosiarz72 (button) folded before Flop (didn't bet) +Seat 2: nenemalo77 (small blind) folded before Flop +Seat 3: MexicanGamb (big blind) folded before Flop +Seat 4: THOUSANDGRAM folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: s0rrow folded before Flop (didn't bet) +Seat 7: ##terry##477 folded before Flop (didn't bet) +Seat 8: MoIsonEx folded before Flop (didn't bet) +Seat 9: hengchang collected (125) + + + +PokerStars Game #47654358545: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IV (25/50) - 2010/08/03 11:35:56 ET +Table '297808375 2' 9-max Seat #2 is the button +Seat 1: kosiarz72 (2065 in chips) is sitting out +Seat 2: nenemalo77 (6878 in chips) +Seat 3: MexicanGamb (750 in chips) +Seat 4: THOUSANDGRAM (3000 in chips) +Seat 5: Georgy80 (1815 in chips) +Seat 6: s0rrow (2335 in chips) +Seat 7: ##terry##477 (3030 in chips) +Seat 8: MoIsonEx (4730 in chips) +Seat 9: hengchang (5910 in chips) +MexicanGamb: posts small blind 25 +THOUSANDGRAM: posts big blind 50 +*** HOLE CARDS *** +Dealt to s0rrow [Kc Kh] +Georgy80: folds +s0rrow: raises 100 to 150 +##terry##477: folds +MoIsonEx: folds +hengchang: folds +kosiarz72: folds +nenemalo77: calls 150 +MexicanGamb: folds +THOUSANDGRAM: folds +*** FLOP *** [5c As 6s] +s0rrow: checks +nenemalo77: checks +*** TURN *** [5c As 6s] [8d] +s0rrow: checks +nenemalo77: checks +*** RIVER *** [5c As 6s 8d] [8c] +s0rrow: bets 200 +nenemalo77: raises 350 to 550 +s0rrow: calls 350 +*** SHOW DOWN *** +nenemalo77: shows [Ks 8s] (three of a kind, Eights) +s0rrow: mucks hand +nenemalo77 collected 1475 from pot +*** SUMMARY *** +Total pot 1475 | Rake 0 +Board [5c As 6s 8d 8c] +Seat 1: kosiarz72 folded before Flop (didn't bet) +Seat 2: nenemalo77 (button) showed [Ks 8s] and won (1475) with three of a kind, Eights +Seat 3: MexicanGamb (small blind) folded before Flop +Seat 4: THOUSANDGRAM (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: s0rrow mucked [Kc Kh] +Seat 7: ##terry##477 folded before Flop (didn't bet) +Seat 8: MoIsonEx folded before Flop (didn't bet) +Seat 9: hengchang folded before Flop (didn't bet) + + + +PokerStars Game #47654389068: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IV (25/50) - 2010/08/03 11:36:49 ET +Table '297808375 2' 9-max Seat #3 is the button +Seat 1: kosiarz72 (2065 in chips) is sitting out +Seat 2: nenemalo77 (7653 in chips) +Seat 3: MexicanGamb (725 in chips) +Seat 4: THOUSANDGRAM (2950 in chips) +Seat 5: Georgy80 (1815 in chips) +Seat 6: s0rrow (1635 in chips) +Seat 7: ##terry##477 (3030 in chips) +Seat 8: MoIsonEx (4730 in chips) +Seat 9: hengchang (5910 in chips) +THOUSANDGRAM: posts small blind 25 +Georgy80: posts big blind 50 +*** HOLE CARDS *** +Dealt to s0rrow [9s 4h] +s0rrow: folds +##terry##477: raises 150 to 200 +MoIsonEx: folds +hengchang: folds +kosiarz72: folds +nenemalo77: calls 200 +MexicanGamb: folds +THOUSANDGRAM: folds +Georgy80: folds +*** FLOP *** [Qd Qs Kd] +##terry##477: bets 200 +nenemalo77: raises 200 to 400 +##terry##477: calls 200 +*** TURN *** [Qd Qs Kd] [6s] +##terry##477: checks +nenemalo77: bets 300 +##terry##477: calls 300 +*** RIVER *** [Qd Qs Kd 6s] [3s] +##terry##477: checks +nenemalo77: bets 6753 and is all-in +##terry##477: calls 2130 and is all-in +Uncalled bet (4623) returned to nenemalo77 +*** SHOW DOWN *** +nenemalo77: shows [3c 3d] (a full house, Threes full of Queens) +##terry##477: shows [As Kh] (two pair, Kings and Queens) +nenemalo77 collected 6135 from pot +nenemalo77 wins the $0.25 bounty for eliminating ##terry##477 +##terry##477 finished the tournament in 52nd place +*** SUMMARY *** +Total pot 6135 | Rake 0 +Board [Qd Qs Kd 6s 3s] +Seat 1: kosiarz72 folded before Flop (didn't bet) +Seat 2: nenemalo77 showed [3c 3d] and won (6135) with a full house, Threes full of Queens +Seat 3: MexicanGamb (button) folded before Flop (didn't bet) +Seat 4: THOUSANDGRAM (small blind) folded before Flop +Seat 5: Georgy80 (big blind) folded before Flop +Seat 6: s0rrow folded before Flop (didn't bet) +Seat 7: ##terry##477 showed [As Kh] and lost with two pair, Kings and Queens +Seat 8: MoIsonEx folded before Flop (didn't bet) +Seat 9: hengchang folded before Flop (didn't bet) + + + +PokerStars Game #47654417595: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IV (25/50) - 2010/08/03 11:37:38 ET +Table '297808375 2' 9-max Seat #4 is the button +Seat 1: kosiarz72 (2065 in chips) is sitting out +Seat 2: nenemalo77 (10758 in chips) +Seat 3: MexicanGamb (725 in chips) +Seat 4: THOUSANDGRAM (2925 in chips) +Seat 5: Georgy80 (1765 in chips) +Seat 6: s0rrow (1635 in chips) +Seat 8: MoIsonEx (4730 in chips) +Seat 9: hengchang (5910 in chips) +Georgy80: posts small blind 25 +s0rrow: posts big blind 50 +*** HOLE CARDS *** +Dealt to s0rrow [Qd Qh] +MoIsonEx: folds +hengchang: raises 100 to 150 +kosiarz72: folds +nenemalo77: folds +MexicanGamb: folds +THOUSANDGRAM: folds +Georgy80: folds +s0rrow: raises 350 to 500 +hengchang: raises 1250 to 1750 +kosiarz72 has returned +s0rrow: calls 1135 and is all-in +Uncalled bet (115) returned to hengchang +*** FLOP *** [Kh 4s Js] +*** TURN *** [Kh 4s Js] [2s] +*** RIVER *** [Kh 4s Js 2s] [8d] +*** SHOW DOWN *** +s0rrow: shows [Qd Qh] (a pair of Queens) +hengchang: shows [Tc Ts] (a pair of Tens) +s0rrow collected 3295 from pot +*** SUMMARY *** +Total pot 3295 | Rake 0 +Board [Kh 4s Js 2s 8d] +Seat 1: kosiarz72 folded before Flop (didn't bet) +Seat 2: nenemalo77 folded before Flop (didn't bet) +Seat 3: MexicanGamb folded before Flop (didn't bet) +Seat 4: THOUSANDGRAM (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: s0rrow (big blind) showed [Qd Qh] and won (3295) with a pair of Queens +Seat 8: MoIsonEx folded before Flop (didn't bet) +Seat 9: hengchang showed [Tc Ts] and lost with a pair of Tens + + + +PokerStars Game #47654447848: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level V (30/60) - 2010/08/03 11:38:30 ET +Table '297808375 2' 9-max Seat #5 is the button +Seat 1: kosiarz72 (2065 in chips) +Seat 2: nenemalo77 (10758 in chips) +Seat 3: MexicanGamb (725 in chips) +Seat 4: THOUSANDGRAM (2925 in chips) +Seat 5: Georgy80 (1740 in chips) +Seat 6: s0rrow (3295 in chips) +Seat 8: MoIsonEx (4730 in chips) +Seat 9: hengchang (4275 in chips) +s0rrow: posts small blind 30 +MoIsonEx: posts big blind 60 +*** HOLE CARDS *** +Dealt to s0rrow [Ts 6s] +hengchang: folds +kosiarz72: calls 60 +nenemalo77: folds +MexicanGamb: folds +THOUSANDGRAM: calls 60 +Georgy80: raises 1680 to 1740 and is all-in +s0rrow: folds +MoIsonEx: calls 1680 +kosiarz72: folds +THOUSANDGRAM: folds +*** FLOP *** [Tc 7c 6d] +*** TURN *** [Tc 7c 6d] [4h] +*** RIVER *** [Tc 7c 6d 4h] [Jd] +*** SHOW DOWN *** +MoIsonEx: shows [8c 8s] (a pair of Eights) +Georgy80: shows [Js Jc] (three of a kind, Jacks) +Georgy80 collected 3630 from pot +*** SUMMARY *** +Total pot 3630 | Rake 0 +Board [Tc 7c 6d 4h Jd] +Seat 1: kosiarz72 folded before Flop +Seat 2: nenemalo77 folded before Flop (didn't bet) +Seat 3: MexicanGamb folded before Flop (didn't bet) +Seat 4: THOUSANDGRAM folded before Flop +Seat 5: Georgy80 (button) showed [Js Jc] and won (3630) with three of a kind, Jacks +Seat 6: s0rrow (small blind) folded before Flop +Seat 8: MoIsonEx (big blind) showed [8c 8s] and lost with a pair of Eights +Seat 9: hengchang folded before Flop (didn't bet) + + + +PokerStars Game #47654472077: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level V (30/60) - 2010/08/03 11:39:11 ET +Table '297808375 2' 9-max Seat #6 is the button +Seat 1: kosiarz72 (2005 in chips) +Seat 2: nenemalo77 (10758 in chips) +Seat 3: MexicanGamb (725 in chips) +Seat 4: THOUSANDGRAM (2865 in chips) +Seat 5: Georgy80 (3630 in chips) +Seat 6: s0rrow (3265 in chips) +Seat 8: MoIsonEx (2990 in chips) +Seat 9: hengchang (4275 in chips) +MoIsonEx: posts small blind 30 +hengchang: posts big blind 60 +*** HOLE CARDS *** +Dealt to s0rrow [Kh Ah] +kosiarz72: calls 60 +nenemalo77: folds +MexicanGamb: raises 180 to 240 +THOUSANDGRAM: folds +Georgy80: calls 240 +s0rrow: raises 600 to 840 +MoIsonEx: folds +hengchang: folds +kosiarz72: folds +MexicanGamb: calls 485 and is all-in +Georgy80: calls 600 +*** FLOP *** [Jd 5d 3d] +Georgy80: checks +s0rrow: checks +*** TURN *** [Jd 5d 3d] [Qc] +Georgy80: checks +s0rrow: checks +*** RIVER *** [Jd 5d 3d Qc] [Kc] +Georgy80: checks +s0rrow: checks +*** SHOW DOWN *** +Georgy80: shows [9c 9d] (a pair of Nines) +s0rrow: shows [Kh Ah] (a pair of Kings) +s0rrow collected 230 from side pot +MexicanGamb: shows [Ac As] (a pair of Aces) +MexicanGamb collected 2325 from main pot +*** SUMMARY *** +Total pot 2555 Main pot 2325. Side pot 230. | Rake 0 +Board [Jd 5d 3d Qc Kc] +Seat 1: kosiarz72 folded before Flop +Seat 2: nenemalo77 folded before Flop (didn't bet) +Seat 3: MexicanGamb showed [Ac As] and won (2325) with a pair of Aces +Seat 4: THOUSANDGRAM folded before Flop (didn't bet) +Seat 5: Georgy80 showed [9c 9d] and lost with a pair of Nines +Seat 6: s0rrow (button) showed [Kh Ah] and won (230) with a pair of Kings +Seat 8: MoIsonEx (small blind) folded before Flop +Seat 9: hengchang (big blind) folded before Flop + + + +PokerStars Game #47654512666: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level V (30/60) - 2010/08/03 11:40:22 ET +Table '297808375 2' 9-max Seat #8 is the button +Seat 1: kosiarz72 (1945 in chips) +Seat 2: nenemalo77 (10758 in chips) +Seat 3: MexicanGamb (2325 in chips) +Seat 4: THOUSANDGRAM (2865 in chips) +Seat 5: Georgy80 (2790 in chips) +Seat 6: s0rrow (2655 in chips) +Seat 8: MoIsonEx (2960 in chips) +Seat 9: hengchang (4215 in chips) +hengchang: posts small blind 30 +kosiarz72: posts big blind 60 +*** HOLE CARDS *** +Dealt to s0rrow [Jc 8h] +nenemalo77: calls 60 +MexicanGamb: raises 165 to 225 +THOUSANDGRAM: folds +Georgy80: folds +s0rrow: folds +MoIsonEx: folds +hengchang: folds +kosiarz72: folds +nenemalo77: calls 165 +*** FLOP *** [9h Kd 6c] +nenemalo77: checks +MexicanGamb: bets 300 +nenemalo77: folds +Uncalled bet (300) returned to MexicanGamb +MexicanGamb collected 540 from pot +MexicanGamb: doesn't show hand +*** SUMMARY *** +Total pot 540 | Rake 0 +Board [9h Kd 6c] +Seat 1: kosiarz72 (big blind) folded before Flop +Seat 2: nenemalo77 folded on the Flop +Seat 3: MexicanGamb collected (540) +Seat 4: THOUSANDGRAM folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: s0rrow folded before Flop (didn't bet) +Seat 8: MoIsonEx (button) folded before Flop (didn't bet) +Seat 9: hengchang (small blind) folded before Flop + + + +PokerStars Game #47654539551: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level V (30/60) - 2010/08/03 11:41:08 ET +Table '297808375 2' 9-max Seat #9 is the button +Seat 1: kosiarz72 (1885 in chips) +Seat 2: nenemalo77 (10533 in chips) +Seat 3: MexicanGamb (2640 in chips) +Seat 4: THOUSANDGRAM (2865 in chips) +Seat 5: Georgy80 (2790 in chips) +Seat 6: s0rrow (2655 in chips) +Seat 8: MoIsonEx (2960 in chips) +Seat 9: hengchang (4185 in chips) +kosiarz72: posts small blind 30 +nenemalo77: posts big blind 60 +*** HOLE CARDS *** +Dealt to s0rrow [Kh Ts] +MexicanGamb: folds +THOUSANDGRAM: calls 60 +Georgy80: calls 60 +s0rrow: folds +MoIsonEx: folds +hengchang: folds +kosiarz72: calls 30 +nenemalo77: checks +*** FLOP *** [7c Ah 7s] +kosiarz72: checks +nenemalo77: checks +THOUSANDGRAM: checks +Georgy80: checks +*** TURN *** [7c Ah 7s] [3c] +kosiarz72: checks +nenemalo77: checks +THOUSANDGRAM: checks +Georgy80: checks +*** RIVER *** [7c Ah 7s 3c] [5h] +kosiarz72: checks +nenemalo77: checks +THOUSANDGRAM: checks +Georgy80: checks +*** SHOW DOWN *** +kosiarz72: shows [Kd 6s] (a pair of Sevens) +nenemalo77: mucks hand +THOUSANDGRAM: mucks hand +Georgy80: mucks hand +kosiarz72 collected 240 from pot +*** SUMMARY *** +Total pot 240 | Rake 0 +Board [7c Ah 7s 3c 5h] +Seat 1: kosiarz72 (small blind) showed [Kd 6s] and won (240) with a pair of Sevens +Seat 2: nenemalo77 (big blind) mucked [9s 4s] +Seat 3: MexicanGamb folded before Flop (didn't bet) +Seat 4: THOUSANDGRAM mucked [Qc 8d] +Seat 5: Georgy80 mucked [Th 9h] +Seat 6: s0rrow folded before Flop (didn't bet) +Seat 8: MoIsonEx folded before Flop (didn't bet) +Seat 9: hengchang (button) folded before Flop (didn't bet) + + + +PokerStars Game #47654584917: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level V (30/60) - 2010/08/03 11:42:26 ET +Table '297808375 2' 9-max Seat #1 is the button +Seat 1: kosiarz72 (2065 in chips) +Seat 2: nenemalo77 (10473 in chips) +Seat 3: MexicanGamb (2640 in chips) +Seat 4: THOUSANDGRAM (2805 in chips) +Seat 5: Georgy80 (2730 in chips) +Seat 6: s0rrow (2655 in chips) +Seat 8: MoIsonEx (2960 in chips) +Seat 9: hengchang (4185 in chips) +nenemalo77: posts small blind 30 +MexicanGamb: posts big blind 60 +*** HOLE CARDS *** +Dealt to s0rrow [2d Jd] +THOUSANDGRAM: calls 60 +Georgy80: folds +s0rrow: folds +MoIsonEx: folds +hengchang: raises 120 to 180 +kosiarz72: folds +nenemalo77: calls 150 +MexicanGamb: folds +THOUSANDGRAM: calls 120 +*** FLOP *** [8c 5d 7h] +nenemalo77: bets 180 +THOUSANDGRAM: calls 180 +hengchang: folds +*** TURN *** [8c 5d 7h] [2s] +nenemalo77: bets 180 +THOUSANDGRAM: calls 180 +*** RIVER *** [8c 5d 7h 2s] [Ac] +nenemalo77: bets 240 +THOUSANDGRAM: folds +Uncalled bet (240) returned to nenemalo77 +nenemalo77 collected 1320 from pot +nenemalo77: doesn't show hand +*** SUMMARY *** +Total pot 1320 | Rake 0 +Board [8c 5d 7h 2s Ac] +Seat 1: kosiarz72 (button) folded before Flop (didn't bet) +Seat 2: nenemalo77 (small blind) collected (1320) +Seat 3: MexicanGamb (big blind) folded before Flop +Seat 4: THOUSANDGRAM folded on the River +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: s0rrow folded before Flop (didn't bet) +Seat 8: MoIsonEx folded before Flop (didn't bet) +Seat 9: hengchang folded on the Flop + + + +PokerStars Game #47654625143: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level V (30/60) - 2010/08/03 11:43:36 ET +Table '297808375 2' 9-max Seat #2 is the button +Seat 1: kosiarz72 (2065 in chips) +Seat 2: nenemalo77 (11253 in chips) +Seat 3: MexicanGamb (2580 in chips) +Seat 4: THOUSANDGRAM (2265 in chips) +Seat 5: Georgy80 (2730 in chips) +Seat 6: s0rrow (2655 in chips) +Seat 8: MoIsonEx (2960 in chips) +Seat 9: hengchang (4005 in chips) +MexicanGamb: posts small blind 30 +THOUSANDGRAM: posts big blind 60 +*** HOLE CARDS *** +Dealt to s0rrow [6s Js] +Georgy80: folds +s0rrow: folds +MoIsonEx: raises 180 to 240 +hengchang: folds +kosiarz72: calls 240 +nenemalo77: folds +MexicanGamb: folds +THOUSANDGRAM: folds +*** FLOP *** [Td Ts Tc] +MoIsonEx: bets 240 +kosiarz72: calls 240 +*** TURN *** [Td Ts Tc] [Ks] +MoIsonEx: bets 540 +kosiarz72: calls 540 +*** RIVER *** [Td Ts Tc Ks] [7s] +MoIsonEx: bets 1940 and is all-in +kosiarz72: calls 1045 and is all-in +Uncalled bet (895) returned to MoIsonEx +*** SHOW DOWN *** +MoIsonEx: shows [Kd Qc] (a full house, Tens full of Kings) +kosiarz72: shows [2s 2d] (a full house, Tens full of Deuces) +MoIsonEx collected 4220 from pot +*** SUMMARY *** +Total pot 4220 | Rake 0 +Board [Td Ts Tc Ks 7s] +Seat 1: kosiarz72 showed [2s 2d] and lost with a full house, Tens full of Deuces +Seat 2: nenemalo77 (button) folded before Flop (didn't bet) +Seat 3: MexicanGamb (small blind) folded before Flop +Seat 4: THOUSANDGRAM (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: s0rrow folded before Flop (didn't bet) +Seat 8: MoIsonEx showed [Kd Qc] and won (4220) with a full house, Tens full of Kings +Seat 9: hengchang folded before Flop (didn't bet) + + + +PokerStars Game #47654668328: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level V (30/60) - 2010/08/03 11:44:50 ET +Table '297808375 3' 9-max Seat #2 is the button +Seat 1: ratabar111 (5215 in chips) +Seat 2: TEJED (1522 in chips) +Seat 3: Djkujuhfl (1585 in chips) +Seat 4: beatlesmau5 (5130 in chips) +Seat 5: s0rrow (2655 in chips) +Seat 6: g0ty4 (1635 in chips) +Seat 7: Poker Elfe 1 (12593 in chips) +Seat 8: 123456789476 (5855 in chips) +Seat 9: CQ47 (967 in chips) +Djkujuhfl: posts small blind 30 +beatlesmau5: posts big blind 60 +*** HOLE CARDS *** +Dealt to s0rrow [Th 4h] +s0rrow: folds +g0ty4: folds +Poker Elfe 1: folds +123456789476: calls 60 +CQ47: calls 60 +ratabar111: calls 60 +TEJED: folds +Djkujuhfl: calls 30 +beatlesmau5: raises 240 to 300 +123456789476: folds +CQ47: raises 667 to 967 and is all-in +ratabar111: folds +Djkujuhfl: folds +beatlesmau5: calls 667 +*** FLOP *** [6c 2c Ts] +*** TURN *** [6c 2c Ts] [Td] +*** RIVER *** [6c 2c Ts Td] [5s] +*** SHOW DOWN *** +beatlesmau5: shows [Js Jh] (two pair, Jacks and Tens) +CQ47: shows [3s Ks] (a pair of Tens) +beatlesmau5 collected 2114 from pot +beatlesmau5 wins the $0.25 bounty for eliminating CQ47 +CQ47 finished the tournament in 43rd place +*** SUMMARY *** +Total pot 2114 | Rake 0 +Board [6c 2c Ts Td 5s] +Seat 1: ratabar111 folded before Flop +Seat 2: TEJED (button) folded before Flop (didn't bet) +Seat 3: Djkujuhfl (small blind) folded before Flop +Seat 4: beatlesmau5 (big blind) showed [Js Jh] and won (2114) with two pair, Jacks and Tens +Seat 5: s0rrow folded before Flop (didn't bet) +Seat 6: g0ty4 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: 123456789476 folded before Flop +Seat 9: CQ47 showed [3s Ks] and lost with a pair of Tens + + + +PokerStars Game #47654702160: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level V (30/60) - 2010/08/03 11:45:49 ET +Table '297808375 3' 9-max Seat #3 is the button +Seat 1: ratabar111 (5155 in chips) +Seat 2: TEJED (1522 in chips) +Seat 3: Djkujuhfl (1525 in chips) +Seat 4: beatlesmau5 (6277 in chips) +Seat 5: s0rrow (2655 in chips) +Seat 6: g0ty4 (1635 in chips) +Seat 7: Poker Elfe 1 (12593 in chips) +Seat 8: 123456789476 (5795 in chips) +beatlesmau5: posts small blind 30 +s0rrow: posts big blind 60 +*** HOLE CARDS *** +Dealt to s0rrow [3h Tc] +g0ty4: folds +Poker Elfe 1: folds +123456789476: calls 60 +ratabar111: calls 60 +TEJED: calls 60 +Djkujuhfl: folds +beatlesmau5: calls 30 +s0rrow: checks +*** FLOP *** [6d 5d Qh] +beatlesmau5: checks +s0rrow: checks +123456789476: bets 120 +ratabar111: calls 120 +TEJED: calls 120 +beatlesmau5: folds +s0rrow: folds +*** TURN *** [6d 5d Qh] [8c] +123456789476: checks +ratabar111: checks +TEJED: checks +*** RIVER *** [6d 5d Qh 8c] [6s] +123456789476: checks +ratabar111: checks +TEJED: bets 1140 +123456789476: raises 1140 to 2280 +ratabar111: folds +TEJED: calls 202 and is all-in +Uncalled bet (938) returned to 123456789476 +*** SHOW DOWN *** +123456789476: shows [6h Ac] (three of a kind, Sixes) +TEJED: shows [Kd 6c] (three of a kind, Sixes - lower kicker) +123456789476 collected 3344 from pot +123456789476 wins the $0.25 bounty for eliminating TEJED +TEJED finished the tournament in 42nd place +*** SUMMARY *** +Total pot 3344 | Rake 0 +Board [6d 5d Qh 8c 6s] +Seat 1: ratabar111 folded on the River +Seat 2: TEJED showed [Kd 6c] and lost with three of a kind, Sixes +Seat 3: Djkujuhfl (button) folded before Flop (didn't bet) +Seat 4: beatlesmau5 (small blind) folded on the Flop +Seat 5: s0rrow (big blind) folded on the Flop +Seat 6: g0ty4 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: 123456789476 showed [6h Ac] and won (3344) with three of a kind, Sixes + + + +PokerStars Game #47654767005: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level V (30/60) - 2010/08/03 11:47:41 ET +Table '297808375 3' 9-max Seat #4 is the button +Seat 1: ratabar111 (4975 in chips) +Seat 3: Djkujuhfl (1525 in chips) +Seat 4: beatlesmau5 (6217 in chips) +Seat 5: s0rrow (2595 in chips) +Seat 6: g0ty4 (1635 in chips) +Seat 7: Poker Elfe 1 (12593 in chips) +Seat 8: 123456789476 (7617 in chips) +s0rrow: posts small blind 30 +g0ty4: posts big blind 60 +*** HOLE CARDS *** +Dealt to s0rrow [Kh Qc] +Poker Elfe 1: calls 60 +123456789476: calls 60 +ratabar111: folds +ruslik_28 is connected +Djkujuhfl: raises 180 to 240 +beatlesmau5: folds +s0rrow: folds +g0ty4: folds +Poker Elfe 1: calls 180 +123456789476: calls 180 +*** FLOP *** [7s 7d 4s] +Poker Elfe 1: checks +123456789476: checks +Djkujuhfl: bets 480 +Poker Elfe 1: folds +123456789476: calls 480 +*** TURN *** [7s 7d 4s] [2h] +123456789476: checks +Djkujuhfl: bets 805 and is all-in +123456789476: folds +Uncalled bet (805) returned to Djkujuhfl +Djkujuhfl collected 1770 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 1770 | Rake 0 +Board [7s 7d 4s 2h] +Seat 1: ratabar111 folded before Flop (didn't bet) +Seat 3: Djkujuhfl collected (1770) +Seat 4: beatlesmau5 (button) folded before Flop (didn't bet) +Seat 5: s0rrow (small blind) folded before Flop +Seat 6: g0ty4 (big blind) folded before Flop +Seat 7: Poker Elfe 1 folded on the Flop +Seat 8: 123456789476 folded on the Turn + + + +PokerStars Game #47654817966: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VI (40/80) - 2010/08/03 11:49:09 ET +Table '297808375 3' 9-max Seat #5 is the button +Seat 1: ratabar111 (4975 in chips) +Seat 3: Djkujuhfl (2575 in chips) +Seat 4: beatlesmau5 (6217 in chips) +Seat 5: s0rrow (2565 in chips) +Seat 6: g0ty4 (1575 in chips) +Seat 7: Poker Elfe 1 (12353 in chips) +Seat 8: 123456789476 (6897 in chips) +Seat 9: ruslik_28 (2210 in chips) +g0ty4: posts small blind 40 +Poker Elfe 1: posts big blind 80 +*** HOLE CARDS *** +Dealt to s0rrow [Qd Qh] +123456789476: folds +ruslik_28: folds +ratabar111: folds +Djkujuhfl: raises 80 to 160 +beatlesmau5: folds +s0rrow: raises 400 to 560 +g0ty4: folds +Poker Elfe 1: folds +Djkujuhfl: folds +Uncalled bet (400) returned to s0rrow +s0rrow collected 440 from pot +*** SUMMARY *** +Total pot 440 | Rake 0 +Seat 1: ratabar111 folded before Flop (didn't bet) +Seat 3: Djkujuhfl folded before Flop +Seat 4: beatlesmau5 folded before Flop (didn't bet) +Seat 5: s0rrow (button) collected (440) +Seat 6: g0ty4 (small blind) folded before Flop +Seat 7: Poker Elfe 1 (big blind) folded before Flop +Seat 8: 123456789476 folded before Flop (didn't bet) +Seat 9: ruslik_28 folded before Flop (didn't bet) + + + +PokerStars Game #47654833720: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VI (40/80) - 2010/08/03 11:49:36 ET +Table '297808375 3' 9-max Seat #6 is the button +Seat 1: ratabar111 (4975 in chips) +Seat 3: Djkujuhfl (2415 in chips) +Seat 4: beatlesmau5 (6217 in chips) +Seat 5: s0rrow (2845 in chips) +Seat 6: g0ty4 (1535 in chips) +Seat 8: 123456789476 (6897 in chips) +Seat 9: ruslik_28 (2210 in chips) +123456789476: posts small blind 40 +ruslik_28: posts big blind 80 +*** HOLE CARDS *** +Dealt to s0rrow [Jh Td] +ratabar111: calls 80 +Djkujuhfl: folds +beatlesmau5: folds +s0rrow: folds +g0ty4: folds +123456789476: raises 80 to 160 +ruslik_28: calls 80 +ratabar111: calls 80 +*** FLOP *** [8s Ah 5c] +123456789476: checks +ruslik_28: checks +ratabar111: checks +*** TURN *** [8s Ah 5c] [Kh] +123456789476: bets 160 +ruslik_28: folds +ratabar111: folds +Uncalled bet (160) returned to 123456789476 +123456789476 collected 480 from pot +*** SUMMARY *** +Total pot 480 | Rake 0 +Board [8s Ah 5c Kh] +Seat 1: ratabar111 folded on the Turn +Seat 3: Djkujuhfl folded before Flop (didn't bet) +Seat 4: beatlesmau5 folded before Flop (didn't bet) +Seat 5: s0rrow folded before Flop (didn't bet) +Seat 6: g0ty4 (button) folded before Flop (didn't bet) +Seat 8: 123456789476 (small blind) collected (480) +Seat 9: ruslik_28 (big blind) folded on the Turn + + + +PokerStars Game #47654854025: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VI (40/80) - 2010/08/03 11:50:10 ET +Table '297808375 3' 9-max Seat #8 is the button +Seat 1: ratabar111 (4815 in chips) +Seat 3: Djkujuhfl (2415 in chips) +Seat 4: beatlesmau5 (6217 in chips) +Seat 5: s0rrow (2845 in chips) +Seat 6: g0ty4 (1535 in chips) +Seat 8: 123456789476 (7217 in chips) +Seat 9: ruslik_28 (2050 in chips) +ruslik_28: posts small blind 40 +ratabar111: posts big blind 80 +*** HOLE CARDS *** +Dealt to s0rrow [Js 8d] +Djkujuhfl: folds +beatlesmau5: folds +s0rrow: folds +g0ty4: raises 240 to 320 +123456789476: folds +ruslik_28: folds +ratabar111: folds +Uncalled bet (240) returned to g0ty4 +g0ty4 collected 200 from pot +*** SUMMARY *** +Total pot 200 | Rake 0 +Seat 1: ratabar111 (big blind) folded before Flop +Seat 3: Djkujuhfl folded before Flop (didn't bet) +Seat 4: beatlesmau5 folded before Flop (didn't bet) +Seat 5: s0rrow folded before Flop (didn't bet) +Seat 6: g0ty4 collected (200) +Seat 8: 123456789476 (button) folded before Flop (didn't bet) +Seat 9: ruslik_28 (small blind) folded before Flop + + + +PokerStars Game #47654870547: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VI (40/80) - 2010/08/03 11:50:38 ET +Table '297808375 3' 9-max Seat #9 is the button +Seat 1: ratabar111 (4735 in chips) +Seat 3: Djkujuhfl (2415 in chips) +Seat 4: beatlesmau5 (6217 in chips) +Seat 5: s0rrow (2845 in chips) +Seat 6: g0ty4 (1655 in chips) +Seat 8: 123456789476 (7217 in chips) +Seat 9: ruslik_28 (2010 in chips) +ratabar111: posts small blind 40 +Djkujuhfl: posts big blind 80 +*** HOLE CARDS *** +Dealt to s0rrow [7s Td] +beatlesmau5: folds +s0rrow: folds +g0ty4: folds +123456789476: calls 80 +ruslik_28: raises 240 to 320 +ratabar111: folds +Djkujuhfl: folds +123456789476: folds +Uncalled bet (240) returned to ruslik_28 +ruslik_28 collected 280 from pot +ruslik_28: doesn't show hand +*** SUMMARY *** +Total pot 280 | Rake 0 +Seat 1: ratabar111 (small blind) folded before Flop +Seat 3: Djkujuhfl (big blind) folded before Flop +Seat 4: beatlesmau5 folded before Flop (didn't bet) +Seat 5: s0rrow folded before Flop (didn't bet) +Seat 6: g0ty4 folded before Flop (didn't bet) +Seat 8: 123456789476 folded before Flop +Seat 9: ruslik_28 (button) collected (280) + + + +PokerStars Game #47654886590: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VI (40/80) - 2010/08/03 11:51:06 ET +Table '297808375 3' 9-max Seat #1 is the button +Seat 1: ratabar111 (4695 in chips) +Seat 3: Djkujuhfl (2335 in chips) +Seat 4: beatlesmau5 (6217 in chips) +Seat 5: s0rrow (2845 in chips) +Seat 6: g0ty4 (1655 in chips) +Seat 8: 123456789476 (7137 in chips) +Seat 9: ruslik_28 (2210 in chips) +Djkujuhfl: posts small blind 40 +beatlesmau5: posts big blind 80 +*** HOLE CARDS *** +Dealt to s0rrow [9h 6s] +s0rrow: folds +g0ty4: raises 160 to 240 +123456789476: folds +ruslik_28: folds +ratabar111: folds +Djkujuhfl: folds +beatlesmau5: folds +Uncalled bet (160) returned to g0ty4 +g0ty4 collected 200 from pot +g0ty4: doesn't show hand +*** SUMMARY *** +Total pot 200 | Rake 0 +Seat 1: ratabar111 (button) folded before Flop (didn't bet) +Seat 3: Djkujuhfl (small blind) folded before Flop +Seat 4: beatlesmau5 (big blind) folded before Flop +Seat 5: s0rrow folded before Flop (didn't bet) +Seat 6: g0ty4 collected (200) +Seat 8: 123456789476 folded before Flop (didn't bet) +Seat 9: ruslik_28 folded before Flop (didn't bet) + + + +PokerStars Game #47654896263: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VI (40/80) - 2010/08/03 11:51:22 ET +Table '297808375 3' 9-max Seat #3 is the button +Seat 1: ratabar111 (4695 in chips) +Seat 3: Djkujuhfl (2295 in chips) +Seat 4: beatlesmau5 (6137 in chips) +Seat 5: s0rrow (2845 in chips) +Seat 6: g0ty4 (1775 in chips) +Seat 8: 123456789476 (7137 in chips) +Seat 9: ruslik_28 (2210 in chips) +beatlesmau5: posts small blind 40 +s0rrow: posts big blind 80 +*** HOLE CARDS *** +Dealt to s0rrow [6c 5d] +g0ty4: calls 80 +123456789476: folds +ruslik_28: folds +ratabar111: calls 80 +Djkujuhfl: folds +beatlesmau5: folds +s0rrow: checks +*** FLOP *** [6h 2c 4s] +s0rrow: checks +g0ty4: checks +ratabar111: checks +*** TURN *** [6h 2c 4s] [Js] +s0rrow: checks +g0ty4: checks +ratabar111: checks +*** RIVER *** [6h 2c 4s Js] [Qh] +s0rrow: checks +g0ty4: checks +ratabar111: checks +*** SHOW DOWN *** +s0rrow: shows [6c 5d] (a pair of Sixes) +g0ty4: mucks hand +ratabar111: mucks hand +s0rrow collected 280 from pot +*** SUMMARY *** +Total pot 280 | Rake 0 +Board [6h 2c 4s Js Qh] +Seat 1: ratabar111 mucked [9h Td] +Seat 3: Djkujuhfl (button) folded before Flop (didn't bet) +Seat 4: beatlesmau5 (small blind) folded before Flop +Seat 5: s0rrow (big blind) showed [6c 5d] and won (280) with a pair of Sixes +Seat 6: g0ty4 mucked [3c 3h] +Seat 8: 123456789476 folded before Flop (didn't bet) +Seat 9: ruslik_28 folded before Flop (didn't bet) + + + +PokerStars Game #47654918793: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VI (40/80) - 2010/08/03 11:52:00 ET +Table '297808375 3' 9-max Seat #4 is the button +Seat 1: ratabar111 (4615 in chips) +Seat 3: Djkujuhfl (2295 in chips) +Seat 4: beatlesmau5 (6097 in chips) +Seat 5: s0rrow (3045 in chips) +Seat 6: g0ty4 (1695 in chips) +Seat 8: 123456789476 (7137 in chips) +Seat 9: ruslik_28 (2210 in chips) +s0rrow: posts small blind 40 +g0ty4: posts big blind 80 +*** HOLE CARDS *** +Dealt to s0rrow [8d 2h] +123456789476: calls 80 +ruslik_28: folds +ratabar111: folds +Djkujuhfl: folds +beatlesmau5: folds +s0rrow: folds +g0ty4: checks +*** FLOP *** [2s 5d 9h] +g0ty4: checks +123456789476: bets 160 +g0ty4: folds +Uncalled bet (160) returned to 123456789476 +123456789476 collected 200 from pot +*** SUMMARY *** +Total pot 200 | Rake 0 +Board [2s 5d 9h] +Seat 1: ratabar111 folded before Flop (didn't bet) +Seat 3: Djkujuhfl folded before Flop (didn't bet) +Seat 4: beatlesmau5 (button) folded before Flop (didn't bet) +Seat 5: s0rrow (small blind) folded before Flop +Seat 6: g0ty4 (big blind) folded on the Flop +Seat 8: 123456789476 collected (200) +Seat 9: ruslik_28 folded before Flop (didn't bet) + + + +PokerStars Game #47654932954: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VI (40/80) - 2010/08/03 11:52:24 ET +Table '297808375 3' 9-max Seat #5 is the button +Seat 1: ratabar111 (4615 in chips) +Seat 3: Djkujuhfl (2295 in chips) +Seat 4: beatlesmau5 (6097 in chips) +Seat 5: s0rrow (3005 in chips) +Seat 6: g0ty4 (1615 in chips) +Seat 8: 123456789476 (7257 in chips) +Seat 9: ruslik_28 (2210 in chips) +g0ty4: posts small blind 40 +123456789476: posts big blind 80 +*** HOLE CARDS *** +Dealt to s0rrow [7c 5h] +ruslik_28: calls 80 +ratabar111: folds +Djkujuhfl: folds +beatlesmau5: folds +s0rrow: calls 80 +g0ty4: folds +123456789476: checks +*** FLOP *** [4h Th Ts] +123456789476: checks +ruslik_28: checks +s0rrow: bets 240 +123456789476: folds +ruslik_28: folds +Uncalled bet (240) returned to s0rrow +s0rrow collected 280 from pot +*** SUMMARY *** +Total pot 280 | Rake 0 +Board [4h Th Ts] +Seat 1: ratabar111 folded before Flop (didn't bet) +Seat 3: Djkujuhfl folded before Flop (didn't bet) +Seat 4: beatlesmau5 folded before Flop (didn't bet) +Seat 5: s0rrow (button) collected (280) +Seat 6: g0ty4 (small blind) folded before Flop +Seat 8: 123456789476 (big blind) folded on the Flop +Seat 9: ruslik_28 folded on the Flop + + + +PokerStars Game #47654957983: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VI (40/80) - 2010/08/03 11:53:07 ET +Table '297808375 3' 9-max Seat #6 is the button +Seat 1: ratabar111 (4615 in chips) +Seat 3: Djkujuhfl (2295 in chips) +Seat 4: beatlesmau5 (6097 in chips) +Seat 5: s0rrow (3205 in chips) +Seat 6: g0ty4 (1575 in chips) +Seat 8: 123456789476 (7177 in chips) +Seat 9: ruslik_28 (2130 in chips) +123456789476: posts small blind 40 +ruslik_28: posts big blind 80 +*** HOLE CARDS *** +Dealt to s0rrow [8s 9s] +ratabar111: calls 80 +Djkujuhfl: folds +beatlesmau5: folds +s0rrow: raises 240 to 320 +g0ty4: folds +123456789476: calls 280 +ruslik_28: calls 240 +ratabar111: folds +*** FLOP *** [6d 7c 8h] +123456789476: bets 160 +ruslik_28: calls 160 +s0rrow: calls 160 +*** TURN *** [6d 7c 8h] [Kd] +123456789476: checks +ruslik_28: bets 320 +s0rrow: calls 320 +123456789476: folds +*** RIVER *** [6d 7c 8h Kd] [4d] +ruslik_28: checks +s0rrow: bets 880 +ruslik_28: folds +Uncalled bet (880) returned to s0rrow +s0rrow collected 2160 from pot +*** SUMMARY *** +Total pot 2160 | Rake 0 +Board [6d 7c 8h Kd 4d] +Seat 1: ratabar111 folded before Flop +Seat 3: Djkujuhfl folded before Flop (didn't bet) +Seat 4: beatlesmau5 folded before Flop (didn't bet) +Seat 5: s0rrow collected (2160) +Seat 6: g0ty4 (button) folded before Flop (didn't bet) +Seat 8: 123456789476 (small blind) folded on the Turn +Seat 9: ruslik_28 (big blind) folded on the River + + + +PokerStars Game #47654990248: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VI (40/80) - 2010/08/03 11:54:02 ET +Table '297808375 3' 9-max Seat #8 is the button +Seat 1: ratabar111 (4535 in chips) +Seat 3: Djkujuhfl (2295 in chips) +Seat 4: beatlesmau5 (6097 in chips) +Seat 5: s0rrow (4565 in chips) +Seat 6: g0ty4 (1575 in chips) +Seat 8: 123456789476 (6697 in chips) +Seat 9: ruslik_28 (1330 in chips) +ruslik_28: posts small blind 40 +ratabar111: posts big blind 80 +*** HOLE CARDS *** +Dealt to s0rrow [Kd Jd] +Djkujuhfl: folds +beatlesmau5: raises 240 to 320 +s0rrow: folds +g0ty4: folds +123456789476: folds +ruslik_28: folds +ratabar111: folds +Uncalled bet (240) returned to beatlesmau5 +beatlesmau5 collected 200 from pot +beatlesmau5: doesn't show hand +*** SUMMARY *** +Total pot 200 | Rake 0 +Seat 1: ratabar111 (big blind) folded before Flop +Seat 3: Djkujuhfl folded before Flop (didn't bet) +Seat 4: beatlesmau5 collected (200) +Seat 5: s0rrow folded before Flop (didn't bet) +Seat 6: g0ty4 folded before Flop (didn't bet) +Seat 8: 123456789476 (button) folded before Flop (didn't bet) +Seat 9: ruslik_28 (small blind) folded before Flop + + + +PokerStars Game #47655153118: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VI (40/80) - 2010/08/03 11:59:45 ET +Table '297808375 3' 9-max Seat #9 is the button +Seat 1: ratabar111 (4455 in chips) +Seat 3: Djkujuhfl (2295 in chips) +Seat 4: beatlesmau5 (6217 in chips) +Seat 5: s0rrow (4565 in chips) +Seat 6: g0ty4 (1575 in chips) +Seat 8: 123456789476 (6697 in chips) +Seat 9: ruslik_28 (1290 in chips) +ratabar111: posts small blind 40 +Djkujuhfl: posts big blind 80 +*** HOLE CARDS *** +Dealt to s0rrow [7s 5c] +beatlesmau5: calls 80 +s0rrow: folds +g0ty4: folds +123456789476: calls 80 +ruslik_28: raises 1210 to 1290 and is all-in +ratabar111: folds +Djkujuhfl has timed out +Djkujuhfl: folds +Djkujuhfl is sitting out +beatlesmau5: folds +123456789476: calls 1210 +*** FLOP *** [3c Ks 9c] +*** TURN *** [3c Ks 9c] [Ah] +*** RIVER *** [3c Ks 9c Ah] [Qc] +*** SHOW DOWN *** +123456789476: shows [Js Qh] (a pair of Queens) +ruslik_28: shows [5h 5s] (a pair of Fives) +123456789476 collected 2780 from pot +*** SUMMARY *** +Total pot 2780 | Rake 0 +Board [3c Ks 9c Ah Qc] +Seat 1: ratabar111 (small blind) folded before Flop +Seat 3: Djkujuhfl (big blind) folded before Flop +Seat 4: beatlesmau5 folded before Flop +Seat 5: s0rrow folded before Flop (didn't bet) +Seat 6: g0ty4 folded before Flop (didn't bet) +Seat 8: 123456789476 showed [Js Qh] and won (2780) with a pair of Queens +Seat 9: ruslik_28 (button) showed [5h 5s] and lost with a pair of Fives + + + +PokerStars Game #47655304866: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:03:50 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: s0rrow (4565 in chips) +Seat 2: ruslan999588 (4436 in chips) +Seat 3: titasands (1500 in chips) is sitting out +Seat 4: seric1975 (2050 in chips) +Seat 5: Georgy80 (8689 in chips) +Seat 6: ramones004 (1845 in chips) +Seat 7: Poker Elfe 1 (12353 in chips) +Seat 8: Djkujuhfl (2215 in chips) +Seat 9: stefan_bg_46 (6515 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +ramones004: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +titasands: posts small blind 50 +seric1975: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [6c 9s] +Georgy80: folds +ramones004: folds +Poker Elfe 1: folds +Djkujuhfl: raises 300 to 400 +stefan_bg_46: folds +s0rrow: folds +ruslan999588: folds +titasands: folds +seric1975: folds +Uncalled bet (300) returned to Djkujuhfl +Djkujuhfl collected 340 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 340 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 (button) folded before Flop (didn't bet) +Seat 3: titasands (small blind) folded before Flop +Seat 4: seric1975 (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: ramones004 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl collected (340) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47655322797: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:04:15 ET +Table '297808375 8' 9-max Seat #3 is the button +Seat 1: s0rrow (4555 in chips) +Seat 2: ruslan999588 (4426 in chips) +Seat 3: titasands (1440 in chips) is sitting out +Seat 4: seric1975 (1940 in chips) +Seat 5: Georgy80 (8679 in chips) +Seat 6: ramones004 (1835 in chips) +Seat 7: Poker Elfe 1 (12343 in chips) +Seat 8: Djkujuhfl (2445 in chips) +Seat 9: stefan_bg_46 (6505 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +ramones004: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +seric1975: posts small blind 50 +Georgy80: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [7h 9h] +ramones004: folds +Poker Elfe 1: calls 100 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: calls 100 +ruslan999588: folds +titasands: folds +seric1975: folds +Georgy80: checks +*** FLOP *** [5s Ad 8s] +Georgy80: checks +Poker Elfe 1: checks +s0rrow: bets 300 +Georgy80: folds +Poker Elfe 1: folds +Uncalled bet (300) returned to s0rrow +s0rrow collected 440 from pot +*** SUMMARY *** +Total pot 440 | Rake 0 +Board [5s Ad 8s] +Seat 1: s0rrow collected (440) +Seat 2: ruslan999588 folded before Flop (didn't bet) +Seat 3: titasands (button) folded before Flop (didn't bet) +Seat 4: seric1975 (small blind) folded before Flop +Seat 5: Georgy80 (big blind) folded on the Flop +Seat 6: ramones004 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded on the Flop +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47655351079: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:04:58 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (4885 in chips) +Seat 2: ruslan999588 (4416 in chips) +Seat 3: titasands (1430 in chips) is sitting out +Seat 4: seric1975 (1880 in chips) +Seat 5: Georgy80 (8569 in chips) +Seat 6: ramones004 (1825 in chips) +Seat 7: Poker Elfe 1 (12233 in chips) +Seat 8: Djkujuhfl (2435 in chips) +Seat 9: stefan_bg_46 (6495 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +ramones004: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +Georgy80: posts small blind 50 +ramones004: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [8h 7c] +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +ruslan999588: calls 100 +titasands: folds +seric1975: folds +Georgy80: folds +ramones004: checks +*** FLOP *** [8d 7s Qc] +ramones004: checks +ruslan999588: checks +*** TURN *** [8d 7s Qc] [6c] +ramones004: checks +ruslan999588: checks +*** RIVER *** [8d 7s Qc 6c] [Jh] +ramones004: checks +ruslan999588: bets 100 +ramones004: folds +Uncalled bet (100) returned to ruslan999588 +ruslan999588 collected 340 from pot +ruslan999588: doesn't show hand +*** SUMMARY *** +Total pot 340 | Rake 0 +Board [8d 7s Qc 6c Jh] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 collected (340) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: ramones004 (big blind) folded on the River +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47655380480: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:05:41 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (4875 in chips) +Seat 2: ruslan999588 (4646 in chips) +Seat 3: titasands (1420 in chips) is sitting out +Seat 4: seric1975 (1870 in chips) +Seat 5: Georgy80 (8509 in chips) +Seat 6: ramones004 (1715 in chips) +Seat 7: Poker Elfe 1 (12223 in chips) +Seat 8: Djkujuhfl (2425 in chips) +Seat 9: stefan_bg_46 (6485 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +ramones004: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +ramones004: posts small blind 50 +Poker Elfe 1: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [7c 5h] +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +ruslan999588: calls 100 +titasands: folds +seric1975: raises 400 to 500 +Georgy80: folds +ramones004: folds +Poker Elfe 1: calls 400 +ruslan999588: folds +*** FLOP *** [As 3c 5d] +Poker Elfe 1: bets 200 +seric1975: raises 1160 to 1360 and is all-in +Poker Elfe 1: calls 1160 +*** TURN *** [As 3c 5d] [Th] +*** RIVER *** [As 3c 5d Th] [Ts] +*** SHOW DOWN *** +Poker Elfe 1: shows [Ac 8s] (two pair, Aces and Tens) +seric1975: shows [Ah Jd] (two pair, Aces and Tens - Jack kicker) +seric1975 collected 3960 from pot +*** SUMMARY *** +Total pot 3960 | Rake 0 +Board [As 3c 5d Th Ts] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 folded before Flop +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 showed [Ah Jd] and won (3960) with two pair, Aces and Tens +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 6: ramones004 (small blind) folded before Flop +Seat 7: Poker Elfe 1 (big blind) showed [Ac 8s] and lost with two pair, Aces and Tens +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47655411366: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:06:27 ET +Table '297808375 8' 9-max Seat #6 is the button +Seat 1: s0rrow (4865 in chips) +Seat 2: ruslan999588 (4536 in chips) +Seat 3: titasands (1410 in chips) is sitting out +Seat 4: seric1975 (3960 in chips) +Seat 5: Georgy80 (8499 in chips) +Seat 6: ramones004 (1655 in chips) +Seat 7: Poker Elfe 1 (10353 in chips) +Seat 8: Djkujuhfl (2415 in chips) +Seat 9: stefan_bg_46 (6475 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +ramones004: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +Poker Elfe 1: posts small blind 50 +Djkujuhfl: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [Jd 7d] +stefan_bg_46: raises 100 to 200 +s0rrow: folds +ruslan999588: folds +titasands: folds +seric1975: calls 200 +Georgy80: folds +ramones004: folds +Poker Elfe 1: calls 150 +Djkujuhfl: folds +*** FLOP *** [6h Ad Jc] +Poker Elfe 1: checks +stefan_bg_46: checks +seric1975: bets 300 +Poker Elfe 1: folds +stefan_bg_46: calls 300 +*** TURN *** [6h Ad Jc] [5h] +stefan_bg_46: checks +seric1975: bets 300 +stefan_bg_46: calls 300 +*** RIVER *** [6h Ad Jc 5h] [Kh] +stefan_bg_46: checks +seric1975: bets 1900 +stefan_bg_46: calls 1900 +*** SHOW DOWN *** +seric1975: shows [Ah 4h] (a flush, Ace high) +stefan_bg_46: mucks hand +seric1975 collected 5790 from pot +*** SUMMARY *** +Total pot 5790 | Rake 0 +Board [6h Ad Jc 5h Kh] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 showed [Ah 4h] and won (5790) with a flush, Ace high +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: ramones004 (button) folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 (small blind) folded on the Flop +Seat 8: Djkujuhfl (big blind) folded before Flop +Seat 9: stefan_bg_46 mucked [Kc Tc] + + + +PokerStars Game #47655459229: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:07:38 ET +Table '297808375 8' 9-max Seat #7 is the button +Seat 1: s0rrow (4855 in chips) +Seat 2: ruslan999588 (4526 in chips) +Seat 3: titasands (1400 in chips) is sitting out +Seat 4: seric1975 (7040 in chips) +Seat 5: Georgy80 (8489 in chips) +Seat 6: ramones004 (1645 in chips) +Seat 7: Poker Elfe 1 (10143 in chips) +Seat 8: Djkujuhfl (2305 in chips) +Seat 9: stefan_bg_46 (3765 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +ramones004: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +Djkujuhfl: posts small blind 50 +stefan_bg_46: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [Jc 5s] +s0rrow: folds +ruslan999588: folds +titasands: folds +seric1975: raises 100 to 200 +Georgy80: folds +ramones004: folds +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: raises 3555 to 3755 and is all-in +seric1975: folds +Uncalled bet (3555) returned to stefan_bg_46 +stefan_bg_46 collected 540 from pot +*** SUMMARY *** +Total pot 540 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: ramones004 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 (button) folded before Flop (didn't bet) +Seat 8: Djkujuhfl (small blind) folded before Flop +Seat 9: stefan_bg_46 (big blind) collected (540) + + + +PokerStars Game #47655481983: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:08:11 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (4845 in chips) +Seat 2: ruslan999588 (4516 in chips) +Seat 3: titasands (1390 in chips) is sitting out +Seat 4: seric1975 (6830 in chips) +Seat 5: Georgy80 (8479 in chips) +Seat 6: ramones004 (1635 in chips) +Seat 7: Poker Elfe 1 (10133 in chips) +Seat 8: Djkujuhfl (2245 in chips) +Seat 9: stefan_bg_46 (4095 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +ramones004: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +stefan_bg_46: posts small blind 50 +s0rrow: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [Qc 4s] +ruslan999588: folds +titasands: folds +seric1975: folds +Georgy80: folds +ramones004: folds +Poker Elfe 1: folds +Djkujuhfl: raises 200 to 300 +stefan_bg_46: folds +s0rrow: folds +Uncalled bet (200) returned to Djkujuhfl +Djkujuhfl collected 340 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 340 | Rake 0 +Seat 1: s0rrow (big blind) folded before Flop +Seat 2: ruslan999588 folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: ramones004 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) collected (340) +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47655498478: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:08:36 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (4735 in chips) +Seat 2: ruslan999588 (4506 in chips) +Seat 3: titasands (1380 in chips) is sitting out +Seat 4: seric1975 (6820 in chips) +Seat 5: Georgy80 (8469 in chips) +Seat 6: ramones004 (1625 in chips) +Seat 7: Poker Elfe 1 (10123 in chips) +Seat 8: Djkujuhfl (2475 in chips) +Seat 9: stefan_bg_46 (4035 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +ramones004: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +s0rrow: posts small blind 50 +ruslan999588: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [2h 4s] +titasands: folds +seric1975: folds +Georgy80: folds +ramones004: folds +Poker Elfe 1: calls 100 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +ruslan999588: checks +*** FLOP *** [4d 7d 3s] +ruslan999588: checks +Poker Elfe 1: checks +*** TURN *** [4d 7d 3s] [9c] +ruslan999588: checks +Poker Elfe 1: checks +*** RIVER *** [4d 7d 3s 9c] [8h] +ruslan999588: bets 100 +Poker Elfe 1: calls 100 +*** SHOW DOWN *** +ruslan999588: shows [Qh 2c] (high card Queen) +Poker Elfe 1: shows [Qd Ac] (high card Ace) +Poker Elfe 1 collected 540 from pot +*** SUMMARY *** +Total pot 540 | Rake 0 +Board [4d 7d 3s 9c 8h] +Seat 1: s0rrow (small blind) folded before Flop +Seat 2: ruslan999588 (big blind) showed [Qh 2c] and lost with high card Queen +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: ramones004 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 showed [Qd Ac] and won (540) with high card Ace +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47655518149: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:09:05 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (4675 in chips) +Seat 2: ruslan999588 (4296 in chips) +Seat 3: titasands (1370 in chips) is sitting out +Seat 4: seric1975 (6810 in chips) +Seat 5: Georgy80 (8459 in chips) +Seat 6: ramones004 (1615 in chips) +Seat 7: Poker Elfe 1 (10453 in chips) +Seat 8: Djkujuhfl (2465 in chips) +Seat 9: stefan_bg_46 (4025 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +ramones004: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +ruslan999588: posts small blind 50 +titasands: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [2s Kc] +seric1975: raises 300 to 400 +Georgy80: calls 400 +ramones004: folds +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +ruslan999588: folds +titasands: folds +*** FLOP *** [Jd 5c 6d] +seric1975: bets 1100 +Georgy80: folds +Uncalled bet (1100) returned to seric1975 +seric1975 collected 1040 from pot +*** SUMMARY *** +Total pot 1040 | Rake 0 +Board [Jd 5c 6d] +Seat 1: s0rrow (button) folded before Flop (didn't bet) +Seat 2: ruslan999588 (small blind) folded before Flop +Seat 3: titasands (big blind) folded before Flop +Seat 4: seric1975 collected (1040) +Seat 5: Georgy80 folded on the Flop +Seat 6: ramones004 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47655549895: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:09:52 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: s0rrow (4665 in chips) +Seat 2: ruslan999588 (4236 in chips) +Seat 3: titasands (1260 in chips) is sitting out +Seat 4: seric1975 (7440 in chips) +Seat 5: Georgy80 (8049 in chips) +Seat 6: ramones004 (1605 in chips) +Seat 7: Poker Elfe 1 (10443 in chips) +Seat 8: Djkujuhfl (2455 in chips) +Seat 9: stefan_bg_46 (4015 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +ramones004: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +titasands: posts small blind 50 +seric1975: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [Jc 6s] +Georgy80: raises 245 to 345 +ramones004: raises 1250 to 1595 and is all-in +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +ruslan999588: folds +titasands: folds +seric1975: calls 1495 +Georgy80: raises 3260 to 4855 +seric1975: folds +Uncalled bet (3260) returned to Georgy80 +*** FLOP *** [5c Jh Kd] +*** TURN *** [5c Jh Kd] [4d] +*** RIVER *** [5c Jh Kd 4d] [Tc] +*** SHOW DOWN *** +Georgy80: shows [Kc Ks] (three of a kind, Kings) +ramones004: shows [Ad Th] (a pair of Tens) +Georgy80 collected 4925 from pot +Georgy80 wins the $0.25 bounty for eliminating ramones004 +ramones004 finished the tournament in 34th place +*** SUMMARY *** +Total pot 4925 | Rake 0 +Board [5c Jh Kd 4d Tc] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 (button) folded before Flop (didn't bet) +Seat 3: titasands (small blind) folded before Flop +Seat 4: seric1975 (big blind) folded before Flop +Seat 5: Georgy80 showed [Kc Ks] and won (4925) with three of a kind, Kings +Seat 6: ramones004 showed [Ad Th] and lost with a pair of Tens +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47655583680: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:10:43 ET +Table '297808375 8' 9-max Seat #3 is the button +Seat 1: s0rrow (4655 in chips) +Seat 2: ruslan999588 (4226 in chips) +Seat 3: titasands (1200 in chips) is sitting out +Seat 4: seric1975 (5835 in chips) +Seat 5: Georgy80 (11369 in chips) +Seat 7: Poker Elfe 1 (10433 in chips) +Seat 8: Djkujuhfl (2445 in chips) +Seat 9: stefan_bg_46 (4005 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +seric1975: posts small blind 50 +Georgy80: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [Th 8s] +Poker Elfe 1: calls 100 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +ruslan999588: folds +titasands: folds +seric1975: calls 50 +Georgy80: checks +*** FLOP *** [Ad 3h As] +seric1975: checks +Georgy80: checks +Poker Elfe 1: checks +*** TURN *** [Ad 3h As] [2d] +seric1975: checks +Georgy80: bets 125 +Poker Elfe 1: raises 125 to 250 +seric1975: folds +Georgy80: calls 125 +*** RIVER *** [Ad 3h As 2d] [3s] +Georgy80: checks +Poker Elfe 1: bets 100 +Georgy80: raises 689 to 789 +Poker Elfe 1: calls 689 +*** SHOW DOWN *** +Georgy80: shows [Ah 7d] (a full house, Aces full of Threes) +Poker Elfe 1: mucks hand +Georgy80 collected 2458 from pot +*** SUMMARY *** +Total pot 2458 | Rake 0 +Board [Ad 3h As 2d 3s] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 folded before Flop (didn't bet) +Seat 3: titasands (button) folded before Flop (didn't bet) +Seat 4: seric1975 (small blind) folded on the Turn +Seat 5: Georgy80 (big blind) showed [Ah 7d] and won (2458) with a full house, Aces full of Threes +Seat 7: Poker Elfe 1 mucked [2h 2s] +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47655617101: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:11:33 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (4645 in chips) +Seat 2: ruslan999588 (4216 in chips) +Seat 3: titasands (1190 in chips) is sitting out +Seat 4: seric1975 (5725 in chips) +Seat 5: Georgy80 (12678 in chips) +Seat 7: Poker Elfe 1 (9284 in chips) +Seat 8: Djkujuhfl (2435 in chips) +Seat 9: stefan_bg_46 (3995 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +Georgy80: posts small blind 50 +Poker Elfe 1: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [2h 7d] +Djkujuhfl: folds +stefan_bg_46: calls 100 +s0rrow: folds +ruslan999588: folds +titasands: folds +seric1975: folds +Georgy80: calls 50 +Poker Elfe 1: checks +*** FLOP *** [As Ac Ts] +Georgy80: checks +Poker Elfe 1: checks +stefan_bg_46: checks +*** TURN *** [As Ac Ts] [Jc] +Georgy80: bets 125 +Poker Elfe 1: folds +stefan_bg_46: calls 125 +*** RIVER *** [As Ac Ts Jc] [Qh] +Georgy80: bets 485 +stefan_bg_46: raises 485 to 970 +Georgy80: calls 485 +*** SHOW DOWN *** +stefan_bg_46: shows [Kc 7c] (a straight, Ten to Ace) +Georgy80: shows [Kd Jh] (a straight, Ten to Ace) +Georgy80 collected 1285 from pot +stefan_bg_46 collected 1285 from pot +*** SUMMARY *** +Total pot 2570 | Rake 0 +Board [As Ac Ts Jc Qh] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) showed [Kd Jh] and won (1285) with a straight, Ten to Ace +Seat 7: Poker Elfe 1 (big blind) folded on the Turn +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 showed [Kc 7c] and won (1285) with a straight, Ten to Ace + + + +PokerStars Game #47655644547: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:12:15 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (4635 in chips) +Seat 2: ruslan999588 (4206 in chips) +Seat 3: titasands (1180 in chips) is sitting out +Seat 4: seric1975 (5715 in chips) +Seat 5: Georgy80 (12758 in chips) +Seat 7: Poker Elfe 1 (9174 in chips) +Seat 8: Djkujuhfl (2425 in chips) +Seat 9: stefan_bg_46 (4075 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +Poker Elfe 1: posts small blind 50 +Djkujuhfl: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [Td Qc] +stefan_bg_46: folds +s0rrow: folds +ruslan999588: folds +titasands: folds +seric1975: raises 100 to 200 +Georgy80: raises 12548 to 12748 and is all-in +Poker Elfe 1: folds +Djkujuhfl: folds +seric1975: folds +Uncalled bet (12548) returned to Georgy80 +Georgy80 collected 630 from pot +Georgy80: doesn't show hand +*** SUMMARY *** +Total pot 630 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop +Seat 5: Georgy80 (button) collected (630) +Seat 7: Poker Elfe 1 (small blind) folded before Flop +Seat 8: Djkujuhfl (big blind) folded before Flop +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47655662061: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VII (50/100) - 2010/08/03 12:12:41 ET +Table '297808375 8' 9-max Seat #7 is the button +Seat 1: s0rrow (4625 in chips) +Seat 2: ruslan999588 (4196 in chips) +Seat 3: titasands (1170 in chips) is sitting out +Seat 4: seric1975 (5505 in chips) +Seat 5: Georgy80 (13178 in chips) +Seat 7: Poker Elfe 1 (9114 in chips) +Seat 8: Djkujuhfl (2315 in chips) +Seat 9: stefan_bg_46 (4065 in chips) +s0rrow: posts the ante 10 +ruslan999588: posts the ante 10 +titasands: posts the ante 10 +seric1975: posts the ante 10 +Georgy80: posts the ante 10 +Poker Elfe 1: posts the ante 10 +Djkujuhfl: posts the ante 10 +stefan_bg_46: posts the ante 10 +Djkujuhfl: posts small blind 50 +stefan_bg_46: posts big blind 100 +*** HOLE CARDS *** +Dealt to s0rrow [6h Ks] +s0rrow: folds +ruslan999588: folds +titasands: folds +seric1975: folds +Georgy80: raises 245 to 345 +Poker Elfe 1: calls 345 +Djkujuhfl: folds +stefan_bg_46: folds +*** FLOP *** [Td 8h 5s] +Georgy80: bets 789 +Poker Elfe 1: folds +Uncalled bet (789) returned to Georgy80 +Georgy80 collected 920 from pot +Georgy80: shows [Jd Jh] (a pair of Jacks) +*** SUMMARY *** +Total pot 920 | Rake 0 +Board [Td 8h 5s] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 collected (920) +Seat 7: Poker Elfe 1 (button) folded on the Flop +Seat 8: Djkujuhfl (small blind) folded before Flop +Seat 9: stefan_bg_46 (big blind) folded before Flop + + + +PokerStars Game #47655690913: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:13:25 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (4615 in chips) +Seat 2: ruslan999588 (4186 in chips) +Seat 3: titasands (1160 in chips) is sitting out +Seat 4: seric1975 (5495 in chips) +Seat 5: Georgy80 (13743 in chips) +Seat 7: Poker Elfe 1 (8759 in chips) +Seat 8: Djkujuhfl (2255 in chips) +Seat 9: stefan_bg_46 (3955 in chips) +s0rrow: posts the ante 15 +ruslan999588: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +stefan_bg_46: posts small blind 60 +s0rrow: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [5s Ks] +ruslan999588: folds +titasands: folds +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: raises 205 to 325 +stefan_bg_46: folds +s0rrow: folds +Uncalled bet (205) returned to Djkujuhfl +Djkujuhfl collected 420 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 420 | Rake 0 +Seat 1: s0rrow (big blind) folded before Flop +Seat 2: ruslan999588 folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) collected (420) +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47655709885: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:13:54 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (4480 in chips) +Seat 2: ruslan999588 (4171 in chips) +Seat 3: titasands (1145 in chips) is sitting out +Seat 4: seric1975 (5480 in chips) +Seat 5: Georgy80 (13728 in chips) +Seat 7: Poker Elfe 1 (8744 in chips) +Seat 8: Djkujuhfl (2540 in chips) +Seat 9: stefan_bg_46 (3880 in chips) +s0rrow: posts the ante 15 +ruslan999588: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +s0rrow: posts small blind 60 +ruslan999588: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [9s Ad] +titasands: folds +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: raises 240 to 360 +ruslan999588: calls 240 +*** FLOP *** [Jh Kd 8d] +s0rrow: checks +ruslan999588: bets 3796 and is all-in +s0rrow: folds +Uncalled bet (3796) returned to ruslan999588 +ruslan999588 collected 840 from pot +ruslan999588: doesn't show hand +*** SUMMARY *** +Total pot 840 | Rake 0 +Board [Jh Kd 8d] +Seat 1: s0rrow (small blind) folded on the Flop +Seat 2: ruslan999588 (big blind) collected (840) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47655739636: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:14:39 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (4105 in chips) +Seat 2: ruslan999588 (4636 in chips) +Seat 3: titasands (1130 in chips) is sitting out +Seat 4: seric1975 (5465 in chips) +Seat 5: Georgy80 (13713 in chips) +Seat 7: Poker Elfe 1 (8729 in chips) +Seat 8: Djkujuhfl (2525 in chips) +Seat 9: stefan_bg_46 (3865 in chips) +s0rrow: posts the ante 15 +ruslan999588: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +ruslan999588: posts small blind 60 +titasands: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [3s 7d] +seric1975: folds +Georgy80: folds +Poker Elfe 1: calls 120 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +ruslan999588: calls 60 +titasands: folds +*** FLOP *** [Td 9s 4s] +ruslan999588: checks +Poker Elfe 1: checks +*** TURN *** [Td 9s 4s] [Ah] +ruslan999588: bets 120 +Poker Elfe 1: folds +Uncalled bet (120) returned to ruslan999588 +ruslan999588 collected 480 from pot +ruslan999588: doesn't show hand +*** SUMMARY *** +Total pot 480 | Rake 0 +Board [Td 9s 4s Ah] +Seat 1: s0rrow (button) folded before Flop (didn't bet) +Seat 2: ruslan999588 (small blind) collected (480) +Seat 3: titasands (big blind) folded before Flop +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded on the Turn +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47655765065: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:15:18 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: s0rrow (4090 in chips) +Seat 2: ruslan999588 (4981 in chips) +Seat 3: titasands (995 in chips) is sitting out +Seat 4: seric1975 (5450 in chips) +Seat 5: Georgy80 (13698 in chips) +Seat 7: Poker Elfe 1 (8594 in chips) +Seat 8: Djkujuhfl (2510 in chips) +Seat 9: stefan_bg_46 (3850 in chips) +s0rrow: posts the ante 15 +ruslan999588: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +titasands: posts small blind 60 +seric1975: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [3h Kh] +Georgy80: raises 312 to 432 +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +ruslan999588: folds +titasands: folds +seric1975: folds +Uncalled bet (312) returned to Georgy80 +Georgy80 collected 420 from pot +Georgy80: doesn't show hand +*** SUMMARY *** +Total pot 420 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 (button) folded before Flop (didn't bet) +Seat 3: titasands (small blind) folded before Flop +Seat 4: seric1975 (big blind) folded before Flop +Seat 5: Georgy80 collected (420) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47655782271: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:15:44 ET +Table '297808375 8' 9-max Seat #3 is the button +Seat 1: s0rrow (4075 in chips) +Seat 2: ruslan999588 (4966 in chips) +Seat 3: titasands (920 in chips) is sitting out +Seat 4: seric1975 (5315 in chips) +Seat 5: Georgy80 (13983 in chips) +Seat 7: Poker Elfe 1 (8579 in chips) +Seat 8: Djkujuhfl (2495 in chips) +Seat 9: stefan_bg_46 (3835 in chips) +s0rrow: posts the ante 15 +ruslan999588: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +seric1975: posts small blind 60 +Georgy80: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [6c Jh] +Poker Elfe 1: folds +Djkujuhfl: raises 240 to 360 +stefan_bg_46: folds +s0rrow: folds +ruslan999588: folds +titasands: folds +seric1975: folds +Georgy80: folds +Uncalled bet (240) returned to Djkujuhfl +Djkujuhfl collected 420 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 420 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 folded before Flop (didn't bet) +Seat 3: titasands (button) folded before Flop (didn't bet) +Seat 4: seric1975 (small blind) folded before Flop +Seat 5: Georgy80 (big blind) folded before Flop +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl collected (420) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47655797210: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:16:06 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (4060 in chips) +Seat 2: ruslan999588 (4951 in chips) +Seat 3: titasands (905 in chips) is sitting out +Seat 4: seric1975 (5240 in chips) +Seat 5: Georgy80 (13848 in chips) +Seat 7: Poker Elfe 1 (8564 in chips) +Seat 8: Djkujuhfl (2780 in chips) +Seat 9: stefan_bg_46 (3820 in chips) +s0rrow: posts the ante 15 +ruslan999588: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +Georgy80: posts small blind 60 +Poker Elfe 1: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [Kd 8c] +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +ruslan999588: calls 120 +titasands: folds +seric1975: folds +Georgy80: folds +Poker Elfe 1: checks +*** FLOP *** [Ad 3h 4d] +Poker Elfe 1: checks +ruslan999588: bets 120 +Poker Elfe 1: folds +Uncalled bet (120) returned to ruslan999588 +ruslan999588 collected 420 from pot +*** SUMMARY *** +Total pot 420 | Rake 0 +Board [Ad 3h 4d] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 collected (420) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 7: Poker Elfe 1 (big blind) folded on the Flop +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47655816777: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:16:36 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (4045 in chips) +Seat 2: ruslan999588 (5236 in chips) +Seat 3: titasands (890 in chips) is sitting out +Seat 4: seric1975 (5225 in chips) +Seat 5: Georgy80 (13773 in chips) +Seat 7: Poker Elfe 1 (8429 in chips) +Seat 8: Djkujuhfl (2765 in chips) +Seat 9: stefan_bg_46 (3805 in chips) +s0rrow: posts the ante 15 +ruslan999588: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +Poker Elfe 1: posts small blind 60 +Djkujuhfl: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [Td Ah] +stefan_bg_46: calls 120 +s0rrow: calls 120 +ruslan999588: folds +titasands: folds +seric1975: folds +Georgy80: folds +Poker Elfe 1: calls 60 +Djkujuhfl: checks +*** FLOP *** [6s Kh 5h] +Poker Elfe 1: bets 120 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: calls 120 +*** TURN *** [6s Kh 5h] [Js] +Poker Elfe 1: bets 120 +s0rrow: raises 360 to 480 +Poker Elfe 1: calls 360 +*** RIVER *** [6s Kh 5h Js] [Tc] +Poker Elfe 1: checks +s0rrow: bets 1080 +Poker Elfe 1: folds +Uncalled bet (1080) returned to s0rrow +s0rrow collected 1800 from pot +*** SUMMARY *** +Total pot 1800 | Rake 0 +Board [6s Kh 5h Js Tc] +Seat 1: s0rrow collected (1800) +Seat 2: ruslan999588 folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 (small blind) folded on the River +Seat 8: Djkujuhfl (big blind) folded on the Flop +Seat 9: stefan_bg_46 folded on the Flop + + + +PokerStars Game #47655849138: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:17:25 ET +Table '297808375 8' 9-max Seat #7 is the button +Seat 1: s0rrow (5110 in chips) +Seat 2: ruslan999588 (5221 in chips) +Seat 3: titasands (875 in chips) is sitting out +Seat 4: seric1975 (5210 in chips) +Seat 5: Georgy80 (13758 in chips) +Seat 7: Poker Elfe 1 (7694 in chips) +Seat 8: Djkujuhfl (2630 in chips) +Seat 9: stefan_bg_46 (3670 in chips) +s0rrow: posts the ante 15 +ruslan999588: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +Djkujuhfl: posts small blind 60 +stefan_bg_46: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [6c Tc] +s0rrow: folds +ruslan999588: folds +titasands: folds +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: raises 240 to 360 +stefan_bg_46: folds +Uncalled bet (240) returned to Djkujuhfl +Djkujuhfl collected 360 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 360 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: ruslan999588 folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 (button) folded before Flop (didn't bet) +Seat 8: Djkujuhfl (small blind) collected (360) +Seat 9: stefan_bg_46 (big blind) folded before Flop + + + +PokerStars Game #47655864200: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:17:48 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (5095 in chips) +Seat 2: ruslan999588 (5206 in chips) +Seat 3: titasands (860 in chips) is sitting out +Seat 4: seric1975 (5195 in chips) +Seat 5: Georgy80 (13743 in chips) +Seat 7: Poker Elfe 1 (7679 in chips) +Seat 8: Djkujuhfl (2855 in chips) +Seat 9: stefan_bg_46 (3535 in chips) +s0rrow: posts the ante 15 +ruslan999588: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +stefan_bg_46: posts small blind 60 +s0rrow: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [Jc Kc] +ruslan999588: calls 120 +titasands: folds +seric1975: raises 480 to 600 +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +ruslan999588: calls 480 +*** FLOP *** [Tc 7c 6d] +ruslan999588: bets 4320 +seric1975: raises 260 to 4580 and is all-in +ruslan999588: calls 260 +*** TURN *** [Tc 7c 6d] [4d] +*** RIVER *** [Tc 7c 6d 4d] [6h] +*** SHOW DOWN *** +ruslan999588: shows [Js As] (a pair of Sixes) +seric1975: shows [Qd Qc] (two pair, Queens and Sixes) +seric1975 collected 10660 from pot +*** SUMMARY *** +Total pot 10660 | Rake 0 +Board [Tc 7c 6d 4d 6h] +Seat 1: s0rrow (big blind) folded before Flop +Seat 2: ruslan999588 showed [Js As] and lost with a pair of Sixes +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 showed [Qd Qc] and won (10660) with two pair, Queens and Sixes +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47655901719: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:18:45 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (4960 in chips) +Seat 2: ruslan999588 (11 in chips) +Seat 3: titasands (845 in chips) is sitting out +Seat 4: seric1975 (10660 in chips) +Seat 5: Georgy80 (13728 in chips) +Seat 7: Poker Elfe 1 (7664 in chips) +Seat 8: Djkujuhfl (2840 in chips) +Seat 9: stefan_bg_46 (3460 in chips) +s0rrow: posts the ante 15 +ruslan999588: posts the ante 11 and is all-in +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +s0rrow: posts small blind 60 +*** HOLE CARDS *** +Dealt to s0rrow [6c 4s] +titasands: folds +seric1975: calls 120 +Georgy80: folds +Poker Elfe 1: calls 120 +Djkujuhfl: calls 120 +stefan_bg_46: folds +s0rrow: calls 60 +*** FLOP *** [9s 5s Qd] +s0rrow: checks +seric1975: checks +Poker Elfe 1: checks +Djkujuhfl: bets 404 +s0rrow: folds +seric1975: folds +Poker Elfe 1: folds +Uncalled bet (404) returned to Djkujuhfl +*** TURN *** [9s 5s Qd] [Jd] +*** RIVER *** [9s 5s Qd Jd] [3c] +*** SHOW DOWN *** +Djkujuhfl: shows [Qh Ks] (a pair of Queens) +Djkujuhfl collected 508 from side pot +ruslan999588: shows [9c Ts] (a pair of Nines) +Djkujuhfl collected 88 from main pot +Djkujuhfl wins the $0.25 bounty for eliminating ruslan999588 +ruslan999588 finished the tournament in 33rd place +*** SUMMARY *** +Total pot 596 Main pot 88. Side pot 508. | Rake 0 +Board [9s 5s Qd Jd 3c] +Seat 1: s0rrow (small blind) folded on the Flop +Seat 2: ruslan999588 (big blind) showed [9c Ts] and lost with a pair of Nines +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded on the Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded on the Flop +Seat 8: Djkujuhfl showed [Qh Ks] and won (596) with a pair of Queens +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47655946565: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:19:53 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (4825 in chips) +Seat 3: titasands (830 in chips) is sitting out +Seat 4: seric1975 (10525 in chips) +Seat 5: Georgy80 (13713 in chips) +Seat 7: Poker Elfe 1 (7529 in chips) +Seat 8: Djkujuhfl (3301 in chips) +Seat 9: stefan_bg_46 (3445 in chips) +s0rrow: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +titasands: posts small blind 60 +seric1975: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [8s Js] +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: raises 145 to 265 +stefan_bg_46: folds +s0rrow: calls 265 +titasands: folds +seric1975: folds +*** FLOP *** [7c Jh Qc] +Djkujuhfl: checks +s0rrow: bets 480 +Djkujuhfl: folds +Uncalled bet (480) returned to s0rrow +s0rrow collected 815 from pot +*** SUMMARY *** +Total pot 815 | Rake 0 +Board [7c Jh Qc] +Seat 1: s0rrow (button) collected (815) +Seat 3: titasands (small blind) folded before Flop +Seat 4: seric1975 (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded on the Flop +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47655975396: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:20:36 ET +Table '297808375 8' 9-max Seat #3 is the button +Seat 1: s0rrow (5360 in chips) +Seat 3: titasands (755 in chips) is sitting out +Seat 4: seric1975 (10390 in chips) +Seat 5: Georgy80 (13698 in chips) +Seat 7: Poker Elfe 1 (7514 in chips) +Seat 8: Djkujuhfl (3021 in chips) +Seat 9: stefan_bg_46 (3430 in chips) +s0rrow: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +seric1975: posts small blind 60 +Georgy80: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [Kh Ah] +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: raises 240 to 360 +titasands: folds +seric1975: calls 300 +Georgy80: folds +*** FLOP *** [Jh Kd 5s] +seric1975: bets 360 +s0rrow: raises 840 to 1200 +seric1975: folds +Uncalled bet (840) returned to s0rrow +s0rrow collected 1665 from pot +*** SUMMARY *** +Total pot 1665 | Rake 0 +Board [Jh Kd 5s] +Seat 1: s0rrow collected (1665) +Seat 3: titasands (button) folded before Flop (didn't bet) +Seat 4: seric1975 (small blind) folded on the Flop +Seat 5: Georgy80 (big blind) folded before Flop +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656010121: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:21:29 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (6290 in chips) +Seat 3: titasands (740 in chips) is sitting out +Seat 4: seric1975 (9655 in chips) +Seat 5: Georgy80 (13563 in chips) +Seat 7: Poker Elfe 1 (7499 in chips) +Seat 8: Djkujuhfl (3006 in chips) +Seat 9: stefan_bg_46 (3415 in chips) +s0rrow: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +Georgy80: posts small blind 60 +Poker Elfe 1: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [Jc 2s] +Djkujuhfl: raises 240 to 360 +stefan_bg_46: folds +s0rrow: folds +titasands: folds +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Uncalled bet (240) returned to Djkujuhfl +Djkujuhfl collected 405 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 405 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 7: Poker Elfe 1 (big blind) folded before Flop +Seat 8: Djkujuhfl collected (405) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656021423: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:21:46 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (6275 in chips) +Seat 3: titasands (725 in chips) is sitting out +Seat 4: seric1975 (9640 in chips) +Seat 5: Georgy80 (13488 in chips) +Seat 7: Poker Elfe 1 (7364 in chips) +Seat 8: Djkujuhfl (3276 in chips) +Seat 9: stefan_bg_46 (3400 in chips) +s0rrow: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +Poker Elfe 1: posts small blind 60 +Djkujuhfl: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [6h 2d] +stefan_bg_46: folds +s0rrow: folds +titasands: folds +seric1975: folds +Georgy80: raises 312 to 432 +Poker Elfe 1: folds +Djkujuhfl: raises 2829 to 3261 and is all-in +Georgy80: calls 2829 +*** FLOP *** [8d 6d 2h] +*** TURN *** [8d 6d 2h] [4d] +*** RIVER *** [8d 6d 2h 4d] [Js] +*** SHOW DOWN *** +Djkujuhfl: shows [8h 8c] (three of a kind, Eights) +Georgy80: shows [Jc Ac] (a pair of Jacks) +Djkujuhfl collected 6687 from pot +*** SUMMARY *** +Total pot 6687 | Rake 0 +Board [8d 6d 2h 4d Js] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) showed [Jc Ac] and lost with a pair of Jacks +Seat 7: Poker Elfe 1 (small blind) folded before Flop +Seat 8: Djkujuhfl (big blind) showed [8h 8c] and won (6687) with three of a kind, Eights +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656048740: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:22:28 ET +Table '297808375 8' 9-max Seat #7 is the button +Seat 1: s0rrow (6260 in chips) +Seat 3: titasands (710 in chips) is sitting out +Seat 4: seric1975 (9625 in chips) +Seat 5: Georgy80 (10212 in chips) +Seat 7: Poker Elfe 1 (7289 in chips) +Seat 8: Djkujuhfl (6687 in chips) +Seat 9: stefan_bg_46 (3385 in chips) +s0rrow: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +Djkujuhfl: posts small blind 60 +stefan_bg_46: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [Js Kc] +s0rrow: folds +titasands: folds +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: raises 240 to 360 +stefan_bg_46: folds +Uncalled bet (240) returned to Djkujuhfl +Djkujuhfl collected 345 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 345 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 (button) folded before Flop (didn't bet) +Seat 8: Djkujuhfl (small blind) collected (345) +Seat 9: stefan_bg_46 (big blind) folded before Flop + + + +PokerStars Game #47656069203: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level VIII (60/120) - 2010/08/03 12:22:59 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (6245 in chips) +Seat 3: titasands (695 in chips) is sitting out +Seat 4: seric1975 (9610 in chips) +Seat 5: Georgy80 (10197 in chips) +Seat 7: Poker Elfe 1 (7274 in chips) +Seat 8: Djkujuhfl (6897 in chips) +Seat 9: stefan_bg_46 (3250 in chips) +s0rrow: posts the ante 15 +titasands: posts the ante 15 +seric1975: posts the ante 15 +Georgy80: posts the ante 15 +Poker Elfe 1: posts the ante 15 +Djkujuhfl: posts the ante 15 +stefan_bg_46: posts the ante 15 +stefan_bg_46: posts small blind 60 +s0rrow: posts big blind 120 +*** HOLE CARDS *** +Dealt to s0rrow [3c 4s] +titasands: folds +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: raises 240 to 360 +stefan_bg_46: calls 300 +s0rrow: folds +*** FLOP *** [8s Ah Td] +stefan_bg_46: bets 240 +Djkujuhfl: folds +Uncalled bet (240) returned to stefan_bg_46 +stefan_bg_46 collected 945 from pot +*** SUMMARY *** +Total pot 945 | Rake 0 +Board [8s Ah Td] +Seat 1: s0rrow (big blind) folded before Flop +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) folded on the Flop +Seat 9: stefan_bg_46 (small blind) collected (945) + + + +PokerStars Game #47656102769: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:23:50 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (6110 in chips) +Seat 3: titasands (680 in chips) is sitting out +Seat 4: seric1975 (9595 in chips) +Seat 5: Georgy80 (10182 in chips) +Seat 7: Poker Elfe 1 (7259 in chips) +Seat 8: Djkujuhfl (6522 in chips) +Seat 9: stefan_bg_46 (3820 in chips) +s0rrow: posts the ante 20 +titasands: posts the ante 20 +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +s0rrow: posts small blind 75 +titasands: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [6c 5h] +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: raises 150 to 300 +s0rrow: folds +titasands: folds +Uncalled bet (150) returned to stefan_bg_46 +stefan_bg_46 collected 515 from pot +*** SUMMARY *** +Total pot 515 | Rake 0 +Seat 1: s0rrow (small blind) folded before Flop +Seat 3: titasands (big blind) folded before Flop +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (button) collected (515) + + + +PokerStars Game #47656112787: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:24:06 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (6015 in chips) +Seat 3: titasands (510 in chips) is sitting out +Seat 4: seric1975 (9575 in chips) +Seat 5: Georgy80 (10162 in chips) +Seat 7: Poker Elfe 1 (7239 in chips) +Seat 8: Djkujuhfl (6502 in chips) +Seat 9: stefan_bg_46 (4165 in chips) +s0rrow: posts the ante 20 +titasands: posts the ante 20 +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +titasands: posts small blind 75 +seric1975: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [Th 3c] +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: raises 300 to 450 +titasands: folds +seric1975: folds +Uncalled bet (300) returned to s0rrow +s0rrow collected 515 from pot +*** SUMMARY *** +Total pot 515 | Rake 0 +Seat 1: s0rrow (button) collected (515) +Seat 3: titasands (small blind) folded before Flop +Seat 4: seric1975 (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656123972: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:24:23 ET +Table '297808375 8' 9-max Seat #3 is the button +Seat 1: s0rrow (6360 in chips) +Seat 3: titasands (415 in chips) is sitting out +Seat 4: seric1975 (9405 in chips) +Seat 5: Georgy80 (10142 in chips) +Seat 7: Poker Elfe 1 (7219 in chips) +Seat 8: Djkujuhfl (6482 in chips) +Seat 9: stefan_bg_46 (4145 in chips) +s0rrow: posts the ante 20 +titasands: posts the ante 20 +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +seric1975: posts small blind 75 +Georgy80: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [3c 3d] +Poker Elfe 1: calls 150 +Djkujuhfl: raises 450 to 600 +stefan_bg_46: folds +s0rrow: folds +titasands: folds +seric1975: folds +Georgy80: folds +Poker Elfe 1: raises 450 to 1050 +Djkujuhfl: raises 5412 to 6462 and is all-in +Poker Elfe 1: calls 5412 +*** FLOP *** [Ks Ts 2s] +*** TURN *** [Ks Ts 2s] [5d] +*** RIVER *** [Ks Ts 2s 5d] [8h] +*** SHOW DOWN *** +Poker Elfe 1: shows [Ac Ad] (a pair of Aces) +Djkujuhfl: shows [As Ah] (a pair of Aces) +Poker Elfe 1 collected 6645 from pot +Djkujuhfl collected 6644 from pot +*** SUMMARY *** +Total pot 13289 | Rake 0 +Board [Ks Ts 2s 5d 8h] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 3: titasands (button) folded before Flop (didn't bet) +Seat 4: seric1975 (small blind) folded before Flop +Seat 5: Georgy80 (big blind) folded before Flop +Seat 7: Poker Elfe 1 showed [Ac Ad] and won (6645) with a pair of Aces +Seat 8: Djkujuhfl showed [As Ah] and won (6644) with a pair of Aces +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656151639: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:25:06 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (6340 in chips) +Seat 3: titasands (395 in chips) is sitting out +Seat 4: seric1975 (9310 in chips) +Seat 5: Georgy80 (9972 in chips) +Seat 7: Poker Elfe 1 (7382 in chips) +Seat 8: Djkujuhfl (6644 in chips) +Seat 9: stefan_bg_46 (4125 in chips) +s0rrow: posts the ante 20 +titasands: posts the ante 20 +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +Georgy80: posts small blind 75 +Poker Elfe 1: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [Jh Td] +Djkujuhfl: folds +stefan_bg_46: folds +Djkujuhfl said, "hf" +s0rrow: folds +titasands: folds +Djkujuhfl said, "nh" +seric1975: raises 150 to 300 +Georgy80: folds +Poker Elfe 1 said, "lol" +Poker Elfe 1: folds +Uncalled bet (150) returned to seric1975 +seric1975 collected 515 from pot +*** SUMMARY *** +Total pot 515 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 (button) collected (515) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 7: Poker Elfe 1 (big blind) folded before Flop +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656174786: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:25:41 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (6320 in chips) +Seat 2: MexicanGamb (5815 in chips) +Seat 3: titasands (375 in chips) is sitting out +Seat 4: seric1975 (9655 in chips) +Seat 5: Georgy80 (9877 in chips) +Seat 6: Asdelpoker01 (4685 in chips) out of hand (moved from another table into small blind) +Seat 7: Poker Elfe 1 (7212 in chips) +Seat 8: Djkujuhfl (6624 in chips) +Seat 9: stefan_bg_46 (4105 in chips) +s0rrow: posts the ante 20 +MexicanGamb: posts the ante 20 +titasands: posts the ante 20 +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +Poker Elfe 1: posts small blind 75 +Djkujuhfl: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [6h Ad] +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +titasands: folds +seric1975: folds +Georgy80: raises 393 to 543 +Poker Elfe 1: folds +Djkujuhfl: folds +Uncalled bet (393) returned to Georgy80 +Georgy80 collected 535 from pot +Georgy80: doesn't show hand +*** SUMMARY *** +Total pot 535 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) collected (535) +Seat 7: Poker Elfe 1 (small blind) folded before Flop +Seat 8: Djkujuhfl (big blind) folded before Flop +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656186462: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:25:59 ET +Table '297808375 8' 9-max Seat #7 is the button +Seat 1: s0rrow (6300 in chips) +Seat 2: MexicanGamb (5795 in chips) +Seat 3: titasands (355 in chips) is sitting out +Seat 4: seric1975 (9635 in chips) +Seat 5: Georgy80 (10242 in chips) +Seat 6: Asdelpoker01 (4685 in chips) is sitting out +Seat 7: Poker Elfe 1 (7117 in chips) +Seat 8: Djkujuhfl (6454 in chips) +Seat 9: stefan_bg_46 (4085 in chips) +s0rrow: posts the ante 20 +MexicanGamb: posts the ante 20 +titasands: posts the ante 20 +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Asdelpoker01: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +Djkujuhfl: posts small blind 75 +stefan_bg_46: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [Ac 6d] +s0rrow: folds +MexicanGamb: folds +titasands: folds +seric1975: folds +Georgy80: folds +Asdelpoker01: folds +Poker Elfe 1: calls 150 +Djkujuhfl: folds +stefan_bg_46: checks +*** FLOP *** [Td 3h 9d] +stefan_bg_46: checks +Poker Elfe 1: checks +*** TURN *** [Td 3h 9d] [8c] +stefan_bg_46: checks +Poker Elfe 1: checks +*** RIVER *** [Td 3h 9d 8c] [8h] +stefan_bg_46: checks +Poker Elfe 1: checks +*** SHOW DOWN *** +stefan_bg_46: shows [6s 5s] (a pair of Eights) +Poker Elfe 1: shows [7s As] (a pair of Eights - Ace kicker) +Poker Elfe 1 collected 555 from pot +*** SUMMARY *** +Total pot 555 | Rake 0 +Board [Td 3h 9d 8c 8h] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: Asdelpoker01 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 (button) showed [7s As] and won (555) with a pair of Eights +Seat 8: Djkujuhfl (small blind) folded before Flop +Seat 9: stefan_bg_46 (big blind) showed [6s 5s] and lost with a pair of Eights + + + +PokerStars Game #47656211307: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:26:38 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (6280 in chips) +Seat 2: MexicanGamb (5775 in chips) +Seat 3: titasands (335 in chips) is sitting out +Seat 4: seric1975 (9615 in chips) +Seat 5: Georgy80 (10222 in chips) +Seat 6: Asdelpoker01 (4665 in chips) is sitting out +Seat 7: Poker Elfe 1 (7502 in chips) +Seat 8: Djkujuhfl (6359 in chips) +Seat 9: stefan_bg_46 (3915 in chips) +s0rrow: posts the ante 20 +MexicanGamb: posts the ante 20 +titasands: posts the ante 20 +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Asdelpoker01: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +stefan_bg_46: posts small blind 75 +s0rrow: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [Kc Ac] +MexicanGamb: folds +titasands: folds +seric1975: folds +Georgy80: folds +Asdelpoker01: folds +Poker Elfe 1: folds +Djkujuhfl: raises 251 to 401 +stefan_bg_46: folds +s0rrow: raises 649 to 1050 +Djkujuhfl: folds +Uncalled bet (649) returned to s0rrow +s0rrow collected 1057 from pot +*** SUMMARY *** +Total pot 1057 | Rake 0 +Seat 1: s0rrow (big blind) collected (1057) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: Asdelpoker01 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) folded before Flop +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47656234932: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:27:15 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (6916 in chips) +Seat 2: MexicanGamb (5755 in chips) +Seat 3: titasands (315 in chips) is sitting out +Seat 4: seric1975 (9595 in chips) +Seat 5: Georgy80 (10202 in chips) +Seat 6: Asdelpoker01 (4645 in chips) is sitting out +Seat 7: Poker Elfe 1 (7482 in chips) +Seat 8: Djkujuhfl (5938 in chips) +Seat 9: stefan_bg_46 (3820 in chips) +s0rrow: posts the ante 20 +MexicanGamb: posts the ante 20 +titasands: posts the ante 20 +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Asdelpoker01: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +s0rrow: posts small blind 75 +MexicanGamb: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [Qh 3h] +titasands: folds +seric1975: calls 150 +Georgy80: folds +Asdelpoker01: folds +Poker Elfe 1: calls 150 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: calls 75 +MexicanGamb: checks +*** FLOP *** [4h Qd Th] +s0rrow: bets 600 +MexicanGamb: folds +seric1975: folds +Poker Elfe 1: folds +Uncalled bet (600) returned to s0rrow +s0rrow collected 780 from pot +*** SUMMARY *** +Total pot 780 | Rake 0 +Board [4h Qd Th] +Seat 1: s0rrow (small blind) collected (780) +Seat 2: MexicanGamb (big blind) folded on the Flop +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 folded on the Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: Asdelpoker01 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded on the Flop +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47656255158: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:27:46 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (7526 in chips) +Seat 2: MexicanGamb (5585 in chips) +Seat 3: titasands (295 in chips) is sitting out +Seat 4: seric1975 (9425 in chips) +Seat 5: Georgy80 (10182 in chips) +Seat 6: Asdelpoker01 (4625 in chips) is sitting out +Seat 7: Poker Elfe 1 (7312 in chips) +Seat 8: Djkujuhfl (5918 in chips) +Seat 9: stefan_bg_46 (3800 in chips) +s0rrow: posts the ante 20 +MexicanGamb: posts the ante 20 +titasands: posts the ante 20 +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Asdelpoker01: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +MexicanGamb: posts small blind 75 +titasands: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [5s Ah] +seric1975: calls 150 +Georgy80: folds +Asdelpoker01: folds +Poker Elfe 1: calls 150 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: calls 75 +titasands: folds +*** FLOP *** [9c 8d Tc] +MexicanGamb: bets 150 +seric1975: calls 150 +Poker Elfe 1: calls 150 +*** TURN *** [9c 8d Tc] [6c] +MexicanGamb: checks +seric1975: checks +Poker Elfe 1: checks +*** RIVER *** [9c 8d Tc 6c] [Ks] +MexicanGamb: checks +seric1975: checks +Poker Elfe 1: checks +*** SHOW DOWN *** +MexicanGamb: shows [2d Jd] (high card King) +seric1975: shows [8s As] (a pair of Eights) +Poker Elfe 1: mucks hand +seric1975 collected 1230 from pot +*** SUMMARY *** +Total pot 1230 | Rake 0 +Board [9c 8d Tc 6c Ks] +Seat 1: s0rrow (button) folded before Flop (didn't bet) +Seat 2: MexicanGamb (small blind) showed [2d Jd] and lost with high card King +Seat 3: titasands (big blind) folded before Flop +Seat 4: seric1975 showed [8s As] and won (1230) with a pair of Eights +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: Asdelpoker01 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 mucked [Js 4c] +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656285269: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:28:33 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: s0rrow (7506 in chips) +Seat 2: MexicanGamb (5265 in chips) +Seat 3: titasands (125 in chips) is sitting out +Seat 4: seric1975 (10335 in chips) +Seat 5: Georgy80 (10162 in chips) +Seat 6: Asdelpoker01 (4605 in chips) is sitting out +Seat 7: Poker Elfe 1 (6992 in chips) +Seat 8: Djkujuhfl (5898 in chips) +Seat 9: stefan_bg_46 (3780 in chips) +s0rrow: posts the ante 20 +MexicanGamb: posts the ante 20 +titasands: posts the ante 20 +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Asdelpoker01: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +titasands: posts small blind 75 +seric1975: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [Jh Td] +Georgy80: folds +Asdelpoker01: folds +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: raises 300 to 450 +MexicanGamb: folds +titasands: folds +seric1975: folds +Uncalled bet (300) returned to s0rrow +s0rrow collected 555 from pot +*** SUMMARY *** +Total pot 555 | Rake 0 +Seat 1: s0rrow collected (555) +Seat 2: MexicanGamb (button) folded before Flop (didn't bet) +Seat 3: titasands (small blind) folded before Flop +Seat 4: seric1975 (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: Asdelpoker01 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656323019: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:29:32 ET +Table '297808375 8' 9-max Seat #3 is the button +Seat 1: s0rrow (7891 in chips) +Seat 2: MexicanGamb (5245 in chips) +Seat 3: titasands (30 in chips) is sitting out +Seat 4: seric1975 (10165 in chips) +Seat 5: Georgy80 (10142 in chips) +Seat 6: Asdelpoker01 (4585 in chips) is sitting out +Seat 7: Poker Elfe 1 (6972 in chips) +Seat 8: Djkujuhfl (5878 in chips) +Seat 9: stefan_bg_46 (3760 in chips) +s0rrow: posts the ante 20 +MexicanGamb: posts the ante 20 +titasands: posts the ante 20 +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Asdelpoker01: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +seric1975: posts small blind 75 +Georgy80: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [Kh Td] +Asdelpoker01: folds +Poker Elfe 1: calls 150 +Djkujuhfl: folds +stefan_bg_46: raises 150 to 300 +s0rrow: folds +MexicanGamb: folds +titasands: folds +seric1975: raises 600 to 900 +Georgy80: folds +Poker Elfe 1: folds +stefan_bg_46: raises 600 to 1500 +seric1975: calls 600 +*** FLOP *** [Tc 5d 2h] +seric1975: checks +stefan_bg_46: bets 450 +seric1975: calls 450 +*** TURN *** [Tc 5d 2h] [4c] +seric1975: checks +stefan_bg_46: bets 1790 and is all-in +seric1975: folds +Uncalled bet (1790) returned to stefan_bg_46 +stefan_bg_46 collected 4380 from pot +*** SUMMARY *** +Total pot 4380 | Rake 0 +Board [Tc 5d 2h 4c] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: titasands (button) folded before Flop (didn't bet) +Seat 4: seric1975 (small blind) folded on the Turn +Seat 5: Georgy80 (big blind) folded before Flop +Seat 6: Asdelpoker01 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 collected (4380) + + + +PokerStars Game #47656382023: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:31:05 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (7871 in chips) +Seat 2: MexicanGamb (5225 in chips) +Seat 3: titasands (10 in chips) is sitting out +Seat 4: seric1975 (8195 in chips) +Seat 5: Georgy80 (9972 in chips) +Seat 6: Asdelpoker01 (4565 in chips) is sitting out +Seat 7: Poker Elfe 1 (6802 in chips) +Seat 8: Djkujuhfl (5858 in chips) +Seat 9: stefan_bg_46 (6170 in chips) +s0rrow: posts the ante 20 +MexicanGamb: posts the ante 20 +titasands: posts the ante 10 and is all-in +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Asdelpoker01: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +Georgy80: posts small blind 75 +Asdelpoker01: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [9s 7s] +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: calls 150 +s0rrow: folds +MexicanGamb: folds +titasands: folds +seric1975: raises 150 to 300 +Georgy80: folds +Asdelpoker01: folds +stefan_bg_46: calls 150 +*** FLOP *** [9c Jd 2c] +stefan_bg_46: checks +seric1975: checks +*** TURN *** [9c Jd 2c] [Td] +stefan_bg_46: checks +seric1975: checks +*** RIVER *** [9c Jd 2c Td] [6d] +stefan_bg_46: checks +seric1975: checks +*** SHOW DOWN *** +stefan_bg_46: shows [Qd Ac] (high card Ace) +seric1975: shows [Ts 8s] (a pair of Tens) +seric1975 collected 905 from side pot +seric1975 collected 90 from main pot +seric1975 wins the $0.25 bounty for eliminating titasands +titasands finished the tournament in 26th place +*** SUMMARY *** +Total pot 995 Main pot 90. Side pot 905. | Rake 0 +Board [9c Jd 2c Td 6d] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: titasands folded before Flop (didn't bet) +Seat 4: seric1975 (button) showed [Ts 8s] and won (995) with a pair of Tens +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: Asdelpoker01 (big blind) folded before Flop +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 showed [Qd Ac] and lost with high card Ace + + + +PokerStars Game #47656414632: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:31:56 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (7851 in chips) +Seat 2: MexicanGamb (5205 in chips) +Seat 4: seric1975 (8870 in chips) +Seat 5: Georgy80 (9877 in chips) +Seat 6: Asdelpoker01 (4395 in chips) is sitting out +Seat 7: Poker Elfe 1 (6782 in chips) +Seat 8: Djkujuhfl (5838 in chips) +Seat 9: stefan_bg_46 (5850 in chips) +s0rrow: posts the ante 20 +MexicanGamb: posts the ante 20 +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Asdelpoker01: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +Asdelpoker01: posts small blind 75 +Poker Elfe 1: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [8c 3s] +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +Asdelpoker01 has returned +seric1975: folds +Georgy80: folds +Asdelpoker01: raises 450 to 600 +Poker Elfe 1: folds +Uncalled bet (450) returned to Asdelpoker01 +Asdelpoker01 collected 460 from pot +Asdelpoker01: doesn't show hand +*** SUMMARY *** +Total pot 460 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 6: Asdelpoker01 (small blind) collected (460) +Seat 7: Poker Elfe 1 (big blind) folded before Flop +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656431192: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level IX (75/150) - 2010/08/03 12:32:22 ET +Table '297808375 8' 9-max Seat #6 is the button +Seat 1: s0rrow (7831 in chips) +Seat 2: MexicanGamb (5185 in chips) +Seat 4: seric1975 (8850 in chips) +Seat 5: Georgy80 (9857 in chips) +Seat 6: Asdelpoker01 (4685 in chips) +Seat 7: Poker Elfe 1 (6612 in chips) +Seat 8: Djkujuhfl (5818 in chips) +Seat 9: stefan_bg_46 (5830 in chips) +s0rrow: posts the ante 20 +MexicanGamb: posts the ante 20 +seric1975: posts the ante 20 +Georgy80: posts the ante 20 +Asdelpoker01: posts the ante 20 +Poker Elfe 1: posts the ante 20 +Djkujuhfl: posts the ante 20 +stefan_bg_46: posts the ante 20 +Poker Elfe 1: posts small blind 75 +Djkujuhfl: posts big blind 150 +*** HOLE CARDS *** +Dealt to s0rrow [2s 6d] +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +seric1975: folds +Georgy80: folds +Asdelpoker01: folds +Asdelpoker01 is sitting out +Poker Elfe 1: calls 75 +Djkujuhfl: raises 300 to 450 +Poker Elfe 1: calls 300 +*** FLOP *** [Jd 8c 2d] +Poker Elfe 1: checks +Djkujuhfl: bets 600 +Poker Elfe 1: folds +Uncalled bet (600) returned to Djkujuhfl +Djkujuhfl collected 1060 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 1060 | Rake 0 +Board [Jd 8c 2d] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: Asdelpoker01 (button) folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 (small blind) folded on the Flop +Seat 8: Djkujuhfl (big blind) collected (1060) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656469092: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level X (100/200) - 2010/08/03 12:33:22 ET +Table '297808375 8' 9-max Seat #7 is the button +Seat 1: s0rrow (7811 in chips) +Seat 2: MexicanGamb (5165 in chips) +Seat 4: seric1975 (8830 in chips) +Seat 5: Georgy80 (9837 in chips) +Seat 6: Asdelpoker01 (4665 in chips) is sitting out +Seat 7: Poker Elfe 1 (6142 in chips) +Seat 8: Djkujuhfl (6408 in chips) +Seat 9: stefan_bg_46 (5810 in chips) +s0rrow: posts the ante 25 +MexicanGamb: posts the ante 25 +seric1975: posts the ante 25 +Georgy80: posts the ante 25 +Asdelpoker01: posts the ante 25 +Poker Elfe 1: posts the ante 25 +Djkujuhfl: posts the ante 25 +stefan_bg_46: posts the ante 25 +Djkujuhfl: posts small blind 100 +stefan_bg_46: posts big blind 200 +*** HOLE CARDS *** +Dealt to s0rrow [4h 2d] +s0rrow: folds +MexicanGamb: folds +seric1975: folds +Georgy80: folds +Asdelpoker01: folds +Poker Elfe 1: raises 200 to 400 +Djkujuhfl: calls 300 +stefan_bg_46: calls 200 +*** FLOP *** [Ks Qs 4d] +Djkujuhfl: checks +stefan_bg_46: bets 200 +Poker Elfe 1: calls 200 +Djkujuhfl: calls 200 +*** TURN *** [Ks Qs 4d] [4s] +Djkujuhfl: checks +stefan_bg_46: bets 200 +Poker Elfe 1: calls 200 +Djkujuhfl: calls 200 +*** RIVER *** [Ks Qs 4d 4s] [Ah] +Djkujuhfl: bets 200 +stefan_bg_46: calls 200 +Poker Elfe 1: calls 200 +*** SHOW DOWN *** +Djkujuhfl: shows [Qd Ac] (two pair, Aces and Queens) +stefan_bg_46: mucks hand +Poker Elfe 1: mucks hand +Djkujuhfl collected 3200 from pot +*** SUMMARY *** +Total pot 3200 | Rake 0 +Board [Ks Qs 4d 4s Ah] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: Asdelpoker01 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 (button) mucked [Th Td] +Seat 8: Djkujuhfl (small blind) showed [Qd Ac] and won (3200) with two pair, Aces and Queens +Seat 9: stefan_bg_46 (big blind) mucked [Qh Jc] + + + +PokerStars Game #47656506175: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level X (100/200) - 2010/08/03 12:34:21 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (7786 in chips) +Seat 2: MexicanGamb (5140 in chips) +Seat 4: seric1975 (8805 in chips) +Seat 5: Georgy80 (9812 in chips) +Seat 6: Asdelpoker01 (4640 in chips) is sitting out +Seat 7: Poker Elfe 1 (5117 in chips) +Seat 8: Djkujuhfl (8583 in chips) +Seat 9: stefan_bg_46 (4785 in chips) +s0rrow: posts the ante 25 +MexicanGamb: posts the ante 25 +seric1975: posts the ante 25 +Georgy80: posts the ante 25 +Asdelpoker01: posts the ante 25 +Poker Elfe 1: posts the ante 25 +Djkujuhfl: posts the ante 25 +stefan_bg_46: posts the ante 25 +stefan_bg_46: posts small blind 100 +s0rrow: posts big blind 200 +*** HOLE CARDS *** +Dealt to s0rrow [Th 5s] +MexicanGamb: folds +seric1975: raises 600 to 800 +Georgy80: folds +Asdelpoker01: folds +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +Uncalled bet (600) returned to seric1975 +seric1975 collected 700 from pot +*** SUMMARY *** +Total pot 700 | Rake 0 +Seat 1: s0rrow (big blind) folded before Flop +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: seric1975 collected (700) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: Asdelpoker01 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47656519295: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level X (100/200) - 2010/08/03 12:34:42 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (7561 in chips) +Seat 2: MexicanGamb (5115 in chips) +Seat 4: seric1975 (9280 in chips) +Seat 5: Georgy80 (9787 in chips) +Seat 6: Asdelpoker01 (4615 in chips) is sitting out +Seat 7: Poker Elfe 1 (5092 in chips) +Seat 8: Djkujuhfl (8558 in chips) +Seat 9: stefan_bg_46 (4660 in chips) +s0rrow: posts the ante 25 +MexicanGamb: posts the ante 25 +seric1975: posts the ante 25 +Georgy80: posts the ante 25 +Asdelpoker01: posts the ante 25 +Poker Elfe 1: posts the ante 25 +Djkujuhfl: posts the ante 25 +stefan_bg_46: posts the ante 25 +s0rrow: posts small blind 100 +MexicanGamb: posts big blind 200 +*** HOLE CARDS *** +Dealt to s0rrow [Qd Ac] +seric1975: folds +Georgy80: folds +Asdelpoker01: folds +Poker Elfe 1: folds +Djkujuhfl: raises 400 to 600 +stefan_bg_46: folds +s0rrow: calls 500 +MexicanGamb: folds +*** FLOP *** [Jc Jh 6d] +s0rrow: checks +Djkujuhfl: bets 800 +s0rrow: calls 800 +*** TURN *** [Jc Jh 6d] [2d] +s0rrow: checks +Djkujuhfl: bets 1000 +s0rrow: raises 1000 to 2000 +Djkujuhfl: calls 1000 +*** RIVER *** [Jc Jh 6d 2d] [9c] +s0rrow: bets 4136 and is all-in +Djkujuhfl: folds +Uncalled bet (4136) returned to s0rrow +s0rrow collected 7200 from pot +s0rrow: shows [Qd Ac] (a pair of Jacks) +*** SUMMARY *** +Total pot 7200 | Rake 0 +Board [Jc Jh 6d 2d 9c] +Seat 1: s0rrow (small blind) collected (7200) +Seat 2: MexicanGamb (big blind) folded before Flop +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: Asdelpoker01 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded on the River +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47656571191: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level X (100/200) - 2010/08/03 12:36:04 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (11336 in chips) +Seat 2: MexicanGamb (4890 in chips) +Seat 4: seric1975 (9255 in chips) +Seat 5: Georgy80 (9762 in chips) +Seat 6: Asdelpoker01 (4590 in chips) is sitting out +Seat 7: Poker Elfe 1 (5067 in chips) +Seat 8: Djkujuhfl (5133 in chips) +Seat 9: stefan_bg_46 (4635 in chips) +s0rrow: posts the ante 25 +MexicanGamb: posts the ante 25 +seric1975: posts the ante 25 +Georgy80: posts the ante 25 +Asdelpoker01: posts the ante 25 +Poker Elfe 1: posts the ante 25 +Djkujuhfl: posts the ante 25 +stefan_bg_46: posts the ante 25 +MexicanGamb: posts small blind 100 +seric1975: posts big blind 200 +*** HOLE CARDS *** +Dealt to s0rrow [2s 2c] +Georgy80: folds +Asdelpoker01: folds +Asdelpoker01 is disconnected +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: raises 200 to 400 +s0rrow: calls 400 +MexicanGamb: calls 300 +seric1975: folds +*** FLOP *** [Kh Ac 5d] +MexicanGamb: checks +stefan_bg_46: bets 400 +s0rrow: folds +Asdelpoker01 is connected +Asdelpoker01 has returned +MexicanGamb: calls 400 +*** TURN *** [Kh Ac 5d] [3s] +MexicanGamb: checks +stefan_bg_46: bets 400 +MexicanGamb: calls 400 +*** RIVER *** [Kh Ac 5d 3s] [9s] +MexicanGamb: checks +stefan_bg_46: checks +*** SHOW DOWN *** +MexicanGamb: shows [Kc 6c] (a pair of Kings) +stefan_bg_46: shows [As 6h] (a pair of Aces) +stefan_bg_46 collected 3200 from pot +*** SUMMARY *** +Total pot 3200 | Rake 0 +Board [Kh Ac 5d 3s 9s] +Seat 1: s0rrow (button) folded on the Flop +Seat 2: MexicanGamb (small blind) showed [Kc 6c] and lost with a pair of Kings +Seat 4: seric1975 (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: Asdelpoker01 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 showed [As 6h] and won (3200) with a pair of Aces + + + +PokerStars Game #47656625677: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level X (100/200) - 2010/08/03 12:37:30 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: s0rrow (10911 in chips) +Seat 2: MexicanGamb (3665 in chips) +Seat 4: seric1975 (9030 in chips) +Seat 5: Georgy80 (9737 in chips) +Seat 6: Asdelpoker01 (4565 in chips) +Seat 7: Poker Elfe 1 (5042 in chips) +Seat 8: Djkujuhfl (5108 in chips) +Seat 9: stefan_bg_46 (6610 in chips) +s0rrow: posts the ante 25 +MexicanGamb: posts the ante 25 +seric1975: posts the ante 25 +Georgy80: posts the ante 25 +Asdelpoker01: posts the ante 25 +Poker Elfe 1: posts the ante 25 +Djkujuhfl: posts the ante 25 +stefan_bg_46: posts the ante 25 +seric1975: posts small blind 100 +Georgy80: posts big blind 200 +*** HOLE CARDS *** +Dealt to s0rrow [2s Js] +Asdelpoker01: raises 4340 to 4540 and is all-in +Poker Elfe 1: folds +Djkujuhfl: raises 543 to 5083 and is all-in +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +seric1975: folds +Georgy80: folds +Uncalled bet (543) returned to Djkujuhfl +*** FLOP *** [3s 8s 7c] +*** TURN *** [3s 8s 7c] [3h] +*** RIVER *** [3s 8s 7c 3h] [4h] +*** SHOW DOWN *** +Asdelpoker01: shows [4c Ks] (two pair, Fours and Threes) +Djkujuhfl: shows [As Ah] (two pair, Aces and Threes) +Djkujuhfl collected 9580 from pot +Djkujuhfl wins the $0.25 bounty for eliminating Asdelpoker01 +Asdelpoker01 finished the tournament in 23rd place +*** SUMMARY *** +Total pot 9580 | Rake 0 +Board [3s 8s 7c 3h 4h] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb (button) folded before Flop (didn't bet) +Seat 4: seric1975 (small blind) folded before Flop +Seat 5: Georgy80 (big blind) folded before Flop +Seat 6: Asdelpoker01 showed [4c Ks] and lost with two pair, Fours and Threes +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl showed [As Ah] and won (9580) with two pair, Aces and Threes +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656645203: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level X (100/200) - 2010/08/03 12:38:00 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (10886 in chips) +Seat 2: MexicanGamb (3640 in chips) +Seat 4: seric1975 (8905 in chips) +Seat 5: Georgy80 (9512 in chips) +Seat 7: Poker Elfe 1 (5017 in chips) +Seat 8: Djkujuhfl (10123 in chips) +Seat 9: stefan_bg_46 (6585 in chips) +s0rrow: posts the ante 25 +MexicanGamb: posts the ante 25 +seric1975: posts the ante 25 +Georgy80: posts the ante 25 +Poker Elfe 1: posts the ante 25 +Djkujuhfl: posts the ante 25 +stefan_bg_46: posts the ante 25 +Georgy80: posts small blind 100 +Poker Elfe 1: posts big blind 200 +*** HOLE CARDS *** +Dealt to s0rrow [Kc Js] +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: raises 400 to 600 +MexicanGamb: calls 600 +seric1975: folds +Georgy80: folds +Poker Elfe 1: calls 400 +*** FLOP *** [5d Ac 5c] +Poker Elfe 1: checks +s0rrow: checks +MexicanGamb: checks +*** TURN *** [5d Ac 5c] [7d] +Poker Elfe 1: checks +s0rrow: checks +MexicanGamb: bets 600 +Poker Elfe 1: folds +s0rrow: calls 600 +*** RIVER *** [5d Ac 5c 7d] [7h] +s0rrow: checks +MexicanGamb: bets 800 +s0rrow: folds +Uncalled bet (800) returned to MexicanGamb +MexicanGamb collected 3275 from pot +MexicanGamb: doesn't show hand +*** SUMMARY *** +Total pot 3275 | Rake 0 +Board [5d Ac 5c 7d 7h] +Seat 1: s0rrow folded on the River +Seat 2: MexicanGamb collected (3275) +Seat 4: seric1975 (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 7: Poker Elfe 1 (big blind) folded on the Turn +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656688694: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level X (100/200) - 2010/08/03 12:39:09 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (9661 in chips) +Seat 2: MexicanGamb (5690 in chips) +Seat 4: seric1975 (8880 in chips) +Seat 5: Georgy80 (9387 in chips) +Seat 7: Poker Elfe 1 (4392 in chips) +Seat 8: Djkujuhfl (10098 in chips) +Seat 9: stefan_bg_46 (6560 in chips) +s0rrow: posts the ante 25 +MexicanGamb: posts the ante 25 +seric1975: posts the ante 25 +Georgy80: posts the ante 25 +Poker Elfe 1: posts the ante 25 +Djkujuhfl: posts the ante 25 +stefan_bg_46: posts the ante 25 +Poker Elfe 1: posts small blind 100 +Djkujuhfl: posts big blind 200 +*** HOLE CARDS *** +Dealt to s0rrow [Qd 3s] +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: raises 465 to 665 +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: folds +Uncalled bet (465) returned to MexicanGamb +MexicanGamb collected 675 from pot +MexicanGamb: doesn't show hand +*** SUMMARY *** +Total pot 675 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb collected (675) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 (small blind) folded before Flop +Seat 8: Djkujuhfl (big blind) folded before Flop +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656706371: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level X (100/200) - 2010/08/03 12:39:37 ET +Table '297808375 8' 9-max Seat #7 is the button +Seat 1: s0rrow (9636 in chips) +Seat 2: MexicanGamb (6140 in chips) +Seat 4: seric1975 (8855 in chips) +Seat 5: Georgy80 (9362 in chips) +Seat 7: Poker Elfe 1 (4267 in chips) +Seat 8: Djkujuhfl (9873 in chips) +Seat 9: stefan_bg_46 (6535 in chips) +s0rrow: posts the ante 25 +MexicanGamb: posts the ante 25 +seric1975: posts the ante 25 +Georgy80: posts the ante 25 +Poker Elfe 1: posts the ante 25 +Djkujuhfl: posts the ante 25 +stefan_bg_46: posts the ante 25 +Djkujuhfl: posts small blind 100 +stefan_bg_46: posts big blind 200 +*** HOLE CARDS *** +Dealt to s0rrow [3d Ks] +s0rrow: folds +MexicanGamb: folds +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: calls 100 +stefan_bg_46: checks +*** FLOP *** [6c 6s Js] +Djkujuhfl: checks +stefan_bg_46: bets 200 +Djkujuhfl: raises 400 to 600 +stefan_bg_46: calls 400 +*** TURN *** [6c 6s Js] [2d] +Djkujuhfl: bets 1000 +stefan_bg_46: calls 1000 +*** RIVER *** [6c 6s Js 2d] [Ah] +Djkujuhfl: bets 1800 +stefan_bg_46: calls 1800 +*** SHOW DOWN *** +Djkujuhfl: shows [6d 3h] (three of a kind, Sixes) +stefan_bg_46: shows [6h 3c] (three of a kind, Sixes) +Djkujuhfl collected 3688 from pot +stefan_bg_46 collected 3687 from pot +*** SUMMARY *** +Total pot 7375 | Rake 0 +Board [6c 6s Js 2d Ah] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 (button) folded before Flop (didn't bet) +Seat 8: Djkujuhfl (small blind) showed [6d 3h] and won (3688) with three of a kind, Sixes +Seat 9: stefan_bg_46 (big blind) showed [6h 3c] and won (3687) with three of a kind, Sixes + + + +PokerStars Game #47656753035: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level X (100/200) - 2010/08/03 12:40:49 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (9611 in chips) +Seat 2: MexicanGamb (6115 in chips) +Seat 4: seric1975 (8830 in chips) +Seat 5: Georgy80 (9337 in chips) +Seat 7: Poker Elfe 1 (4242 in chips) +Seat 8: Djkujuhfl (9936 in chips) +Seat 9: stefan_bg_46 (6597 in chips) +s0rrow: posts the ante 25 +MexicanGamb: posts the ante 25 +seric1975: posts the ante 25 +Georgy80: posts the ante 25 +Poker Elfe 1: posts the ante 25 +Djkujuhfl: posts the ante 25 +stefan_bg_46: posts the ante 25 +stefan_bg_46: posts small blind 100 +s0rrow: posts big blind 200 +*** HOLE CARDS *** +Dealt to s0rrow [4h Ks] +MexicanGamb: raises 490 to 690 +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +Uncalled bet (490) returned to MexicanGamb +MexicanGamb collected 675 from pot +MexicanGamb: doesn't show hand +*** SUMMARY *** +Total pot 675 | Rake 0 +Seat 1: s0rrow (big blind) folded before Flop +Seat 2: MexicanGamb collected (675) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47656770690: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level X (100/200) - 2010/08/03 12:41:17 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (9386 in chips) +Seat 2: MexicanGamb (6565 in chips) +Seat 4: seric1975 (8805 in chips) +Seat 5: Georgy80 (9312 in chips) +Seat 7: Poker Elfe 1 (4217 in chips) +Seat 8: Djkujuhfl (9911 in chips) +Seat 9: stefan_bg_46 (6472 in chips) +s0rrow: posts the ante 25 +MexicanGamb: posts the ante 25 +seric1975: posts the ante 25 +Georgy80: posts the ante 25 +Poker Elfe 1: posts the ante 25 +Djkujuhfl: posts the ante 25 +stefan_bg_46: posts the ante 25 +s0rrow: posts small blind 100 +MexicanGamb: posts big blind 200 +*** HOLE CARDS *** +Dealt to s0rrow [3d 6d] +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: raises 355 to 555 +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +Uncalled bet (355) returned to Djkujuhfl +Djkujuhfl collected 675 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 675 | Rake 0 +Seat 1: s0rrow (small blind) folded before Flop +Seat 2: MexicanGamb (big blind) folded before Flop +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl collected (675) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47656789310: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level X (100/200) - 2010/08/03 12:41:46 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (9261 in chips) +Seat 2: MexicanGamb (6340 in chips) +Seat 4: seric1975 (8780 in chips) +Seat 5: Georgy80 (9287 in chips) +Seat 7: Poker Elfe 1 (4192 in chips) +Seat 8: Djkujuhfl (10361 in chips) +Seat 9: stefan_bg_46 (6447 in chips) +s0rrow: posts the ante 25 +MexicanGamb: posts the ante 25 +seric1975: posts the ante 25 +Georgy80: posts the ante 25 +Poker Elfe 1: posts the ante 25 +Djkujuhfl: posts the ante 25 +stefan_bg_46: posts the ante 25 +MexicanGamb: posts small blind 100 +seric1975: posts big blind 200 +*** HOLE CARDS *** +Dealt to s0rrow [9c Ks] +Georgy80: folds +Poker Elfe 1: calls 200 +Djkujuhfl: folds +stefan_bg_46: calls 200 +s0rrow: calls 200 +MexicanGamb: folds +seric1975: checks +*** FLOP *** [Js 3d Tc] +seric1975: checks +Poker Elfe 1: checks +stefan_bg_46: checks +s0rrow: checks +*** TURN *** [Js 3d Tc] [8h] +seric1975: checks +Poker Elfe 1: checks +stefan_bg_46: checks +s0rrow: bets 800 +seric1975: folds +Poker Elfe 1: folds +stefan_bg_46: folds +Uncalled bet (800) returned to s0rrow +s0rrow collected 1075 from pot +*** SUMMARY *** +Total pot 1075 | Rake 0 +Board [Js 3d Tc 8h] +Seat 1: s0rrow (button) collected (1075) +Seat 2: MexicanGamb (small blind) folded before Flop +Seat 4: seric1975 (big blind) folded on the Turn +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded on the Turn +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded on the Turn + + + +PokerStars Game #47656823014: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level X (100/200) - 2010/08/03 12:42:37 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: s0rrow (10111 in chips) +Seat 2: MexicanGamb (6215 in chips) +Seat 4: seric1975 (8555 in chips) +Seat 5: Georgy80 (9262 in chips) +Seat 7: Poker Elfe 1 (3967 in chips) +Seat 8: Djkujuhfl (10336 in chips) +Seat 9: stefan_bg_46 (6222 in chips) +s0rrow: posts the ante 25 +MexicanGamb: posts the ante 25 +seric1975: posts the ante 25 +Georgy80: posts the ante 25 +Poker Elfe 1: posts the ante 25 +Djkujuhfl: posts the ante 25 +stefan_bg_46: posts the ante 25 +seric1975: posts small blind 100 +Georgy80: posts big blind 200 +*** HOLE CARDS *** +Dealt to s0rrow [7d 6h] +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: raises 400 to 600 +MexicanGamb: folds +seric1975: folds +Georgy80: folds +Uncalled bet (400) returned to s0rrow +s0rrow collected 675 from pot +*** SUMMARY *** +Total pot 675 | Rake 0 +Seat 1: s0rrow collected (675) +Seat 2: MexicanGamb (button) folded before Flop (didn't bet) +Seat 4: seric1975 (small blind) folded before Flop +Seat 5: Georgy80 (big blind) folded before Flop +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656838606: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level X (100/200) - 2010/08/03 12:43:01 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (10561 in chips) +Seat 2: MexicanGamb (6190 in chips) +Seat 4: seric1975 (8430 in chips) +Seat 5: Georgy80 (9037 in chips) +Seat 7: Poker Elfe 1 (3942 in chips) +Seat 8: Djkujuhfl (10311 in chips) +Seat 9: stefan_bg_46 (6197 in chips) +s0rrow: posts the ante 25 +MexicanGamb: posts the ante 25 +seric1975: posts the ante 25 +Georgy80: posts the ante 25 +Poker Elfe 1: posts the ante 25 +Djkujuhfl: posts the ante 25 +stefan_bg_46: posts the ante 25 +Georgy80: posts small blind 100 +Poker Elfe 1: posts big blind 200 +*** HOLE CARDS *** +Dealt to s0rrow [2d 5c] +Djkujuhfl: folds +stefan_bg_46: raises 200 to 400 +s0rrow: folds +MexicanGamb: folds +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Uncalled bet (200) returned to stefan_bg_46 +stefan_bg_46 collected 675 from pot +*** SUMMARY *** +Total pot 675 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: seric1975 (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 7: Poker Elfe 1 (big blind) folded before Flop +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 collected (675) + + + +PokerStars Game #47656854341: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:43:25 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (10536 in chips) +Seat 2: MexicanGamb (6165 in chips) +Seat 4: seric1975 (8405 in chips) +Seat 5: Georgy80 (8912 in chips) +Seat 7: Poker Elfe 1 (3717 in chips) +Seat 8: Djkujuhfl (10286 in chips) +Seat 9: stefan_bg_46 (6647 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +seric1975: posts the ante 30 +Georgy80: posts the ante 30 +Poker Elfe 1: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +Poker Elfe 1: posts small blind 125 +Djkujuhfl: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [Jd 7c] +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: raises 500 to 750 +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: folds +Uncalled bet (500) returned to MexicanGamb +MexicanGamb collected 835 from pot +MexicanGamb: doesn't show hand +*** SUMMARY *** +Total pot 835 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb collected (835) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 (small blind) folded before Flop +Seat 8: Djkujuhfl (big blind) folded before Flop +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656867057: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:43:45 ET +Table '297808375 8' 9-max Seat #7 is the button +Seat 1: s0rrow (10506 in chips) +Seat 2: MexicanGamb (6720 in chips) +Seat 4: seric1975 (8375 in chips) +Seat 5: Georgy80 (8882 in chips) +Seat 7: Poker Elfe 1 (3562 in chips) +Seat 8: Djkujuhfl (10006 in chips) +Seat 9: stefan_bg_46 (6617 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +seric1975: posts the ante 30 +Georgy80: posts the ante 30 +Poker Elfe 1: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +Djkujuhfl: posts small blind 125 +stefan_bg_46: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [2h Ts] +s0rrow: folds +MexicanGamb: folds +seric1975: folds +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: calls 125 +stefan_bg_46: checks +*** FLOP *** [9h 5c 8s] +Djkujuhfl: checks +stefan_bg_46: bets 250 +Djkujuhfl: folds +Uncalled bet (250) returned to stefan_bg_46 +stefan_bg_46 collected 710 from pot +*** SUMMARY *** +Total pot 710 | Rake 0 +Board [9h 5c 8s] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: seric1975 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 (button) folded before Flop (didn't bet) +Seat 8: Djkujuhfl (small blind) folded on the Flop +Seat 9: stefan_bg_46 (big blind) collected (710) + + + +PokerStars Game #47656888903: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:44:19 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (10476 in chips) +Seat 2: MexicanGamb (6690 in chips) +Seat 5: Georgy80 (8852 in chips) +Seat 7: Poker Elfe 1 (3532 in chips) +Seat 8: Djkujuhfl (9726 in chips) +Seat 9: stefan_bg_46 (7047 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +Georgy80: posts the ante 30 +Poker Elfe 1: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +stefan_bg_46: posts small blind 125 +s0rrow: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [Ad 6s] +MexicanGamb: folds +Georgy80: raises 250 to 500 +Poker Elfe 1: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +Uncalled bet (250) returned to Georgy80 +Georgy80 collected 805 from pot +Georgy80: doesn't show hand +*** SUMMARY *** +Total pot 805 | Rake 0 +Seat 1: s0rrow (big blind) folded before Flop +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 5: Georgy80 collected (805) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47656900619: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:44:37 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (10196 in chips) +Seat 2: MexicanGamb (6660 in chips) +Seat 5: Georgy80 (9377 in chips) +Seat 7: Poker Elfe 1 (3502 in chips) +Seat 8: Djkujuhfl (9696 in chips) +Seat 9: stefan_bg_46 (6892 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +Georgy80: posts the ante 30 +Poker Elfe 1: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +s0rrow: posts small blind 125 +MexicanGamb: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [6s 8c] +Georgy80: folds +Poker Elfe 1: folds +Djkujuhfl: raises 750 to 1000 +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +Uncalled bet (750) returned to Djkujuhfl +Djkujuhfl collected 805 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 805 | Rake 0 +Seat 1: s0rrow (small blind) folded before Flop +Seat 2: MexicanGamb (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 7: Poker Elfe 1 folded before Flop (didn't bet) +Seat 8: Djkujuhfl collected (805) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47656916060: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:45:01 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (10041 in chips) +Seat 2: MexicanGamb (6380 in chips) +Seat 5: Georgy80 (9347 in chips) +Seat 7: Poker Elfe 1 (3472 in chips) +Seat 8: Djkujuhfl (10221 in chips) +Seat 9: stefan_bg_46 (6862 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +Georgy80: posts the ante 30 +Poker Elfe 1: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +MexicanGamb: posts small blind 125 +Georgy80: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [9d 4s] +Poker Elfe 1: calls 250 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: calls 125 +Georgy80: raises 350 to 600 +Poker Elfe 1: calls 350 +MexicanGamb: calls 350 +*** FLOP *** [8d 5c 8s] +MexicanGamb: checks +Georgy80: bets 725 +Poker Elfe 1: calls 725 +MexicanGamb: folds +*** TURN *** [8d 5c 8s] [Ac] +Georgy80: checks +Poker Elfe 1: checks +*** RIVER *** [8d 5c 8s Ac] [6c] +pokergott68 is connected +madrk is connected +Vitinho1983 is connected +Georgy80: bets 725 +Poker Elfe 1: calls 725 +*** SHOW DOWN *** +Georgy80: shows [Ah Ad] (a full house, Aces full of Eights) +Poker Elfe 1: mucks hand +Georgy80 collected 4880 from pot +*** SUMMARY *** +Total pot 4880 | Rake 0 +Board [8d 5c 8s Ac 6c] +Seat 1: s0rrow (button) folded before Flop (didn't bet) +Seat 2: MexicanGamb (small blind) folded on the Flop +Seat 5: Georgy80 (big blind) showed [Ah Ad] and won (4880) with a full house, Aces full of Eights +Seat 7: Poker Elfe 1 mucked [Tc Ts] +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656957039: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:46:05 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: s0rrow (10011 in chips) +Seat 2: MexicanGamb (5750 in chips) +Seat 3: madrk (3216 in chips) out of hand (moved from another table into small blind) +Seat 4: pokergott68 (5665 in chips) out of hand (moved from another table into small blind) +Seat 5: Georgy80 (12147 in chips) +Seat 6: Vitinho1983 (9420 in chips) +Seat 7: Poker Elfe 1 (1392 in chips) +Seat 8: Djkujuhfl (10191 in chips) +Seat 9: stefan_bg_46 (6832 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +Georgy80: posts the ante 30 +Vitinho1983: posts the ante 30 +Poker Elfe 1: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +Georgy80: posts small blind 125 +Vitinho1983: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [3h 2s] +Poker Elfe 1: raises 1112 to 1362 and is all-in +Djkujuhfl: raises 1112 to 2474 +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +Georgy80: folds +Vitinho1983: folds +Uncalled bet (1112) returned to Djkujuhfl +*** FLOP *** [Ts 6d 7c] +*** TURN *** [Ts 6d 7c] [9c] +*** RIVER *** [Ts 6d 7c 9c] [Td] +*** SHOW DOWN *** +Poker Elfe 1: shows [Jd Qd] (a pair of Tens) +Djkujuhfl: shows [Ad Js] (a pair of Tens - Ace kicker) +Djkujuhfl collected 3309 from pot +Djkujuhfl wins the $0.25 bounty for eliminating Poker Elfe 1 +Poker Elfe 1 finished the tournament in 18th place +*** SUMMARY *** +Total pot 3309 | Rake 0 +Board [Ts 6d 7c 9c Td] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: Vitinho1983 (big blind) folded before Flop +Seat 7: Poker Elfe 1 showed [Jd Qd] and lost with a pair of Tens +Seat 8: Djkujuhfl showed [Ad Js] and won (3309) with a pair of Tens +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47656981310: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:46:42 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (9981 in chips) +Seat 2: MexicanGamb (5720 in chips) +Seat 3: madrk (3216 in chips) +Seat 4: pokergott68 (5665 in chips) is sitting out +Seat 5: Georgy80 (11992 in chips) +Seat 6: Vitinho1983 (9140 in chips) +Seat 8: Djkujuhfl (12108 in chips) +Seat 9: stefan_bg_46 (6802 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +madrk: posts the ante 30 +pokergott68: posts the ante 30 +Georgy80: posts the ante 30 +Vitinho1983: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +Vitinho1983: posts small blind 125 +Djkujuhfl: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [7d 4h] +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +madrk: folds +pokergott68: folds +Georgy80: folds +Vitinho1983: calls 125 +Djkujuhfl: raises 500 to 750 +Vitinho1983: calls 500 +*** FLOP *** [6c Ah 7c] +Vitinho1983: checks +Djkujuhfl: bets 500 +Vitinho1983: calls 500 +*** TURN *** [6c Ah 7c] [7s] +Vitinho1983: checks +Djkujuhfl: checks +*** RIVER *** [6c Ah 7c 7s] [3s] +Vitinho1983: bets 1000 +pokergott68 has returned +Djkujuhfl: raises 9828 to 10828 and is all-in +Vitinho1983: calls 6860 and is all-in +Uncalled bet (2968) returned to Djkujuhfl +*** SHOW DOWN *** +Djkujuhfl: shows [4d 5s] (a straight, Three to Seven) +Vitinho1983: shows [7h 8d] (three of a kind, Sevens) +Djkujuhfl collected 18460 from pot +Djkujuhfl wins the $0.25 bounty for eliminating Vitinho1983 +Vitinho1983 finished the tournament in 17th place +*** SUMMARY *** +Total pot 18460 | Rake 0 +Board [6c Ah 7c 7s 3s] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: madrk folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 6: Vitinho1983 (small blind) showed [7h 8d] and lost with three of a kind, Sevens +Seat 8: Djkujuhfl (big blind) showed [4d 5s] and won (18460) with a straight, Three to Seven +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657019801: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:47:42 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (9951 in chips) +Seat 2: MexicanGamb (5690 in chips) +Seat 3: madrk (3186 in chips) +Seat 4: pokergott68 (5635 in chips) +Seat 5: Georgy80 (11962 in chips) +Seat 8: Djkujuhfl (21428 in chips) +Seat 9: stefan_bg_46 (6772 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +madrk: posts the ante 30 +pokergott68: posts the ante 30 +Georgy80: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +stefan_bg_46: posts small blind 125 +s0rrow: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [Jh Ah] +MexicanGamb: folds +madrk: folds +pokergott68: folds +Georgy80: folds +123456789476 is connected +Djkujuhfl: calls 250 +stefan_bg_46: calls 125 +s0rrow: raises 1000 to 1250 +Djkujuhfl: folds +stefan_bg_46: folds +Uncalled bet (1000) returned to s0rrow +s0rrow collected 960 from pot +*** SUMMARY *** +Total pot 960 | Rake 0 +Seat 1: s0rrow (big blind) collected (960) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: madrk folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) folded before Flop +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47657039562: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:48:13 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (10631 in chips) +Seat 2: MexicanGamb (5660 in chips) +Seat 3: madrk (3156 in chips) +Seat 4: pokergott68 (5605 in chips) +Seat 5: Georgy80 (11932 in chips) +Seat 6: 123456789476 (8616 in chips) +Seat 8: Djkujuhfl (21148 in chips) +Seat 9: stefan_bg_46 (6492 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +madrk: posts the ante 30 +pokergott68: posts the ante 30 +Georgy80: posts the ante 30 +123456789476: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +s0rrow: posts small blind 125 +MexicanGamb: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [7d 4d] +madrk: folds +pokergott68: folds +Georgy80: folds +123456789476: raises 250 to 500 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +Uncalled bet (250) returned to 123456789476 +123456789476 collected 865 from pot +*** SUMMARY *** +Total pot 865 | Rake 0 +Seat 1: s0rrow (small blind) folded before Flop +Seat 2: MexicanGamb (big blind) folded before Flop +Seat 3: madrk folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 collected (865) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47657052271: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:48:33 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (10476 in chips) +Seat 2: MexicanGamb (5380 in chips) +Seat 3: madrk (3126 in chips) +Seat 4: pokergott68 (5575 in chips) +Seat 5: Georgy80 (11902 in chips) +Seat 6: 123456789476 (9201 in chips) +Seat 8: Djkujuhfl (21118 in chips) +Seat 9: stefan_bg_46 (6462 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +madrk: posts the ante 30 +pokergott68: posts the ante 30 +Georgy80: posts the ante 30 +123456789476: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +MexicanGamb: posts small blind 125 +madrk: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [Kd 2s] +pokergott68: folds +Georgy80: raises 350 to 600 +123456789476: calls 600 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +madrk: folds +*** FLOP *** [6c Jh 6h] +Georgy80: checks +123456789476: bets 500 +Georgy80: calls 500 +*** TURN *** [6c Jh 6h] [Ah] +Georgy80: checks +123456789476: bets 500 +Georgy80: folds +Uncalled bet (500) returned to 123456789476 +123456789476 collected 2815 from pot +*** SUMMARY *** +Total pot 2815 | Rake 0 +Board [6c Jh 6h Ah] +Seat 1: s0rrow (button) folded before Flop (didn't bet) +Seat 2: MexicanGamb (small blind) folded before Flop +Seat 3: madrk (big blind) folded before Flop +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded on the Turn +Seat 6: 123456789476 collected (2815) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657092296: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:49:36 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: s0rrow (10446 in chips) +Seat 2: MexicanGamb (5225 in chips) +Seat 3: madrk (2846 in chips) +Seat 4: pokergott68 (5545 in chips) +Seat 5: Georgy80 (10772 in chips) +Seat 6: 123456789476 (10886 in chips) +Seat 8: Djkujuhfl (21088 in chips) +Seat 9: stefan_bg_46 (6432 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +madrk: posts the ante 30 +pokergott68: posts the ante 30 +Georgy80: posts the ante 30 +123456789476: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +madrk: posts small blind 125 +pokergott68: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [5d Jd] +Georgy80: folds +123456789476: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: raises 500 to 750 +MexicanGamb: folds +madrk: folds +pokergott68: calls 500 +*** FLOP *** [5c 2s 2d] +pokergott68: checks +s0rrow: bets 1250 +pokergott68: folds +Uncalled bet (1250) returned to s0rrow +s0rrow collected 1865 from pot +*** SUMMARY *** +Total pot 1865 | Rake 0 +Board [5c 2s 2d] +Seat 1: s0rrow collected (1865) +Seat 2: MexicanGamb (button) folded before Flop (didn't bet) +Seat 3: madrk (small blind) folded before Flop +Seat 4: pokergott68 (big blind) folded on the Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657111180: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:50:05 ET +Table '297808375 8' 9-max Seat #3 is the button +Seat 1: s0rrow (11531 in chips) +Seat 2: MexicanGamb (5195 in chips) +Seat 3: madrk (2691 in chips) +Seat 4: pokergott68 (4765 in chips) +Seat 5: Georgy80 (10742 in chips) +Seat 6: 123456789476 (10856 in chips) +Seat 8: Djkujuhfl (21058 in chips) +Seat 9: stefan_bg_46 (6402 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +madrk: posts the ante 30 +pokergott68: posts the ante 30 +Georgy80: posts the ante 30 +123456789476: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +pokergott68: posts small blind 125 +Georgy80: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [8d Jd] +123456789476: folds +Djkujuhfl: folds +stefan_bg_46: calls 250 +s0rrow: folds +MexicanGamb: folds +madrk: calls 250 +pokergott68: calls 125 +Georgy80: checks +*** FLOP *** [5s 9c Qd] +pokergott68: checks +Georgy80: checks +stefan_bg_46: checks +madrk: checks +*** TURN *** [5s 9c Qd] [9h] +pokergott68: checks +Georgy80: checks +stefan_bg_46: checks +madrk: checks +*** RIVER *** [5s 9c Qd 9h] [Jh] +pokergott68: checks +Georgy80: checks +stefan_bg_46: checks +madrk: checks +*** SHOW DOWN *** +pokergott68: shows [4s 6s] (a pair of Nines) +Georgy80: mucks hand +stefan_bg_46: shows [7d 7c] (two pair, Nines and Sevens) +madrk: shows [Th 8h] (a straight, Eight to Queen) +madrk collected 1240 from pot +*** SUMMARY *** +Total pot 1240 | Rake 0 +Board [5s 9c Qd 9h Jh] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: madrk (button) showed [Th 8h] and won (1240) with a straight, Eight to Queen +Seat 4: pokergott68 (small blind) showed [4s 6s] and lost with a pair of Nines +Seat 5: Georgy80 (big blind) mucked [3d 4d] +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 showed [7d 7c] and lost with two pair, Nines and Sevens + + + +PokerStars Game #47657138068: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:50:47 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (11501 in chips) +Seat 2: MexicanGamb (5165 in chips) +Seat 3: madrk (3651 in chips) +Seat 4: pokergott68 (4485 in chips) +Seat 5: Georgy80 (10462 in chips) +Seat 6: 123456789476 (10826 in chips) +Seat 8: Djkujuhfl (21028 in chips) +Seat 9: stefan_bg_46 (6122 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +madrk: posts the ante 30 +pokergott68: posts the ante 30 +Georgy80: posts the ante 30 +123456789476: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +Georgy80: posts small blind 125 +123456789476: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [8h Th] +Djkujuhfl: raises 375 to 625 +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +madrk: folds +pokergott68: calls 625 +Georgy80: folds +123456789476: folds +*** FLOP *** [5h 4h 4s] +Djkujuhfl: bets 750 +pokergott68: folds +Uncalled bet (750) returned to Djkujuhfl +Djkujuhfl collected 1865 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 1865 | Rake 0 +Board [5h 4h 4s] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: madrk folded before Flop (didn't bet) +Seat 4: pokergott68 (button) folded on the Flop +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: 123456789476 (big blind) folded before Flop +Seat 8: Djkujuhfl collected (1865) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657171385: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:51:40 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (11471 in chips) +Seat 2: MexicanGamb (5135 in chips) +Seat 3: madrk (3621 in chips) +Seat 4: pokergott68 (3830 in chips) +Seat 5: Georgy80 (10307 in chips) +Seat 6: 123456789476 (10546 in chips) +Seat 8: Djkujuhfl (22238 in chips) +Seat 9: stefan_bg_46 (6092 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +madrk: posts the ante 30 +pokergott68: posts the ante 30 +Georgy80: posts the ante 30 +123456789476: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +123456789476: posts small blind 125 +Djkujuhfl: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [Qd 5d] +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +madrk: folds +pokergott68: folds +Georgy80: folds +123456789476: folds +Uncalled bet (125) returned to Djkujuhfl +Djkujuhfl collected 490 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 490 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: madrk folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 6: 123456789476 (small blind) folded before Flop +Seat 8: Djkujuhfl (big blind) collected (490) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657183750: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:51:59 ET +Table '297808375 8' 9-max Seat #6 is the button +Seat 1: s0rrow (11441 in chips) +Seat 2: MexicanGamb (5105 in chips) +Seat 3: madrk (3591 in chips) +Seat 4: pokergott68 (3800 in chips) +Seat 5: Georgy80 (10277 in chips) +Seat 6: 123456789476 (10391 in chips) +Seat 8: Djkujuhfl (22573 in chips) +Seat 9: stefan_bg_46 (6062 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +madrk: posts the ante 30 +pokergott68: posts the ante 30 +Georgy80: posts the ante 30 +123456789476: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +Djkujuhfl: posts small blind 125 +stefan_bg_46: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [7h Kh] +s0rrow: folds +MexicanGamb: folds +madrk: folds +pokergott68: folds +Georgy80: calls 250 +123456789476: calls 250 +Djkujuhfl: folds +stefan_bg_46: checks +*** FLOP *** [8d 3h 2c] +stefan_bg_46: bets 250 +Georgy80: folds +123456789476: calls 250 +*** TURN *** [8d 3h 2c] [5c] +stefan_bg_46: bets 500 +123456789476: calls 500 +*** RIVER *** [8d 3h 2c 5c] [Jc] +stefan_bg_46: bets 1500 +123456789476: folds +Uncalled bet (1500) returned to stefan_bg_46 +stefan_bg_46 collected 2615 from pot +*** SUMMARY *** +Total pot 2615 | Rake 0 +Board [8d 3h 2c 5c Jc] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: madrk folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded on the Flop +Seat 6: 123456789476 (button) folded on the River +Seat 8: Djkujuhfl (small blind) folded before Flop +Seat 9: stefan_bg_46 (big blind) collected (2615) + + + +PokerStars Game #47657213923: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:52:46 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (11411 in chips) +Seat 2: MexicanGamb (5075 in chips) +Seat 3: madrk (3561 in chips) +Seat 4: pokergott68 (3770 in chips) +Seat 5: Georgy80 (9997 in chips) +Seat 6: 123456789476 (9361 in chips) +Seat 8: Djkujuhfl (22418 in chips) +Seat 9: stefan_bg_46 (7647 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +madrk: posts the ante 30 +pokergott68: posts the ante 30 +Georgy80: posts the ante 30 +123456789476: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +stefan_bg_46: posts small blind 125 +s0rrow: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [5s 9h] +MexicanGamb: folds +madrk: folds +pokergott68: folds +Georgy80: raises 350 to 600 +123456789476: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +Uncalled bet (350) returned to Georgy80 +Georgy80 collected 865 from pot +Georgy80: doesn't show hand +*** SUMMARY *** +Total pot 865 | Rake 0 +Seat 1: s0rrow (big blind) folded before Flop +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: madrk folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 collected (865) +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47657227914: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XI (125/250) - 2010/08/03 12:53:08 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (11131 in chips) +Seat 2: MexicanGamb (5045 in chips) +Seat 3: madrk (3531 in chips) +Seat 4: pokergott68 (3740 in chips) +Seat 5: Georgy80 (10582 in chips) +Seat 6: 123456789476 (9331 in chips) +Seat 8: Djkujuhfl (22388 in chips) +Seat 9: stefan_bg_46 (7492 in chips) +s0rrow: posts the ante 30 +MexicanGamb: posts the ante 30 +madrk: posts the ante 30 +pokergott68: posts the ante 30 +Georgy80: posts the ante 30 +123456789476: posts the ante 30 +Djkujuhfl: posts the ante 30 +stefan_bg_46: posts the ante 30 +s0rrow: posts small blind 125 +MexicanGamb: posts big blind 250 +*** HOLE CARDS *** +Dealt to s0rrow [2h Ah] +madrk: calls 250 +pokergott68: calls 250 +Georgy80: folds +123456789476: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: calls 125 +MexicanGamb: checks +*** FLOP *** [5s Ks 6d] +s0rrow: checks +MexicanGamb: checks +madrk: checks +pokergott68: checks +*** TURN *** [5s Ks 6d] [8d] +s0rrow: checks +MexicanGamb: checks +madrk: checks +pokergott68: checks +*** RIVER *** [5s Ks 6d 8d] [Jd] +s0rrow: checks +MexicanGamb: checks +madrk: checks +pokergott68: checks +*** SHOW DOWN *** +s0rrow: shows [2h Ah] (high card Ace) +MexicanGamb: shows [3s Ad] (high card Ace) +madrk: shows [3c 3h] (a pair of Threes) +pokergott68: shows [Tc Jc] (a pair of Jacks) +pokergott68 collected 1240 from pot +*** SUMMARY *** +Total pot 1240 | Rake 0 +Board [5s Ks 6d 8d Jd] +Seat 1: s0rrow (small blind) showed [2h Ah] and lost with high card Ace +Seat 2: MexicanGamb (big blind) showed [3s Ad] and lost with high card Ace +Seat 3: madrk showed [3c 3h] and lost with a pair of Threes +Seat 4: pokergott68 showed [Tc Jc] and won (1240) with a pair of Jacks +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47657435279: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XII (150/300) - 2010/08/03 12:59:49 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (10851 in chips) +Seat 2: MexicanGamb (4765 in chips) +Seat 3: madrk (3251 in chips) +Seat 4: pokergott68 (4700 in chips) +Seat 5: Georgy80 (10552 in chips) +Seat 6: 123456789476 (9301 in chips) +Seat 8: Djkujuhfl (22358 in chips) +Seat 9: stefan_bg_46 (7462 in chips) +s0rrow: posts the ante 40 +MexicanGamb: posts the ante 40 +madrk: posts the ante 40 +pokergott68: posts the ante 40 +Georgy80: posts the ante 40 +123456789476: posts the ante 40 +Djkujuhfl: posts the ante 40 +stefan_bg_46: posts the ante 40 +MexicanGamb: posts small blind 150 +madrk: posts big blind 300 +*** HOLE CARDS *** +Dealt to s0rrow [7h 5d] +pokergott68: folds +Georgy80: folds +123456789476: folds +Djkujuhfl: raises 425 to 725 +stefan_bg_46: folds +s0rrow: raises 1075 to 1800 +MexicanGamb: folds +madrk: folds +Djkujuhfl has timed out +Djkujuhfl: folds +Uncalled bet (1075) returned to s0rrow +Djkujuhfl is sitting out +s0rrow collected 2220 from pot +Djkujuhfl has returned +*** SUMMARY *** +Total pot 2220 | Rake 0 +Seat 1: s0rrow (button) collected (2220) +Seat 2: MexicanGamb (small blind) folded before Flop +Seat 3: madrk (big blind) folded before Flop +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657489543: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XII (150/300) - 2010/08/03 13:01:20 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: s0rrow (12306 in chips) +Seat 2: MexicanGamb (4575 in chips) +Seat 3: madrk (2911 in chips) +Seat 4: pokergott68 (4660 in chips) +Seat 5: Georgy80 (10512 in chips) +Seat 6: 123456789476 (9261 in chips) +Seat 8: Djkujuhfl (21593 in chips) +Seat 9: stefan_bg_46 (7422 in chips) +s0rrow: posts the ante 40 +MexicanGamb: posts the ante 40 +madrk: posts the ante 40 +pokergott68: posts the ante 40 +Georgy80: posts the ante 40 +123456789476: posts the ante 40 +Djkujuhfl: posts the ante 40 +stefan_bg_46: posts the ante 40 +madrk: posts small blind 150 +pokergott68: posts big blind 300 +*** HOLE CARDS *** +Dealt to s0rrow [9c 7c] +Georgy80: folds +123456789476: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: raises 600 to 900 +MexicanGamb: folds +madrk: folds +pokergott68: folds +Uncalled bet (600) returned to s0rrow +s0rrow collected 1070 from pot +*** SUMMARY *** +Total pot 1070 | Rake 0 +Seat 1: s0rrow collected (1070) +Seat 2: MexicanGamb (button) folded before Flop (didn't bet) +Seat 3: madrk (small blind) folded before Flop +Seat 4: pokergott68 (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657511858: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XII (150/300) - 2010/08/03 13:01:55 ET +Table '297808375 8' 9-max Seat #3 is the button +Seat 1: s0rrow (13036 in chips) +Seat 2: MexicanGamb (4535 in chips) +Seat 3: madrk (2721 in chips) +Seat 4: pokergott68 (4320 in chips) +Seat 5: Georgy80 (10472 in chips) +Seat 6: 123456789476 (9221 in chips) +Seat 8: Djkujuhfl (21553 in chips) +Seat 9: stefan_bg_46 (7382 in chips) +s0rrow: posts the ante 40 +MexicanGamb: posts the ante 40 +madrk: posts the ante 40 +pokergott68: posts the ante 40 +Georgy80: posts the ante 40 +123456789476: posts the ante 40 +Djkujuhfl: posts the ante 40 +stefan_bg_46: posts the ante 40 +pokergott68: posts small blind 150 +Georgy80: posts big blind 300 +*** HOLE CARDS *** +Dealt to s0rrow [7s Jd] +123456789476: calls 300 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: calls 300 +madrk: raises 2381 to 2681 and is all-in +pokergott68: folds +Georgy80: folds +123456789476: folds +MexicanGamb: folds +Uncalled bet (2381) returned to madrk +madrk collected 1670 from pot +madrk: doesn't show hand +*** SUMMARY *** +Total pot 1670 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop +Seat 3: madrk (button) collected (1670) +Seat 4: pokergott68 (small blind) folded before Flop +Seat 5: Georgy80 (big blind) folded before Flop +Seat 6: 123456789476 folded before Flop +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657535544: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XII (150/300) - 2010/08/03 13:02:33 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (12996 in chips) +Seat 2: MexicanGamb (4195 in chips) +Seat 3: madrk (4051 in chips) +Seat 4: pokergott68 (4130 in chips) +Seat 5: Georgy80 (10132 in chips) +Seat 6: 123456789476 (8881 in chips) +Seat 8: Djkujuhfl (21513 in chips) +Seat 9: stefan_bg_46 (7342 in chips) +s0rrow: posts the ante 40 +MexicanGamb: posts the ante 40 +madrk: posts the ante 40 +pokergott68: posts the ante 40 +Georgy80: posts the ante 40 +123456789476: posts the ante 40 +Djkujuhfl: posts the ante 40 +stefan_bg_46: posts the ante 40 +Georgy80: posts small blind 150 +123456789476: posts big blind 300 +*** HOLE CARDS *** +Dealt to s0rrow [5s Ks] +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: raises 600 to 900 +madrk: folds +pokergott68: calls 900 +Georgy80: folds +123456789476: folds +*** FLOP *** [8s 3h 5h] +MexicanGamb: checks +pokergott68: checks +*** TURN *** [8s 3h 5h] [Qh] +MexicanGamb: bets 900 +pokergott68: folds +Uncalled bet (900) returned to MexicanGamb +MexicanGamb collected 2570 from pot +MexicanGamb: doesn't show hand +*** SUMMARY *** +Total pot 2570 | Rake 0 +Board [8s 3h 5h Qh] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb collected (2570) +Seat 3: madrk folded before Flop (didn't bet) +Seat 4: pokergott68 (button) folded on the Turn +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: 123456789476 (big blind) folded before Flop +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657556286: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XII (150/300) - 2010/08/03 13:03:05 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (12956 in chips) +Seat 2: MexicanGamb (5825 in chips) +Seat 3: madrk (4011 in chips) +Seat 4: pokergott68 (3190 in chips) +Seat 5: Georgy80 (9942 in chips) +Seat 6: 123456789476 (8541 in chips) +Seat 8: Djkujuhfl (21473 in chips) +Seat 9: stefan_bg_46 (7302 in chips) +s0rrow: posts the ante 40 +MexicanGamb: posts the ante 40 +madrk: posts the ante 40 +pokergott68: posts the ante 40 +Georgy80: posts the ante 40 +123456789476: posts the ante 40 +Djkujuhfl: posts the ante 40 +stefan_bg_46: posts the ante 40 +123456789476: posts small blind 150 +Djkujuhfl: posts big blind 300 +*** HOLE CARDS *** +Dealt to s0rrow [7h Tc] +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +madrk: folds +pokergott68: folds +Georgy80: raises 600 to 900 +123456789476: folds +Djkujuhfl: folds +Uncalled bet (600) returned to Georgy80 +Georgy80 collected 1070 from pot +Georgy80: doesn't show hand +*** SUMMARY *** +Total pot 1070 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: madrk folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) collected (1070) +Seat 6: 123456789476 (small blind) folded before Flop +Seat 8: Djkujuhfl (big blind) folded before Flop +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657593528: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XII (150/300) - 2010/08/03 13:04:03 ET +Table '297808375 8' 9-max Seat #6 is the button +Seat 1: s0rrow (12916 in chips) +Seat 2: MexicanGamb (5785 in chips) +Seat 3: madrk (3971 in chips) +Seat 4: pokergott68 (3150 in chips) +Seat 5: Georgy80 (10672 in chips) +Seat 6: 123456789476 (8351 in chips) +Seat 8: Djkujuhfl (21133 in chips) +Seat 9: stefan_bg_46 (7262 in chips) +s0rrow: posts the ante 40 +MexicanGamb: posts the ante 40 +madrk: posts the ante 40 +pokergott68: posts the ante 40 +Georgy80: posts the ante 40 +123456789476: posts the ante 40 +Djkujuhfl: posts the ante 40 +stefan_bg_46: posts the ante 40 +Djkujuhfl: posts small blind 150 +stefan_bg_46: posts big blind 300 +*** HOLE CARDS *** +Dealt to s0rrow [6c 5h] +s0rrow: folds +MexicanGamb: folds +madrk: folds +pokergott68: folds +Georgy80: folds +123456789476: folds +Djkujuhfl: raises 600 to 900 +stefan_bg_46: folds +Uncalled bet (600) returned to Djkujuhfl +Djkujuhfl collected 920 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 920 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: madrk folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 (button) folded before Flop (didn't bet) +Seat 8: Djkujuhfl (small blind) collected (920) +Seat 9: stefan_bg_46 (big blind) folded before Flop + + + +PokerStars Game #47657626557: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XII (150/300) - 2010/08/03 13:04:50 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (12876 in chips) +Seat 2: MexicanGamb (5745 in chips) +Seat 3: madrk (3931 in chips) +Seat 4: pokergott68 (3110 in chips) +Seat 5: Georgy80 (10632 in chips) +Seat 6: 123456789476 (8311 in chips) +Seat 8: Djkujuhfl (21713 in chips) +Seat 9: stefan_bg_46 (6922 in chips) +s0rrow: posts the ante 40 +MexicanGamb: posts the ante 40 +madrk: posts the ante 40 +pokergott68: posts the ante 40 +Georgy80: posts the ante 40 +123456789476: posts the ante 40 +Djkujuhfl: posts the ante 40 +stefan_bg_46: posts the ante 40 +stefan_bg_46: posts small blind 150 +s0rrow: posts big blind 300 +*** HOLE CARDS *** +Dealt to s0rrow [6h 9s] +MexicanGamb: folds +madrk: folds +pokergott68: folds +Georgy80: folds +123456789476: raises 300 to 600 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +Uncalled bet (300) returned to 123456789476 +123456789476 collected 1070 from pot +*** SUMMARY *** +Total pot 1070 | Rake 0 +Seat 1: s0rrow (big blind) folded before Flop +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: madrk folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 collected (1070) +Seat 8: Djkujuhfl (button) folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47657644189: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XII (150/300) - 2010/08/03 13:05:16 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (12536 in chips) +Seat 2: MexicanGamb (5705 in chips) +Seat 3: madrk (3891 in chips) +Seat 4: pokergott68 (3070 in chips) +Seat 5: Georgy80 (10592 in chips) +Seat 6: 123456789476 (9041 in chips) +Seat 8: Djkujuhfl (21673 in chips) +Seat 9: stefan_bg_46 (6732 in chips) +s0rrow: posts the ante 40 +MexicanGamb: posts the ante 40 +madrk: posts the ante 40 +pokergott68: posts the ante 40 +Georgy80: posts the ante 40 +123456789476: posts the ante 40 +Djkujuhfl: posts the ante 40 +stefan_bg_46: posts the ante 40 +s0rrow: posts small blind 150 +MexicanGamb: posts big blind 300 +*** HOLE CARDS *** +Dealt to s0rrow [6s Ac] +madrk: folds +pokergott68: folds +Georgy80: folds +123456789476: calls 300 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: calls 150 +MexicanGamb: checks +*** FLOP *** [Jc Kh 5s] +s0rrow: checks +MexicanGamb: checks +123456789476: bets 300 +s0rrow: folds +MexicanGamb: raises 600 to 900 +123456789476: folds +Uncalled bet (600) returned to MexicanGamb +MexicanGamb collected 1820 from pot +MexicanGamb: doesn't show hand +*** SUMMARY *** +Total pot 1820 | Rake 0 +Board [Jc Kh 5s] +Seat 1: s0rrow (small blind) folded on the Flop +Seat 2: MexicanGamb (big blind) collected (1820) +Seat 3: madrk folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 folded on the Flop +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47657685969: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XII (150/300) - 2010/08/03 13:06:18 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (12196 in chips) +Seat 2: MexicanGamb (6885 in chips) +Seat 3: madrk (3851 in chips) +Seat 4: pokergott68 (3030 in chips) +Seat 5: Georgy80 (10552 in chips) +Seat 6: 123456789476 (8401 in chips) +Seat 8: Djkujuhfl (21633 in chips) +Seat 9: stefan_bg_46 (6692 in chips) +s0rrow: posts the ante 40 +MexicanGamb: posts the ante 40 +madrk: posts the ante 40 +pokergott68: posts the ante 40 +Georgy80: posts the ante 40 +123456789476: posts the ante 40 +Djkujuhfl: posts the ante 40 +stefan_bg_46: posts the ante 40 +MexicanGamb: posts small blind 150 +madrk: posts big blind 300 +*** HOLE CARDS *** +Dealt to s0rrow [Ah 3d] +pokergott68: folds +Georgy80: folds +123456789476: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: raises 600 to 900 +MexicanGamb: calls 750 +madrk: folds +*** FLOP *** [7h 8h 7c] +MexicanGamb: checks +s0rrow: checks +*** TURN *** [7h 8h 7c] [Ad] +MexicanGamb: checks +s0rrow: bets 2100 +MexicanGamb: folds +Uncalled bet (2100) returned to s0rrow +s0rrow collected 2420 from pot +*** SUMMARY *** +Total pot 2420 | Rake 0 +Board [7h 8h 7c Ad] +Seat 1: s0rrow (button) collected (2420) +Seat 2: MexicanGamb (small blind) folded on the Turn +Seat 3: madrk (big blind) folded before Flop +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657716576: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XII (150/300) - 2010/08/03 13:07:02 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: s0rrow (13676 in chips) +Seat 2: MexicanGamb (5945 in chips) +Seat 3: madrk (3511 in chips) +Seat 4: pokergott68 (2990 in chips) +Seat 5: Georgy80 (10512 in chips) +Seat 6: 123456789476 (8361 in chips) +Seat 8: Djkujuhfl (21593 in chips) +Seat 9: stefan_bg_46 (6652 in chips) +s0rrow: posts the ante 40 +MexicanGamb: posts the ante 40 +madrk: posts the ante 40 +pokergott68: posts the ante 40 +Georgy80: posts the ante 40 +123456789476: posts the ante 40 +Djkujuhfl: posts the ante 40 +stefan_bg_46: posts the ante 40 +madrk: posts small blind 150 +pokergott68: posts big blind 300 +*** HOLE CARDS *** +Dealt to s0rrow [6h 9h] +Georgy80: folds +123456789476: folds +Djkujuhfl: raises 900 to 1200 +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +madrk: folds +pokergott68: calls 900 +*** FLOP *** [7c 3c 5d] +pokergott68: checks +Djkujuhfl: checks +*** TURN *** [7c 3c 5d] [7d] +pokergott68: checks +Djkujuhfl: checks +*** RIVER *** [7c 3c 5d 7d] [Ks] +pokergott68: checks +Djkujuhfl: checks +*** SHOW DOWN *** +pokergott68: shows [Qs Jh] (a pair of Sevens) +Djkujuhfl: shows [Ah Jc] (a pair of Sevens - Ace kicker) +Djkujuhfl collected 2870 from pot +*** SUMMARY *** +Total pot 2870 | Rake 0 +Board [7c 3c 5d 7d Ks] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb (button) folded before Flop (didn't bet) +Seat 3: madrk (small blind) folded before Flop +Seat 4: pokergott68 (big blind) showed [Qs Jh] and lost with a pair of Sevens +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl showed [Ah Jc] and won (2870) with a pair of Sevens +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657761659: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XII (150/300) - 2010/08/03 13:08:08 ET +Table '297808375 8' 9-max Seat #3 is the button +Seat 1: s0rrow (13636 in chips) +Seat 2: MexicanGamb (5905 in chips) +Seat 3: madrk (3321 in chips) +Seat 4: pokergott68 (1750 in chips) +Seat 5: Georgy80 (10472 in chips) +Seat 6: 123456789476 (8321 in chips) +Seat 8: Djkujuhfl (23223 in chips) +Seat 9: stefan_bg_46 (6612 in chips) +s0rrow: posts the ante 40 +MexicanGamb: posts the ante 40 +madrk: posts the ante 40 +pokergott68: posts the ante 40 +Georgy80: posts the ante 40 +123456789476: posts the ante 40 +Djkujuhfl: posts the ante 40 +stefan_bg_46: posts the ante 40 +pokergott68: posts small blind 150 +Georgy80: posts big blind 300 +*** HOLE CARDS *** +Dealt to s0rrow [4d Ah] +123456789476: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: raises 600 to 900 +madrk: folds +pokergott68: folds +Georgy80: folds +Uncalled bet (600) returned to MexicanGamb +MexicanGamb collected 1070 from pot +MexicanGamb: doesn't show hand +*** SUMMARY *** +Total pot 1070 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb collected (1070) +Seat 3: madrk (button) folded before Flop (didn't bet) +Seat 4: pokergott68 (small blind) folded before Flop +Seat 5: Georgy80 (big blind) folded before Flop +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657774523: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XII (150/300) - 2010/08/03 13:08:27 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (13596 in chips) +Seat 2: MexicanGamb (6635 in chips) +Seat 3: madrk (3281 in chips) +Seat 4: pokergott68 (1560 in chips) +Seat 5: Georgy80 (10132 in chips) +Seat 6: 123456789476 (8281 in chips) +Seat 8: Djkujuhfl (23183 in chips) +Seat 9: stefan_bg_46 (6572 in chips) +s0rrow: posts the ante 40 +MexicanGamb: posts the ante 40 +madrk: posts the ante 40 +pokergott68: posts the ante 40 +Georgy80: posts the ante 40 +123456789476: posts the ante 40 +Djkujuhfl: posts the ante 40 +stefan_bg_46: posts the ante 40 +Georgy80: posts small blind 150 +123456789476: posts big blind 300 +*** HOLE CARDS *** +Dealt to s0rrow [5c 4h] +Djkujuhfl: folds +stefan_bg_46: calls 300 +s0rrow: folds +MexicanGamb: raises 995 to 1295 +madrk: folds +pokergott68: folds +Georgy80: folds +123456789476: folds +stefan_bg_46: folds +Uncalled bet (995) returned to MexicanGamb +MexicanGamb collected 1370 from pot +MexicanGamb: doesn't show hand +*** SUMMARY *** +Total pot 1370 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb collected (1370) +Seat 3: madrk folded before Flop (didn't bet) +Seat 4: pokergott68 (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: 123456789476 (big blind) folded before Flop +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop + + + +PokerStars Game #47657798709: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIII (200/400) - 2010/08/03 13:09:02 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (13556 in chips) +Seat 2: MexicanGamb (7665 in chips) +Seat 3: madrk (3241 in chips) +Seat 4: pokergott68 (1520 in chips) +Seat 5: Georgy80 (9942 in chips) +Seat 6: 123456789476 (7941 in chips) +Seat 8: Djkujuhfl (23143 in chips) +Seat 9: stefan_bg_46 (6232 in chips) +s0rrow: posts the ante 50 +MexicanGamb: posts the ante 50 +madrk: posts the ante 50 +pokergott68: posts the ante 50 +Georgy80: posts the ante 50 +123456789476: posts the ante 50 +Djkujuhfl: posts the ante 50 +stefan_bg_46: posts the ante 50 +123456789476: posts small blind 200 +Djkujuhfl: posts big blind 400 +*** HOLE CARDS *** +Dealt to s0rrow [Jd 9s] +stefan_bg_46: raises 400 to 800 +s0rrow: folds +MexicanGamb: folds +madrk: raises 2391 to 3191 and is all-in +pokergott68: folds +Georgy80: folds +123456789476: folds +Djkujuhfl: folds +stefan_bg_46: calls 2391 +*** FLOP *** [4h 8d 2d] +madrk said, "nh" +*** TURN *** [4h 8d 2d] [Jc] +*** RIVER *** [4h 8d 2d Jc] [6s] +*** SHOW DOWN *** +stefan_bg_46: shows [Ks Kc] (a pair of Kings) +madrk: shows [Td Th] (a pair of Tens) +stefan_bg_46 collected 7382 from pot +stefan_bg_46 wins the $0.25 bounty for eliminating madrk +madrk finished the tournament in 15th place +*** SUMMARY *** +Total pot 7382 | Rake 0 +Board [4h 8d 2d Jc 6s] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 3: madrk showed [Td Th] and lost with a pair of Tens +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 6: 123456789476 (small blind) folded before Flop +Seat 8: Djkujuhfl (big blind) folded before Flop +Seat 9: stefan_bg_46 showed [Ks Kc] and won (7382) with a pair of Kings + + + +PokerStars Game #47657821857: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIII (200/400) - 2010/08/03 13:09:36 ET +Table '297808375 8' 9-max Seat #6 is the button +Seat 1: s0rrow (13506 in chips) +Seat 2: MexicanGamb (7615 in chips) +Seat 4: pokergott68 (1470 in chips) +Seat 5: Georgy80 (9892 in chips) +Seat 6: 123456789476 (7691 in chips) +Seat 8: Djkujuhfl (22693 in chips) +Seat 9: stefan_bg_46 (10373 in chips) +s0rrow: posts the ante 50 +MexicanGamb: posts the ante 50 +pokergott68: posts the ante 50 +Georgy80: posts the ante 50 +123456789476: posts the ante 50 +Djkujuhfl: posts the ante 50 +stefan_bg_46: posts the ante 50 +Djkujuhfl: posts small blind 200 +stefan_bg_46: posts big blind 400 +*** HOLE CARDS *** +Dealt to s0rrow [2h 5d] +s0rrow: folds +MexicanGamb: folds +pokergott68: folds +Georgy80: folds +123456789476: folds +Djkujuhfl: calls 200 +stefan_bg_46: checks +*** FLOP *** [7d 3d 9s] +Djkujuhfl: checks +stefan_bg_46: checks +*** TURN *** [7d 3d 9s] [4d] +Djkujuhfl: bets 400 +stefan_bg_46: folds +Uncalled bet (400) returned to Djkujuhfl +Djkujuhfl collected 1150 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 1150 | Rake 0 +Board [7d 3d 9s 4d] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 (button) folded before Flop (didn't bet) +Seat 8: Djkujuhfl (small blind) collected (1150) +Seat 9: stefan_bg_46 (big blind) folded on the Turn + + + +PokerStars Game #47657856528: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIII (200/400) - 2010/08/03 13:10:27 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (13456 in chips) +Seat 2: MexicanGamb (7565 in chips) +Seat 4: pokergott68 (1420 in chips) +Seat 5: Georgy80 (9842 in chips) +Seat 6: 123456789476 (7641 in chips) +Seat 8: Djkujuhfl (23393 in chips) +Seat 9: stefan_bg_46 (9923 in chips) +s0rrow: posts the ante 50 +MexicanGamb: posts the ante 50 +pokergott68: posts the ante 50 +Georgy80: posts the ante 50 +123456789476: posts the ante 50 +Djkujuhfl: posts the ante 50 +stefan_bg_46: posts the ante 50 +stefan_bg_46: posts small blind 200 +s0rrow: posts big blind 400 +*** HOLE CARDS *** +Dealt to s0rrow [As Jd] +MexicanGamb: folds +pokergott68: raises 970 to 1370 and is all-in +Georgy80: folds +123456789476: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: calls 970 +*** FLOP *** [Td 2c Ks] +*** TURN *** [Td 2c Ks] [8c] +*** RIVER *** [Td 2c Ks 8c] [Th] +*** SHOW DOWN *** +s0rrow: shows [As Jd] (a pair of Tens) +pokergott68: shows [Ah Jh] (a pair of Tens) +s0rrow collected 1645 from pot +pokergott68 collected 1645 from pot +*** SUMMARY *** +Total pot 3290 | Rake 0 +Board [Td 2c Ks 8c Th] +Seat 1: s0rrow (big blind) showed [As Jd] and won (1645) with a pair of Tens +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: pokergott68 showed [Ah Jh] and won (1645) with a pair of Tens +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47657892885: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIII (200/400) - 2010/08/03 13:11:20 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (13681 in chips) +Seat 2: MexicanGamb (7515 in chips) +Seat 4: pokergott68 (1645 in chips) +Seat 5: Georgy80 (9792 in chips) +Seat 6: 123456789476 (7591 in chips) +Seat 8: Djkujuhfl (23343 in chips) +Seat 9: stefan_bg_46 (9673 in chips) +s0rrow: posts the ante 50 +MexicanGamb: posts the ante 50 +pokergott68: posts the ante 50 +Georgy80: posts the ante 50 +123456789476: posts the ante 50 +Djkujuhfl: posts the ante 50 +stefan_bg_46: posts the ante 50 +s0rrow: posts small blind 200 +MexicanGamb: posts big blind 400 +*** HOLE CARDS *** +Dealt to s0rrow [4d Qc] +pokergott68: folds +Georgy80: calls 400 +123456789476: calls 400 +Djkujuhfl: folds +stefan_bg_46: raises 400 to 800 +s0rrow: folds +MexicanGamb: folds +Georgy80: calls 400 +123456789476: calls 400 +*** FLOP *** [4c 5h 8c] +Georgy80: checks +123456789476: bets 800 +stefan_bg_46: folds +Georgy80: calls 800 +*** TURN *** [4c 5h 8c] [Kd] +Georgy80: checks +123456789476: checks +*** RIVER *** [4c 5h 8c Kd] [3s] +Georgy80: checks +123456789476: checks +*** SHOW DOWN *** +Georgy80: shows [Jh Ad] (high card Ace) +123456789476: mucks hand +Georgy80 collected 4950 from pot +*** SUMMARY *** +Total pot 4950 | Rake 0 +Board [4c 5h 8c Kd 3s] +Seat 1: s0rrow (small blind) folded before Flop +Seat 2: MexicanGamb (big blind) folded before Flop +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 showed [Jh Ad] and won (4950) with high card Ace +Seat 6: 123456789476 mucked [6s Ac] +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (button) folded on the Flop + + + +PokerStars Game #47657924822: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIII (200/400) - 2010/08/03 13:12:06 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (13431 in chips) +Seat 2: MexicanGamb (7065 in chips) +Seat 4: pokergott68 (1595 in chips) +Seat 5: Georgy80 (13092 in chips) +Seat 6: 123456789476 (5941 in chips) +Seat 8: Djkujuhfl (23293 in chips) +Seat 9: stefan_bg_46 (8823 in chips) +s0rrow: posts the ante 50 +MexicanGamb: posts the ante 50 +pokergott68: posts the ante 50 +Georgy80: posts the ante 50 +123456789476: posts the ante 50 +Djkujuhfl: posts the ante 50 +stefan_bg_46: posts the ante 50 +MexicanGamb: posts small blind 200 +pokergott68: posts big blind 400 +*** HOLE CARDS *** +Dealt to s0rrow [4d Js] +Georgy80: folds +123456789476: calls 400 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +pokergott68: checks +*** FLOP *** [As 7d 8d] +pokergott68: checks +123456789476: bets 400 +pokergott68: folds +Uncalled bet (400) returned to 123456789476 +123456789476 collected 1350 from pot +*** SUMMARY *** +Total pot 1350 | Rake 0 +Board [As 7d 8d] +Seat 1: s0rrow (button) folded before Flop (didn't bet) +Seat 2: MexicanGamb (small blind) folded before Flop +Seat 4: pokergott68 (big blind) folded on the Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 collected (1350) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657949881: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIII (200/400) - 2010/08/03 13:12:44 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: s0rrow (13381 in chips) +Seat 2: MexicanGamb (6815 in chips) +Seat 4: pokergott68 (1145 in chips) +Seat 5: Georgy80 (13042 in chips) +Seat 6: 123456789476 (6841 in chips) +Seat 8: Djkujuhfl (23243 in chips) +Seat 9: stefan_bg_46 (8773 in chips) +s0rrow: posts the ante 50 +MexicanGamb: posts the ante 50 +pokergott68: posts the ante 50 +Georgy80: posts the ante 50 +123456789476: posts the ante 50 +Djkujuhfl: posts the ante 50 +stefan_bg_46: posts the ante 50 +pokergott68: posts small blind 200 +Georgy80: posts big blind 400 +*** HOLE CARDS *** +Dealt to s0rrow [8h 9h] +123456789476: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: raises 800 to 1200 +MexicanGamb: folds +pokergott68: folds +Georgy80: folds +Uncalled bet (800) returned to s0rrow +s0rrow collected 1350 from pot +*** SUMMARY *** +Total pot 1350 | Rake 0 +Seat 1: s0rrow collected (1350) +Seat 2: MexicanGamb (button) folded before Flop (didn't bet) +Seat 4: pokergott68 (small blind) folded before Flop +Seat 5: Georgy80 (big blind) folded before Flop +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47657963281: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIII (200/400) - 2010/08/03 13:13:03 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (14281 in chips) +Seat 2: MexicanGamb (6765 in chips) +Seat 4: pokergott68 (895 in chips) +Seat 5: Georgy80 (12592 in chips) +Seat 6: 123456789476 (6791 in chips) +Seat 8: Djkujuhfl (23193 in chips) +Seat 9: stefan_bg_46 (8723 in chips) +s0rrow: posts the ante 50 +MexicanGamb: posts the ante 50 +pokergott68: posts the ante 50 +Georgy80: posts the ante 50 +123456789476: posts the ante 50 +Djkujuhfl: posts the ante 50 +stefan_bg_46: posts the ante 50 +Georgy80: posts small blind 200 +123456789476: posts big blind 400 +*** HOLE CARDS *** +Dealt to s0rrow [4d 3h] +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: raises 800 to 1200 +MexicanGamb: folds +pokergott68: folds +Georgy80: folds +123456789476: calls 800 +*** FLOP *** [Ts 3d Ks] +123456789476: bets 5541 and is all-in +s0rrow: folds +Uncalled bet (5541) returned to 123456789476 +123456789476 collected 2950 from pot +*** SUMMARY *** +Total pot 2950 | Rake 0 +Board [Ts 3d Ks] +Seat 1: s0rrow folded on the Flop +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: pokergott68 (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: 123456789476 (big blind) collected (2950) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658001297: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIII (200/400) - 2010/08/03 13:14:00 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (13031 in chips) +Seat 2: MexicanGamb (6715 in chips) +Seat 4: pokergott68 (845 in chips) +Seat 5: Georgy80 (12342 in chips) +Seat 6: 123456789476 (8491 in chips) +Seat 8: Djkujuhfl (23143 in chips) +Seat 9: stefan_bg_46 (8673 in chips) +s0rrow: posts the ante 50 +MexicanGamb: posts the ante 50 +pokergott68: posts the ante 50 +Georgy80: posts the ante 50 +123456789476: posts the ante 50 +Djkujuhfl: posts the ante 50 +stefan_bg_46: posts the ante 50 +123456789476: posts small blind 200 +Djkujuhfl: posts big blind 400 +*** HOLE CARDS *** +Dealt to s0rrow [7d Qh] +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +pokergott68: folds +Georgy80: folds +123456789476: folds +Uncalled bet (200) returned to Djkujuhfl +Djkujuhfl collected 750 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 750 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 6: 123456789476 (small blind) folded before Flop +Seat 8: Djkujuhfl (big blind) collected (750) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658026359: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIII (200/400) - 2010/08/03 13:14:37 ET +Table '297808375 8' 9-max Seat #6 is the button +Seat 1: s0rrow (12981 in chips) +Seat 2: MexicanGamb (6665 in chips) +Seat 4: pokergott68 (795 in chips) +Seat 5: Georgy80 (12292 in chips) +Seat 6: 123456789476 (8241 in chips) +Seat 8: Djkujuhfl (23643 in chips) +Seat 9: stefan_bg_46 (8623 in chips) +s0rrow: posts the ante 50 +MexicanGamb: posts the ante 50 +pokergott68: posts the ante 50 +Georgy80: posts the ante 50 +123456789476: posts the ante 50 +Djkujuhfl: posts the ante 50 +stefan_bg_46: posts the ante 50 +Djkujuhfl: posts small blind 200 +stefan_bg_46: posts big blind 400 +*** HOLE CARDS *** +Dealt to s0rrow [Td 9c] +s0rrow: folds +MexicanGamb: folds +pokergott68: folds +Georgy80: folds +123456789476: raises 400 to 800 +Djkujuhfl: folds +stefan_bg_46: calls 400 +*** FLOP *** [9d 7s 7h] +stefan_bg_46: checks +123456789476: bets 800 +stefan_bg_46: folds +Uncalled bet (800) returned to 123456789476 +123456789476 collected 2150 from pot +*** SUMMARY *** +Total pot 2150 | Rake 0 +Board [9d 7s 7h] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 (button) collected (2150) +Seat 8: Djkujuhfl (small blind) folded before Flop +Seat 9: stefan_bg_46 (big blind) folded on the Flop + + + +PokerStars Game #47658054747: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIII (200/400) - 2010/08/03 13:15:19 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (12931 in chips) +Seat 2: MexicanGamb (6615 in chips) +Seat 4: pokergott68 (745 in chips) +Seat 5: Georgy80 (12242 in chips) +Seat 6: 123456789476 (9541 in chips) +Seat 8: Djkujuhfl (23393 in chips) +Seat 9: stefan_bg_46 (7773 in chips) +s0rrow: posts the ante 50 +MexicanGamb: posts the ante 50 +pokergott68: posts the ante 50 +Georgy80: posts the ante 50 +123456789476: posts the ante 50 +Djkujuhfl: posts the ante 50 +stefan_bg_46: posts the ante 50 +stefan_bg_46: posts small blind 200 +s0rrow: posts big blind 400 +*** HOLE CARDS *** +Dealt to s0rrow [2h 8s] +MexicanGamb: folds +pokergott68: folds +Georgy80: folds +123456789476: folds +Djkujuhfl: folds +stefan_bg_46: calls 200 +s0rrow: checks +*** FLOP *** [9d Jd Td] +stefan_bg_46: checks +s0rrow: bets 400 +stefan_bg_46: folds +Uncalled bet (400) returned to s0rrow +s0rrow collected 1150 from pot +*** SUMMARY *** +Total pot 1150 | Rake 0 +Board [9d Jd Td] +Seat 1: s0rrow (big blind) collected (1150) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (small blind) folded on the Flop + + + +PokerStars Game #47658082255: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIII (200/400) - 2010/08/03 13:16:00 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (13631 in chips) +Seat 2: MexicanGamb (6565 in chips) +Seat 4: pokergott68 (695 in chips) +Seat 5: Georgy80 (12192 in chips) +Seat 6: 123456789476 (9491 in chips) +Seat 8: Djkujuhfl (23343 in chips) +Seat 9: stefan_bg_46 (7323 in chips) +s0rrow: posts the ante 50 +MexicanGamb: posts the ante 50 +pokergott68: posts the ante 50 +Georgy80: posts the ante 50 +123456789476: posts the ante 50 +Djkujuhfl: posts the ante 50 +stefan_bg_46: posts the ante 50 +s0rrow: posts small blind 200 +MexicanGamb: posts big blind 400 +*** HOLE CARDS *** +Dealt to s0rrow [3d As] +pokergott68: folds +Georgy80: folds +123456789476: calls 400 +Djkujuhfl: calls 400 +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: checks +*** FLOP *** [Qc 2d 6c] +MexicanGamb: checks +123456789476: bets 800 +Djkujuhfl: folds +MexicanGamb: folds +Uncalled bet (800) returned to 123456789476 +123456789476 collected 1750 from pot +*** SUMMARY *** +Total pot 1750 | Rake 0 +Board [Qc 2d 6c] +Seat 1: s0rrow (small blind) folded before Flop +Seat 2: MexicanGamb (big blind) folded on the Flop +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 collected (1750) +Seat 8: Djkujuhfl folded on the Flop +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47658105879: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIII (200/400) - 2010/08/03 13:16:36 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (13381 in chips) +Seat 2: MexicanGamb (6115 in chips) +Seat 4: pokergott68 (645 in chips) +Seat 5: Georgy80 (12142 in chips) +Seat 6: 123456789476 (10791 in chips) +Seat 8: Djkujuhfl (22893 in chips) +Seat 9: stefan_bg_46 (7273 in chips) +s0rrow: posts the ante 50 +MexicanGamb: posts the ante 50 +pokergott68: posts the ante 50 +Georgy80: posts the ante 50 +123456789476: posts the ante 50 +Djkujuhfl: posts the ante 50 +stefan_bg_46: posts the ante 50 +MexicanGamb: posts small blind 200 +pokergott68: posts big blind 400 +*** HOLE CARDS *** +Dealt to s0rrow [Js 9c] +Georgy80: calls 400 +123456789476: raises 400 to 800 +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: folds +MexicanGamb: folds +pokergott68: folds +Georgy80: calls 400 +*** FLOP *** [Tc 7h 4h] +Georgy80: checks +123456789476: checks +*** TURN *** [Tc 7h 4h] [4s] +Georgy80: bets 1600 +123456789476: folds +Uncalled bet (1600) returned to Georgy80 +Georgy80 collected 2550 from pot +Georgy80: doesn't show hand +*** SUMMARY *** +Total pot 2550 | Rake 0 +Board [Tc 7h 4h 4s] +Seat 1: s0rrow (button) folded before Flop (didn't bet) +Seat 2: MexicanGamb (small blind) folded before Flop +Seat 4: pokergott68 (big blind) folded before Flop +Seat 5: Georgy80 collected (2550) +Seat 6: 123456789476 folded on the Turn +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658174164: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIII (200/400) - 2010/08/03 13:18:17 ET +Table '297808375 8' 9-max Seat #2 is the button +Seat 1: s0rrow (13331 in chips) +Seat 2: MexicanGamb (5865 in chips) +Seat 4: pokergott68 (195 in chips) +Seat 5: Georgy80 (13842 in chips) +Seat 6: 123456789476 (9941 in chips) +Seat 8: Djkujuhfl (22843 in chips) +Seat 9: stefan_bg_46 (7223 in chips) +s0rrow: posts the ante 50 +MexicanGamb: posts the ante 50 +pokergott68: posts the ante 50 +Georgy80: posts the ante 50 +123456789476: posts the ante 50 +Djkujuhfl: posts the ante 50 +stefan_bg_46: posts the ante 50 +pokergott68: posts small blind 145 and is all-in +Georgy80: posts big blind 400 +*** HOLE CARDS *** +Dealt to s0rrow [4h 8c] +123456789476: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: calls 400 +MexicanGamb: folds +Georgy80: checks +*** FLOP *** [8h Jc Qd] +Georgy80: checks +s0rrow: checks +*** TURN *** [8h Jc Qd] [4d] +Georgy80: checks +s0rrow: bets 400 +Georgy80: folds +Uncalled bet (400) returned to s0rrow +*** RIVER *** [8h Jc Qd 4d] [9d] +*** SHOW DOWN *** +s0rrow: shows [4h 8c] (two pair, Eights and Fours) +s0rrow collected 510 from side pot +pokergott68: shows [5h Td] (a straight, Eight to Queen) +pokergott68 collected 785 from main pot +*** SUMMARY *** +Total pot 1295 Main pot 785. Side pot 510. | Rake 0 +Board [8h Jc Qd 4d 9d] +Seat 1: s0rrow showed [4h 8c] and won (510) with two pair, Eights and Fours +Seat 2: MexicanGamb (button) folded before Flop (didn't bet) +Seat 4: pokergott68 (small blind) showed [5h Td] and won (785) with a straight, Eight to Queen +Seat 5: Georgy80 (big blind) folded on the Turn +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658203143: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:19:00 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (13391 in chips) +Seat 2: MexicanGamb (5815 in chips) +Seat 4: pokergott68 (785 in chips) +Seat 5: Georgy80 (13392 in chips) +Seat 6: 123456789476 (9891 in chips) +Seat 8: Djkujuhfl (22793 in chips) +Seat 9: stefan_bg_46 (7173 in chips) +s0rrow: posts the ante 60 +MexicanGamb: posts the ante 60 +pokergott68: posts the ante 60 +Georgy80: posts the ante 60 +123456789476: posts the ante 60 +Djkujuhfl: posts the ante 60 +stefan_bg_46: posts the ante 60 +Georgy80: posts small blind 250 +123456789476: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [Qs 9d] +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: raises 1000 to 1500 +MexicanGamb: folds +pokergott68: calls 725 and is all-in +Georgy80: folds +123456789476: folds +Uncalled bet (775) returned to s0rrow +*** FLOP *** [Ac 9s Jc] +*** TURN *** [Ac 9s Jc] [4c] +*** RIVER *** [Ac 9s Jc 4c] [Kh] +*** SHOW DOWN *** +s0rrow: shows [Qs 9d] (a pair of Nines) +pokergott68: shows [As 3s] (a pair of Aces) +pokergott68 collected 2620 from pot +*** SUMMARY *** +Total pot 2620 | Rake 0 +Board [Ac 9s Jc 4c Kh] +Seat 1: s0rrow showed [Qs 9d] and lost with a pair of Nines +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: pokergott68 (button) showed [As 3s] and won (2620) with a pair of Aces +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: 123456789476 (big blind) folded before Flop +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658224354: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:19:31 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (12606 in chips) +Seat 2: MexicanGamb (5755 in chips) +Seat 4: pokergott68 (2620 in chips) +Seat 5: Georgy80 (13082 in chips) +Seat 6: 123456789476 (9331 in chips) +Seat 8: Djkujuhfl (22733 in chips) +Seat 9: stefan_bg_46 (7113 in chips) +s0rrow: posts the ante 60 +MexicanGamb: posts the ante 60 +pokergott68: posts the ante 60 +Georgy80: posts the ante 60 +123456789476: posts the ante 60 +Djkujuhfl: posts the ante 60 +stefan_bg_46: posts the ante 60 +123456789476: posts small blind 250 +Djkujuhfl: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [5s Qc] +stefan_bg_46: raises 500 to 1000 +s0rrow: folds +MexicanGamb: folds +pokergott68: folds +Georgy80: folds +123456789476: calls 750 +Djkujuhfl: calls 500 +*** FLOP *** [7s Ks Js] +123456789476: bets 500 +Djkujuhfl: calls 500 +stefan_bg_46: raises 1500 to 2000 +123456789476: folds +Djkujuhfl: folds +Uncalled bet (1500) returned to stefan_bg_46 +stefan_bg_46 collected 4920 from pot +*** SUMMARY *** +Total pot 4920 | Rake 0 +Board [7s Ks Js] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 6: 123456789476 (small blind) folded on the Flop +Seat 8: Djkujuhfl (big blind) folded on the Flop +Seat 9: stefan_bg_46 collected (4920) + + + +PokerStars Game #47658274214: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:20:46 ET +Table '297808375 8' 9-max Seat #6 is the button +Seat 1: s0rrow (12546 in chips) +Seat 2: MexicanGamb (5695 in chips) +Seat 4: pokergott68 (2560 in chips) +Seat 5: Georgy80 (13022 in chips) +Seat 6: 123456789476 (7771 in chips) +Seat 8: Djkujuhfl (21173 in chips) +Seat 9: stefan_bg_46 (10473 in chips) +s0rrow: posts the ante 60 +MexicanGamb: posts the ante 60 +pokergott68: posts the ante 60 +Georgy80: posts the ante 60 +123456789476: posts the ante 60 +Djkujuhfl: posts the ante 60 +stefan_bg_46: posts the ante 60 +Djkujuhfl: posts small blind 250 +stefan_bg_46: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [2d 7h] +s0rrow: folds +MexicanGamb: folds +pokergott68: folds +Georgy80: calls 500 +123456789476: folds +Djkujuhfl: calls 250 +stefan_bg_46: checks +*** FLOP *** [Qc 9c 7d] +Djkujuhfl: checks +stefan_bg_46: checks +Georgy80: bets 800 +Djkujuhfl: folds +stefan_bg_46: folds +Uncalled bet (800) returned to Georgy80 +Georgy80 collected 1920 from pot +Georgy80: doesn't show hand +*** SUMMARY *** +Total pot 1920 | Rake 0 +Board [Qc 9c 7d] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: MexicanGamb folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 collected (1920) +Seat 6: 123456789476 (button) folded before Flop (didn't bet) +Seat 8: Djkujuhfl (small blind) folded on the Flop +Seat 9: stefan_bg_46 (big blind) folded on the Flop + + + +PokerStars Game #47658305074: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:21:31 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (12486 in chips) +Seat 2: MexicanGamb (5635 in chips) +Seat 4: pokergott68 (2500 in chips) +Seat 5: Georgy80 (14382 in chips) +Seat 6: 123456789476 (7711 in chips) +Seat 8: Djkujuhfl (20613 in chips) +Seat 9: stefan_bg_46 (9913 in chips) +s0rrow: posts the ante 60 +MexicanGamb: posts the ante 60 +pokergott68: posts the ante 60 +Georgy80: posts the ante 60 +123456789476: posts the ante 60 +Djkujuhfl: posts the ante 60 +stefan_bg_46: posts the ante 60 +stefan_bg_46: posts small blind 250 +s0rrow: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [5c 5s] +MexicanGamb: raises 1000 to 1500 +pokergott68: folds +Georgy80: folds +123456789476: folds +Djkujuhfl has timed out +Djkujuhfl: folds +Djkujuhfl is sitting out +stefan_bg_46: folds +Djkujuhfl has returned +s0rrow: raises 10926 to 12426 and is all-in +MexicanGamb: calls 4075 and is all-in +Uncalled bet (6851) returned to s0rrow +*** FLOP *** [Tc 5h 7d] +*** TURN *** [Tc 5h 7d] [As] +*** RIVER *** [Tc 5h 7d As] [6c] +*** SHOW DOWN *** +s0rrow: shows [5c 5s] (three of a kind, Fives) +MexicanGamb: shows [Qc Kc] (high card Ace) +s0rrow collected 11820 from pot +s0rrow wins the $0.25 bounty for eliminating MexicanGamb +MexicanGamb finished the tournament in 13th place +*** SUMMARY *** +Total pot 11820 | Rake 0 +Board [Tc 5h 7d As 6c] +Seat 1: s0rrow (big blind) showed [5c 5s] and won (11820) with three of a kind, Fives +Seat 2: MexicanGamb showed [Qc Kc] and lost with high card Ace +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47658350278: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:22:37 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (18671 in chips) +Seat 4: pokergott68 (2440 in chips) +Seat 5: Georgy80 (14322 in chips) +Seat 6: 123456789476 (7651 in chips) +Seat 8: Djkujuhfl (20553 in chips) +Seat 9: stefan_bg_46 (9603 in chips) +s0rrow: posts the ante 60 +pokergott68: posts the ante 60 +Georgy80: posts the ante 60 +123456789476: posts the ante 60 +Djkujuhfl: posts the ante 60 +stefan_bg_46: posts the ante 60 +s0rrow: posts small blind 250 +pokergott68: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [Qs 4s] +Georgy80: folds +123456789476: folds +Djkujuhfl: raises 1500 to 2000 +stefan_bg_46: folds +s0rrow: folds +pokergott68: folds +Uncalled bet (1500) returned to Djkujuhfl +Djkujuhfl collected 1610 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 1610 | Rake 0 +Seat 1: s0rrow (small blind) folded before Flop +Seat 4: pokergott68 (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl collected (1610) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47658362133: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:22:55 ET +Table '297808375 8' 9-max Seat #1 is the button +Seat 1: s0rrow (18361 in chips) +Seat 4: pokergott68 (1880 in chips) +Seat 5: Georgy80 (14262 in chips) +Seat 6: 123456789476 (7591 in chips) +Seat 8: Djkujuhfl (21603 in chips) +Seat 9: stefan_bg_46 (9543 in chips) +s0rrow: posts the ante 60 +pokergott68: posts the ante 60 +Georgy80: posts the ante 60 +123456789476: posts the ante 60 +Djkujuhfl: posts the ante 60 +stefan_bg_46: posts the ante 60 +pokergott68: posts small blind 250 +Georgy80: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [6s 4s] +123456789476: folds +Djkujuhfl: raises 1000 to 1500 +stefan_bg_46: folds +s0rrow: folds +pokergott68: folds +Georgy80: folds +Uncalled bet (1000) returned to Djkujuhfl +Djkujuhfl collected 1610 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 1610 | Rake 0 +Seat 1: s0rrow (button) folded before Flop (didn't bet) +Seat 4: pokergott68 (small blind) folded before Flop +Seat 5: Georgy80 (big blind) folded before Flop +Seat 6: 123456789476 folded before Flop (didn't bet) +Seat 8: Djkujuhfl collected (1610) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658379474: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:23:20 ET +Table '297808375 8' 9-max Seat #4 is the button +Seat 1: s0rrow (18301 in chips) +Seat 4: pokergott68 (1570 in chips) +Seat 5: Georgy80 (13702 in chips) +Seat 6: 123456789476 (7531 in chips) +Seat 8: Djkujuhfl (22653 in chips) +Seat 9: stefan_bg_46 (9483 in chips) +s0rrow: posts the ante 60 +pokergott68: posts the ante 60 +Georgy80: posts the ante 60 +123456789476: posts the ante 60 +Djkujuhfl: posts the ante 60 +stefan_bg_46: posts the ante 60 +Georgy80: posts small blind 250 +123456789476: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [Ah Kc] +Djkujuhfl: raises 1000 to 1500 +stefan_bg_46: folds +s0rrow: raises 2000 to 3500 +pokergott68: folds +Georgy80: folds +123456789476: folds +Djkujuhfl: calls 2000 +*** FLOP *** [Th Ad Qh] +Djkujuhfl: bets 4000 +s0rrow: raises 10741 to 14741 and is all-in +Djkujuhfl: folds +Uncalled bet (10741) returned to s0rrow +s0rrow collected 16110 from pot +*** SUMMARY *** +Total pot 16110 | Rake 0 +Board [Th Ad Qh] +Seat 1: s0rrow collected (16110) +Seat 4: pokergott68 (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: 123456789476 (big blind) folded before Flop +Seat 8: Djkujuhfl folded on the Flop +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658410311: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:24:06 ET +Table '297808375 8' 9-max Seat #5 is the button +Seat 1: s0rrow (26851 in chips) +Seat 4: pokergott68 (1510 in chips) +Seat 5: Georgy80 (13392 in chips) +Seat 6: 123456789476 (6971 in chips) +Seat 8: Djkujuhfl (15093 in chips) +Seat 9: stefan_bg_46 (9423 in chips) +s0rrow: posts the ante 60 +pokergott68: posts the ante 60 +Georgy80: posts the ante 60 +123456789476: posts the ante 60 +Djkujuhfl: posts the ante 60 +stefan_bg_46: posts the ante 60 +123456789476: posts small blind 250 +Djkujuhfl: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [3d 6s] +stefan_bg_46: folds +s0rrow: folds +pokergott68: folds +Georgy80: folds +123456789476: raises 500 to 1000 +Djkujuhfl: raises 14033 to 15033 and is all-in +123456789476: calls 5911 and is all-in +Uncalled bet (8122) returned to Djkujuhfl +*** FLOP *** [Kd Ts 3s] +*** TURN *** [Kd Ts 3s] [9c] +*** RIVER *** [Kd Ts 3s 9c] [8d] +*** SHOW DOWN *** +123456789476: shows [Qc 8c] (a pair of Eights) +Djkujuhfl: shows [Kc Ac] (a pair of Kings) +Djkujuhfl collected 14182 from pot +Djkujuhfl wins the $0.25 bounty for eliminating 123456789476 +123456789476 finished the tournament in 11th place and received $2.20. +*** SUMMARY *** +Total pot 14182 | Rake 0 +Board [Kd Ts 3s 9c 8d] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 6: 123456789476 (small blind) showed [Qc 8c] and lost with a pair of Eights +Seat 8: Djkujuhfl (big blind) showed [Kc Ac] and won (14182) with a pair of Kings +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658430135: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:24:35 ET +Table '297808375 8' 9-max Seat #8 is the button +Seat 1: s0rrow (26791 in chips) +Seat 4: pokergott68 (1450 in chips) +Seat 5: Georgy80 (13332 in chips) +Seat 8: Djkujuhfl (22304 in chips) +Seat 9: stefan_bg_46 (9363 in chips) +s0rrow: posts the ante 60 +pokergott68: posts the ante 60 +Georgy80: posts the ante 60 +Djkujuhfl: posts the ante 60 +stefan_bg_46: posts the ante 60 +stefan_bg_46: posts small blind 250 +s0rrow: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [4c 3c] +pokergott68: folds +Georgy80: folds +Djkujuhfl: raises 1000 to 1500 +stefan_bg_46: calls 1250 +s0rrow: calls 1000 +*** FLOP *** [Ac 7c 9s] +stefan_bg_46: checks +s0rrow: checks +Djkujuhfl: bets 4000 +stefan_bg_46: folds +s0rrow: calls 4000 +*** TURN *** [Ac 7c 9s] [9h] +s0rrow: checks +Djkujuhfl: checks +*** RIVER *** [Ac 7c 9s 9h] [5c] +s0rrow: bets 7500 +Djkujuhfl: calls 7500 +*** SHOW DOWN *** +s0rrow: shows [4c 3c] (a flush, Ace high) +Djkujuhfl: mucks hand +s0rrow collected 27800 from pot +*** SUMMARY *** +Total pot 27800 | Rake 0 +Board [Ac 7c 9s 9h 5c] +Seat 1: s0rrow (big blind) showed [4c 3c] and won (27800) with a flush, Ace high +Seat 4: pokergott68 folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 8: Djkujuhfl (button) mucked [Kd Ah] +Seat 9: stefan_bg_46 (small blind) folded on the Flop + + + +PokerStars Game #47658474121: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:25:40 ET +Table '297808375 8' 9-max Seat #9 is the button +Seat 1: s0rrow (41531 in chips) +Seat 4: pokergott68 (1390 in chips) +Seat 5: Georgy80 (13272 in chips) +Seat 8: Djkujuhfl (9244 in chips) +Seat 9: stefan_bg_46 (7803 in chips) +s0rrow: posts the ante 60 +pokergott68: posts the ante 60 +Georgy80: posts the ante 60 +Djkujuhfl: posts the ante 60 +stefan_bg_46: posts the ante 60 +s0rrow: posts small blind 250 +pokergott68: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [8h Kd] +Georgy80: folds +Djkujuhfl: folds +stefan_bg_46: folds +s0rrow: raises 1000 to 1500 +pokergott68: calls 830 and is all-in +Uncalled bet (170) returned to s0rrow +*** FLOP *** [5c 6h 8s] +*** TURN *** [5c 6h 8s] [2h] +*** RIVER *** [5c 6h 8s 2h] [5d] +*** SHOW DOWN *** +s0rrow: shows [8h Kd] (two pair, Eights and Fives) +pokergott68: shows [As 9h] (a pair of Fives) +s0rrow collected 2960 from pot +*** SUMMARY *** +Total pot 2960 | Rake 0 +Board [5c 6h 8s 2h 5d] +Seat 1: s0rrow (small blind) showed [8h Kd] and won (2960) with two pair, Eights and Fives +Seat 4: pokergott68 (big blind) showed [As 9h] and lost with a pair of Fives +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 8: Djkujuhfl folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47658505979: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:26:27 ET +Table '297808375 7' 9-max Seat #4 is the button +Seat 1: s0rrow (43101 in chips) +Seat 2: darsOK (48112 in chips) +Seat 3: sptsfan56 (17456 in chips) +Seat 4: MoIsonEx (19516 in chips) +Seat 5: Georgy80 (13212 in chips) out of hand (moved from another table into small blind) +Seat 6: seric1975 (6860 in chips) +Seat 7: Djkujuhfl (9184 in chips) +Seat 8: AALuckyBucks (14816 in chips) +Seat 9: stefan_bg_46 (7743 in chips) +s0rrow: posts the ante 60 +darsOK: posts the ante 60 +sptsfan56: posts the ante 60 +MoIsonEx: posts the ante 60 +seric1975: posts the ante 60 +Djkujuhfl: posts the ante 60 +AALuckyBucks: posts the ante 60 +stefan_bg_46: posts the ante 60 +seric1975: posts small blind 250 +Djkujuhfl: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [Jc 7s] +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: folds +darsOK: calls 500 +sptsfan56: folds +MoIsonEx: folds +seric1975: calls 250 +Djkujuhfl: checks +*** FLOP *** [Jh 9c 2s] +seric1975: checks +Djkujuhfl: bets 1000 +darsOK: folds +seric1975: folds +Uncalled bet (1000) returned to Djkujuhfl +Djkujuhfl collected 1980 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 1980 | Rake 0 +Board [Jh 9c 2s] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK folded on the Flop +Seat 3: sptsfan56 folded before Flop (didn't bet) +Seat 4: MoIsonEx (button) folded before Flop (didn't bet) +Seat 6: seric1975 (small blind) folded on the Flop +Seat 7: Djkujuhfl (big blind) collected (1980) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658536512: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:27:12 ET +Table '297808375 7' 9-max Seat #6 is the button +Seat 1: s0rrow (43041 in chips) +Seat 2: darsOK (47552 in chips) +Seat 3: sptsfan56 (17396 in chips) +Seat 4: MoIsonEx (19456 in chips) +Seat 5: Georgy80 (13212 in chips) +Seat 6: seric1975 (6300 in chips) +Seat 7: Djkujuhfl (10604 in chips) +Seat 8: AALuckyBucks (14756 in chips) +Seat 9: stefan_bg_46 (7683 in chips) +s0rrow: posts the ante 60 +darsOK: posts the ante 60 +sptsfan56: posts the ante 60 +MoIsonEx: posts the ante 60 +Georgy80: posts the ante 60 +seric1975: posts the ante 60 +Djkujuhfl: posts the ante 60 +AALuckyBucks: posts the ante 60 +stefan_bg_46: posts the ante 60 +Djkujuhfl: posts small blind 250 +AALuckyBucks: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [Qh 9c] +stefan_bg_46: folds +s0rrow: folds +darsOK: raises 3000 to 3500 +sptsfan56: folds +MoIsonEx: folds +Georgy80: folds +seric1975: folds +Djkujuhfl: folds +AALuckyBucks: folds +Uncalled bet (3000) returned to darsOK +darsOK collected 1790 from pot +darsOK: doesn't show hand +*** SUMMARY *** +Total pot 1790 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK collected (1790) +Seat 3: sptsfan56 folded before Flop (didn't bet) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 (button) folded before Flop (didn't bet) +Seat 7: Djkujuhfl (small blind) folded before Flop +Seat 8: AALuckyBucks (big blind) folded before Flop +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658557149: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:27:42 ET +Table '297808375 7' 9-max Seat #7 is the button +Seat 1: s0rrow (42981 in chips) +Seat 2: darsOK (48782 in chips) +Seat 3: sptsfan56 (17336 in chips) +Seat 4: MoIsonEx (19396 in chips) +Seat 5: Georgy80 (13152 in chips) +Seat 6: seric1975 (6240 in chips) +Seat 7: Djkujuhfl (10294 in chips) +Seat 8: AALuckyBucks (14196 in chips) +Seat 9: stefan_bg_46 (7623 in chips) +s0rrow: posts the ante 60 +darsOK: posts the ante 60 +sptsfan56: posts the ante 60 +MoIsonEx: posts the ante 60 +Georgy80: posts the ante 60 +seric1975: posts the ante 60 +Djkujuhfl: posts the ante 60 +AALuckyBucks: posts the ante 60 +stefan_bg_46: posts the ante 60 +AALuckyBucks: posts small blind 250 +stefan_bg_46: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [9h 8d] +s0rrow: folds +darsOK: raises 500 to 1000 +sptsfan56: calls 1000 +MoIsonEx: folds +Georgy80: folds +seric1975: folds +Djkujuhfl: folds +AALuckyBucks: folds +stefan_bg_46: folds +*** FLOP *** [5d Ks Qs] +darsOK: checks +sptsfan56: bets 1500 +darsOK: calls 1500 +*** TURN *** [5d Ks Qs] [Ac] +darsOK: checks +sptsfan56: bets 3000 +darsOK: calls 3000 +*** RIVER *** [5d Ks Qs Ac] [4c] +darsOK: checks +sptsfan56: bets 6000 +darsOK: calls 6000 +*** SHOW DOWN *** +sptsfan56: shows [5h Kh] (two pair, Kings and Fives) +darsOK: shows [Th Ad] (a pair of Aces) +sptsfan56 collected 24290 from pot +*** SUMMARY *** +Total pot 24290 | Rake 0 +Board [5d Ks Qs Ac 4c] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK showed [Th Ad] and lost with a pair of Aces +Seat 3: sptsfan56 showed [5h Kh] and won (24290) with two pair, Kings and Fives +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 7: Djkujuhfl (button) folded before Flop (didn't bet) +Seat 8: AALuckyBucks (small blind) folded before Flop +Seat 9: stefan_bg_46 (big blind) folded before Flop + + + +PokerStars Game #47658591764: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XIV (250/500) - 2010/08/03 13:28:33 ET +Table '297808375 7' 9-max Seat #8 is the button +Seat 1: s0rrow (42921 in chips) +Seat 2: darsOK (37222 in chips) +Seat 3: sptsfan56 (30066 in chips) +Seat 4: MoIsonEx (19336 in chips) +Seat 5: Georgy80 (13092 in chips) +Seat 6: seric1975 (6180 in chips) +Seat 7: Djkujuhfl (10234 in chips) +Seat 8: AALuckyBucks (13886 in chips) +Seat 9: stefan_bg_46 (7063 in chips) +s0rrow: posts the ante 60 +darsOK: posts the ante 60 +sptsfan56: posts the ante 60 +MoIsonEx: posts the ante 60 +Georgy80: posts the ante 60 +seric1975: posts the ante 60 +Djkujuhfl: posts the ante 60 +AALuckyBucks: posts the ante 60 +stefan_bg_46: posts the ante 60 +stefan_bg_46: posts small blind 250 +s0rrow: posts big blind 500 +*** HOLE CARDS *** +Dealt to s0rrow [Td Ac] +darsOK: calls 500 +sptsfan56: folds +MoIsonEx: folds +Georgy80: folds +seric1975: folds +Djkujuhfl: folds +AALuckyBucks: folds +stefan_bg_46: raises 500 to 1000 +s0rrow: calls 500 +darsOK: calls 500 +*** FLOP *** [3c 3h 9h] +stefan_bg_46: checks +s0rrow: checks +darsOK: bets 4500 +stefan_bg_46: folds +s0rrow: folds +Uncalled bet (4500) returned to darsOK +darsOK collected 3540 from pot +darsOK: doesn't show hand +*** SUMMARY *** +Total pot 3540 | Rake 0 +Board [3c 3h 9h] +Seat 1: s0rrow (big blind) folded on the Flop +Seat 2: darsOK collected (3540) +Seat 3: sptsfan56 folded before Flop (didn't bet) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 7: Djkujuhfl folded before Flop (didn't bet) +Seat 8: AALuckyBucks (button) folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (small blind) folded on the Flop + + + +PokerStars Game #47658622167: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:29:18 ET +Table '297808375 7' 9-max Seat #9 is the button +Seat 1: s0rrow (41861 in chips) +Seat 2: darsOK (39702 in chips) +Seat 3: sptsfan56 (30006 in chips) +Seat 4: MoIsonEx (19276 in chips) +Seat 5: Georgy80 (13032 in chips) +Seat 6: seric1975 (6120 in chips) +Seat 7: Djkujuhfl (10174 in chips) +Seat 8: AALuckyBucks (13826 in chips) +Seat 9: stefan_bg_46 (6003 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +sptsfan56: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +s0rrow: posts small blind 300 +darsOK: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [6d 6s] +sptsfan56: folds +MoIsonEx: folds +Georgy80: folds +seric1975: folds +Djkujuhfl: folds +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: calls 300 +darsOK: checks +*** FLOP *** [9c 2h 4d] +s0rrow: checks +darsOK: bets 600 +s0rrow: calls 600 +*** TURN *** [9c 2h 4d] [7h] +s0rrow: checks +darsOK: bets 600 +s0rrow: calls 600 +*** RIVER *** [9c 2h 4d 7h] [Qs] +s0rrow: checks +darsOK: checks +*** SHOW DOWN *** +s0rrow: shows [6d 6s] (a pair of Sixes) +darsOK: mucks hand +s0rrow collected 4230 from pot +*** SUMMARY *** +Total pot 4230 | Rake 0 +Board [9c 2h 4d 7h Qs] +Seat 1: s0rrow (small blind) showed [6d 6s] and won (4230) with a pair of Sixes +Seat 2: darsOK (big blind) mucked [8c 2c] +Seat 3: sptsfan56 folded before Flop (didn't bet) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 7: Djkujuhfl folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47658653603: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:30:03 ET +Table '297808375 7' 9-max Seat #1 is the button +Seat 1: s0rrow (44221 in chips) +Seat 2: darsOK (37832 in chips) +Seat 3: sptsfan56 (29936 in chips) +Seat 4: MoIsonEx (19206 in chips) +Seat 5: Georgy80 (12962 in chips) +Seat 6: seric1975 (6050 in chips) +Seat 7: Djkujuhfl (10104 in chips) +Seat 8: AALuckyBucks (13756 in chips) +Seat 9: stefan_bg_46 (5933 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +sptsfan56: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +darsOK: posts small blind 300 +sptsfan56: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [Ad 4s] +MoIsonEx: folds +Georgy80: folds +seric1975: folds +Djkujuhfl: raises 1399 to 1999 +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: folds +darsOK: folds +sptsfan56: folds +Uncalled bet (1399) returned to Djkujuhfl +Djkujuhfl collected 2130 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 2130 | Rake 0 +Seat 1: s0rrow (button) folded before Flop (didn't bet) +Seat 2: darsOK (small blind) folded before Flop +Seat 3: sptsfan56 (big blind) folded before Flop +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 7: Djkujuhfl collected (2130) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658674375: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:30:33 ET +Table '297808375 7' 9-max Seat #2 is the button +Seat 1: s0rrow (44151 in chips) +Seat 2: darsOK (37462 in chips) +Seat 3: sptsfan56 (29266 in chips) +Seat 4: MoIsonEx (19136 in chips) +Seat 5: Georgy80 (12892 in chips) +Seat 6: seric1975 (5980 in chips) +Seat 7: Djkujuhfl (11564 in chips) +Seat 8: AALuckyBucks (13686 in chips) +Seat 9: stefan_bg_46 (5863 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +sptsfan56: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +sptsfan56: posts small blind 300 +MoIsonEx: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [Ah 8d] +Georgy80: folds +seric1975: folds +Djkujuhfl: folds +AALuckyBucks: folds +stefan_bg_46: raises 600 to 1200 +s0rrow: folds +darsOK: folds +sptsfan56: folds +MoIsonEx: folds +Uncalled bet (600) returned to stefan_bg_46 +stefan_bg_46 collected 2130 from pot +*** SUMMARY *** +Total pot 2130 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK (button) folded before Flop (didn't bet) +Seat 3: sptsfan56 (small blind) folded before Flop +Seat 4: MoIsonEx (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 7: Djkujuhfl folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 collected (2130) + + + +PokerStars Game #47658686418: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:30:50 ET +Table '297808375 7' 9-max Seat #3 is the button +Seat 1: s0rrow (44081 in chips) +Seat 2: darsOK (37392 in chips) +Seat 3: sptsfan56 (28896 in chips) +Seat 4: MoIsonEx (18466 in chips) +Seat 5: Georgy80 (12822 in chips) +Seat 6: seric1975 (5910 in chips) +Seat 7: Djkujuhfl (11494 in chips) +Seat 8: AALuckyBucks (13616 in chips) +Seat 9: stefan_bg_46 (7323 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +sptsfan56: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +MoIsonEx: posts small blind 300 +Georgy80: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [8d 9h] +seric1975: folds +Djkujuhfl: folds +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: folds +darsOK: folds +sptsfan56: folds +MoIsonEx: folds +Uncalled bet (300) returned to Georgy80 +Georgy80 collected 1230 from pot +Georgy80: doesn't show hand +*** SUMMARY *** +Total pot 1230 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK folded before Flop (didn't bet) +Seat 3: sptsfan56 (button) folded before Flop (didn't bet) +Seat 4: MoIsonEx (small blind) folded before Flop +Seat 5: Georgy80 (big blind) collected (1230) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 7: Djkujuhfl folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658701573: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:31:13 ET +Table '297808375 7' 9-max Seat #4 is the button +Seat 1: s0rrow (44011 in chips) +Seat 2: darsOK (37322 in chips) +Seat 3: sptsfan56 (28826 in chips) +Seat 4: MoIsonEx (18096 in chips) +Seat 5: Georgy80 (13682 in chips) +Seat 6: seric1975 (5840 in chips) +Seat 7: Djkujuhfl (11424 in chips) +Seat 8: AALuckyBucks (13546 in chips) +Seat 9: stefan_bg_46 (7253 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +sptsfan56: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +Georgy80: posts small blind 300 +seric1975: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [3c 4c] +Djkujuhfl: folds +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: folds +darsOK: folds +sptsfan56: raises 1800 to 2400 +MoIsonEx: folds +Georgy80: folds +seric1975: folds +Uncalled bet (1800) returned to sptsfan56 +sptsfan56 collected 2130 from pot +sptsfan56: doesn't show hand +*** SUMMARY *** +Total pot 2130 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK folded before Flop (didn't bet) +Seat 3: sptsfan56 collected (2130) +Seat 4: MoIsonEx (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: seric1975 (big blind) folded before Flop +Seat 7: Djkujuhfl folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658722448: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:31:42 ET +Table '297808375 7' 9-max Seat #5 is the button +Seat 1: s0rrow (43941 in chips) +Seat 2: darsOK (37252 in chips) +Seat 3: sptsfan56 (30286 in chips) +Seat 4: MoIsonEx (18026 in chips) +Seat 5: Georgy80 (13312 in chips) +Seat 6: seric1975 (5170 in chips) +Seat 7: Djkujuhfl (11354 in chips) +Seat 8: AALuckyBucks (13476 in chips) +Seat 9: stefan_bg_46 (7183 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +sptsfan56: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +seric1975: posts small blind 300 +Djkujuhfl: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [Ah Qc] +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: raises 1200 to 1800 +darsOK: folds +sptsfan56: calls 1800 +MoIsonEx: folds +Georgy80: folds +seric1975: folds +Djkujuhfl: folds +*** FLOP *** [Js Kh Ts] +s0rrow: checks +sptsfan56: bets 3000 +s0rrow: raises 5400 to 8400 +sptsfan56: raises 20016 to 28416 and is all-in +s0rrow: calls 20016 +*** TURN *** [Js Kh Ts] [2d] +*** RIVER *** [Js Kh Ts 2d] [3h] +*** SHOW DOWN *** +s0rrow: shows [Ah Qc] (a straight, Ten to Ace) +sptsfan56: shows [Tc Jc] (two pair, Jacks and Tens) +s0rrow collected 61962 from pot +s0rrow wins the $0.25 bounty for eliminating sptsfan56 +sptsfan56 finished the tournament in 9th place and received $2.70. +*** SUMMARY *** +Total pot 61962 | Rake 0 +Board [Js Kh Ts 2d 3h] +Seat 1: s0rrow showed [Ah Qc] and won (61962) with a straight, Ten to Ace +Seat 2: darsOK folded before Flop (didn't bet) +Seat 3: sptsfan56 showed [Tc Jc] and lost with two pair, Jacks and Tens +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 6: seric1975 (small blind) folded before Flop +Seat 7: Djkujuhfl (big blind) folded before Flop +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658761782: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:32:39 ET +Table '297808375 7' 9-max Seat #6 is the button +Seat 1: s0rrow (75617 in chips) +Seat 2: darsOK (37182 in chips) +Seat 4: MoIsonEx (17956 in chips) +Seat 5: Georgy80 (13242 in chips) +Seat 6: seric1975 (4800 in chips) +Seat 7: Djkujuhfl (10684 in chips) +Seat 8: AALuckyBucks (13406 in chips) +Seat 9: stefan_bg_46 (7113 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +Djkujuhfl: posts small blind 300 +AALuckyBucks: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [7s 4d] +stefan_bg_46: folds +s0rrow: folds +darsOK said, "nice" +darsOK: folds +MoIsonEx: folds +Georgy80: folds +seric1975: folds +Djkujuhfl: raises 950 to 1550 +AALuckyBucks: folds +Uncalled bet (950) returned to Djkujuhfl +Djkujuhfl collected 1760 from pot +Djkujuhfl: doesn't show hand +*** SUMMARY *** +Total pot 1760 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK folded before Flop (didn't bet) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 (button) folded before Flop (didn't bet) +Seat 7: Djkujuhfl (small blind) collected (1760) +Seat 8: AALuckyBucks (big blind) folded before Flop +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658780867: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:33:07 ET +Table '297808375 7' 9-max Seat #7 is the button +Seat 1: s0rrow (75547 in chips) +Seat 2: darsOK (37112 in chips) +Seat 4: MoIsonEx (17886 in chips) +Seat 5: Georgy80 (13172 in chips) +Seat 6: seric1975 (4730 in chips) +Seat 7: Djkujuhfl (11774 in chips) +Seat 8: AALuckyBucks (12736 in chips) +Seat 9: stefan_bg_46 (7043 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +AALuckyBucks: posts small blind 300 +stefan_bg_46: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [Qh 6c] +s0rrow: folds +darsOK: raises 600 to 1200 +MoIsonEx: raises 2400 to 3600 +Georgy80: folds +seric1975: folds +Djkujuhfl: folds +AALuckyBucks: folds +stefan_bg_46: folds +darsOK: calls 2400 +*** FLOP *** [5d Jd 4c] +darsOK: checks +MoIsonEx: bets 14216 and is all-in +darsOK: folds +Uncalled bet (14216) returned to MoIsonEx +MoIsonEx collected 8660 from pot +MoIsonEx: doesn't show hand +*** SUMMARY *** +Total pot 8660 | Rake 0 +Board [5d Jd 4c] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK folded on the Flop +Seat 4: MoIsonEx collected (8660) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 7: Djkujuhfl (button) folded before Flop (didn't bet) +Seat 8: AALuckyBucks (small blind) folded before Flop +Seat 9: stefan_bg_46 (big blind) folded before Flop + + + +PokerStars Game #47658806411: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:33:44 ET +Table '297808375 7' 9-max Seat #8 is the button +Seat 1: s0rrow (75477 in chips) +Seat 2: darsOK (33442 in chips) +Seat 4: MoIsonEx (22876 in chips) +Seat 5: Georgy80 (13102 in chips) +Seat 6: seric1975 (4660 in chips) +Seat 7: Djkujuhfl (11704 in chips) +Seat 8: AALuckyBucks (12366 in chips) +Seat 9: stefan_bg_46 (6373 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +stefan_bg_46: posts small blind 300 +s0rrow: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [2s 3h] +darsOK: raises 1200 to 1800 +MoIsonEx: folds +Georgy80: folds +seric1975: folds +Djkujuhfl: folds +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: folds +Uncalled bet (1200) returned to darsOK +darsOK collected 2060 from pot +*** SUMMARY *** +Total pot 2060 | Rake 0 +Seat 1: s0rrow (big blind) folded before Flop +Seat 2: darsOK collected (2060) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 7: Djkujuhfl folded before Flop (didn't bet) +Seat 8: AALuckyBucks (button) folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47658817059: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:34:00 ET +Table '297808375 7' 9-max Seat #9 is the button +Seat 1: s0rrow (74807 in chips) +Seat 2: darsOK (34832 in chips) +Seat 4: MoIsonEx (22806 in chips) +Seat 5: Georgy80 (13032 in chips) +Seat 6: seric1975 (4590 in chips) +Seat 7: Djkujuhfl (11634 in chips) +Seat 8: AALuckyBucks (12296 in chips) +Seat 9: stefan_bg_46 (6003 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +s0rrow: posts small blind 300 +darsOK: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [4c Kd] +MoIsonEx: folds +Georgy80: folds +seric1975: calls 600 +Djkujuhfl: folds +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: folds +darsOK: raises 3600 to 4200 +seric1975: folds +Uncalled bet (3600) returned to darsOK +darsOK collected 2060 from pot +*** SUMMARY *** +Total pot 2060 | Rake 0 +Seat 1: s0rrow (small blind) folded before Flop +Seat 2: darsOK (big blind) collected (2060) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop +Seat 7: Djkujuhfl folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47658835690: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:34:27 ET +Table '297808375 7' 9-max Seat #1 is the button +Seat 1: s0rrow (74437 in chips) +Seat 2: darsOK (36222 in chips) +Seat 4: MoIsonEx (22736 in chips) +Seat 5: Georgy80 (12962 in chips) +Seat 6: seric1975 (3920 in chips) +Seat 7: Djkujuhfl (11564 in chips) +Seat 8: AALuckyBucks (12226 in chips) +Seat 9: stefan_bg_46 (5933 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +darsOK: posts small blind 300 +MoIsonEx: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [8d 6s] +Georgy80: folds +seric1975: folds +Djkujuhfl: folds +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: folds +darsOK: calls 300 +MoIsonEx: checks +*** FLOP *** [4c Ts 9c] +darsOK: bets 600 +MoIsonEx: folds +Uncalled bet (600) returned to darsOK +darsOK collected 1760 from pot +*** SUMMARY *** +Total pot 1760 | Rake 0 +Board [4c Ts 9c] +Seat 1: s0rrow (button) folded before Flop (didn't bet) +Seat 2: darsOK (small blind) collected (1760) +Seat 4: MoIsonEx (big blind) folded on the Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 7: Djkujuhfl folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658854489: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:34:55 ET +Table '297808375 7' 9-max Seat #2 is the button +Seat 1: s0rrow (74367 in chips) +Seat 2: darsOK (37312 in chips) +Seat 4: MoIsonEx (22066 in chips) +Seat 5: Georgy80 (12892 in chips) +Seat 6: seric1975 (3850 in chips) +Seat 7: Djkujuhfl (11494 in chips) +Seat 8: AALuckyBucks (12156 in chips) +Seat 9: stefan_bg_46 (5863 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +MoIsonEx: posts small blind 300 +Georgy80: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [8d Ac] +seric1975: folds +Djkujuhfl: folds +AALuckyBucks: raises 11486 to 12086 and is all-in +stefan_bg_46: folds +s0rrow: folds +darsOK: folds +MoIsonEx: folds +Georgy80: folds +Uncalled bet (11486) returned to AALuckyBucks +AALuckyBucks collected 2060 from pot +AALuckyBucks: doesn't show hand +*** SUMMARY *** +Total pot 2060 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK (button) folded before Flop (didn't bet) +Seat 4: MoIsonEx (small blind) folded before Flop +Seat 5: Georgy80 (big blind) folded before Flop +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 7: Djkujuhfl folded before Flop (didn't bet) +Seat 8: AALuckyBucks collected (2060) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658875388: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:35:19 ET +Table '297808375 7' 9-max Seat #4 is the button +Seat 1: s0rrow (74297 in chips) +Seat 2: darsOK (37242 in chips) +Seat 4: MoIsonEx (21696 in chips) +Seat 5: Georgy80 (12222 in chips) +Seat 6: seric1975 (3780 in chips) +Seat 7: Djkujuhfl (11424 in chips) +Seat 8: AALuckyBucks (13546 in chips) +Seat 9: stefan_bg_46 (5793 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +Georgy80: posts small blind 300 +seric1975: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [2c Th] +Djkujuhfl: folds +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: folds +darsOK: calls 600 +MoIsonEx: folds +Georgy80: folds +seric1975: checks +*** FLOP *** [Js 9c Td] +seric1975: checks +darsOK: checks +*** TURN *** [Js 9c Td] [Ah] +seric1975: checks +darsOK: checks +*** RIVER *** [Js 9c Td Ah] [Qs] +seric1975: checks +darsOK: bets 1200 +seric1975: folds +Uncalled bet (1200) returned to darsOK +darsOK collected 2060 from pot +*** SUMMARY *** +Total pot 2060 | Rake 0 +Board [Js 9c Td Ah Qs] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK collected (2060) +Seat 4: MoIsonEx (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: seric1975 (big blind) folded on the River +Seat 7: Djkujuhfl folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47658925172: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:36:30 ET +Table '297808375 7' 9-max Seat #5 is the button +Seat 1: s0rrow (74227 in chips) +Seat 2: darsOK (38632 in chips) +Seat 4: MoIsonEx (21626 in chips) +Seat 5: Georgy80 (11852 in chips) +Seat 6: seric1975 (3110 in chips) +Seat 7: Djkujuhfl (11354 in chips) +Seat 8: AALuckyBucks (13476 in chips) +Seat 9: stefan_bg_46 (5723 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +Djkujuhfl: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +seric1975: posts small blind 300 +Djkujuhfl: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [Qs 3c] +AALuckyBucks: folds +stefan_bg_46: calls 600 +s0rrow: folds +darsOK: raises 600 to 1200 +MoIsonEx: folds +Georgy80: folds +seric1975: folds +Djkujuhfl: raises 1850 to 3050 +stefan_bg_46: folds +darsOK: calls 1850 +*** FLOP *** [Jc 3h Kh] +Djkujuhfl: checks +darsOK: bets 7200 +Djkujuhfl: raises 1034 to 8234 and is all-in +darsOK: calls 1034 +*** TURN *** [Jc 3h Kh] [4c] +*** RIVER *** [Jc 3h Kh 4c] [4d] +*** SHOW DOWN *** +Djkujuhfl: shows [Qc Qd] (two pair, Queens and Fours) +darsOK: shows [Qh Kd] (two pair, Kings and Fours) +darsOK collected 24028 from pot +darsOK wins the $0.25 bounty for eliminating Djkujuhfl +Djkujuhfl finished the tournament in 8th place and received $3.24. +*** SUMMARY *** +Total pot 24028 | Rake 0 +Board [Jc 3h Kh 4c 4d] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK showed [Qh Kd] and won (24028) with two pair, Kings and Fours +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 6: seric1975 (small blind) folded before Flop +Seat 7: Djkujuhfl (big blind) showed [Qc Qd] and lost with two pair, Queens and Fours +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop + + + +PokerStars Game #47658985166: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:37:51 ET +Table '297808375 7' 9-max Seat #6 is the button +Seat 1: s0rrow (74157 in chips) +Seat 2: darsOK (51306 in chips) +Seat 4: MoIsonEx (21556 in chips) +Seat 5: Georgy80 (11782 in chips) +Seat 6: seric1975 (2740 in chips) +Seat 8: AALuckyBucks (13406 in chips) +Seat 9: stefan_bg_46 (5053 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +AALuckyBucks: posts small blind 300 +stefan_bg_46: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [4s 4c] +s0rrow: raises 1200 to 1800 +darsOK: folds +MoIsonEx: folds +Georgy80: folds +seric1975: folds +AALuckyBucks: folds +stefan_bg_46: folds +Uncalled bet (1200) returned to s0rrow +s0rrow collected 1990 from pot +*** SUMMARY *** +Total pot 1990 | Rake 0 +Seat 1: s0rrow collected (1990) +Seat 2: darsOK folded before Flop (didn't bet) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 (button) folded before Flop (didn't bet) +Seat 8: AALuckyBucks (small blind) folded before Flop +Seat 9: stefan_bg_46 (big blind) folded before Flop + + + +PokerStars Game #47658999400: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:38:10 ET +Table '297808375 7' 9-max Seat #8 is the button +Seat 1: s0rrow (75477 in chips) +Seat 2: darsOK (51236 in chips) +Seat 4: MoIsonEx (21486 in chips) +Seat 5: Georgy80 (11712 in chips) +Seat 6: seric1975 (2670 in chips) +Seat 8: AALuckyBucks (13036 in chips) +Seat 9: stefan_bg_46 (4383 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +stefan_bg_46: posts small blind 300 +s0rrow: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [7d 3h] +darsOK: calls 600 +MoIsonEx: folds +Georgy80: folds +seric1975: folds +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: checks +*** FLOP *** [Ks Qd Kd] +s0rrow: checks +darsOK: bets 600 +s0rrow: folds +Uncalled bet (600) returned to darsOK +darsOK collected 1990 from pot +darsOK: doesn't show hand +*** SUMMARY *** +Total pot 1990 | Rake 0 +Board [Ks Qd Kd] +Seat 1: s0rrow (big blind) folded on the Flop +Seat 2: darsOK collected (1990) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 8: AALuckyBucks (button) folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47659019101: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XV (300/600) - 2010/08/03 13:38:37 ET +Table '297808375 7' 9-max Seat #9 is the button +Seat 1: s0rrow (74807 in chips) +Seat 2: darsOK (52556 in chips) +Seat 4: MoIsonEx (21416 in chips) +Seat 5: Georgy80 (11642 in chips) +Seat 6: seric1975 (2600 in chips) +Seat 8: AALuckyBucks (12966 in chips) +Seat 9: stefan_bg_46 (4013 in chips) +s0rrow: posts the ante 70 +darsOK: posts the ante 70 +MoIsonEx: posts the ante 70 +Georgy80: posts the ante 70 +seric1975: posts the ante 70 +AALuckyBucks: posts the ante 70 +stefan_bg_46: posts the ante 70 +s0rrow: posts small blind 300 +darsOK: posts big blind 600 +*** HOLE CARDS *** +Dealt to s0rrow [Ad 7h] +MoIsonEx: raises 1200 to 1800 +Georgy80: folds +seric1975: folds +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: folds +darsOK: folds +Uncalled bet (1200) returned to MoIsonEx +MoIsonEx collected 1990 from pot +MoIsonEx: doesn't show hand +*** SUMMARY *** +Total pot 1990 | Rake 0 +Seat 1: s0rrow (small blind) folded before Flop +Seat 2: darsOK (big blind) folded before Flop +Seat 4: MoIsonEx collected (1990) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47659037345: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:39:02 ET +Table '297808375 7' 9-max Seat #1 is the button +Seat 1: s0rrow (74437 in chips) +Seat 2: darsOK (51886 in chips) +Seat 4: MoIsonEx (22736 in chips) +Seat 5: Georgy80 (11572 in chips) +Seat 6: seric1975 (2530 in chips) +Seat 8: AALuckyBucks (12896 in chips) +Seat 9: stefan_bg_46 (3943 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +seric1975: posts the ante 85 +AALuckyBucks: posts the ante 85 +stefan_bg_46: posts the ante 85 +darsOK: posts small blind 350 +MoIsonEx: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [5c Qd] +Georgy80: folds +seric1975: folds +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: folds +darsOK: raises 700 to 1400 +MoIsonEx: calls 700 +*** FLOP *** [6h Ad Ts] +darsOK: bets 2800 +MoIsonEx: calls 2800 +*** TURN *** [6h Ad Ts] [Ac] +darsOK: checks +MoIsonEx: bets 4700 +darsOK: folds +Uncalled bet (4700) returned to MoIsonEx +MoIsonEx collected 8995 from pot +MoIsonEx: doesn't show hand +*** SUMMARY *** +Total pot 8995 | Rake 0 +Board [6h Ad Ts Ac] +Seat 1: s0rrow (button) folded before Flop (didn't bet) +Seat 2: darsOK (small blind) folded on the Turn +Seat 4: MoIsonEx (big blind) collected (8995) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47659067053: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:39:42 ET +Table '297808375 7' 9-max Seat #2 is the button +Seat 1: s0rrow (74352 in chips) +Seat 2: darsOK (47601 in chips) +Seat 4: MoIsonEx (27446 in chips) +Seat 5: Georgy80 (11487 in chips) +Seat 6: seric1975 (2445 in chips) +Seat 8: AALuckyBucks (12811 in chips) +Seat 9: stefan_bg_46 (3858 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +seric1975: posts the ante 85 +AALuckyBucks: posts the ante 85 +stefan_bg_46: posts the ante 85 +MoIsonEx: posts small blind 350 +Georgy80: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [7d 5d] +seric1975: folds +AALuckyBucks: raises 12026 to 12726 and is all-in +stefan_bg_46: folds +s0rrow: folds +darsOK: folds +MoIsonEx: folds +Georgy80: folds +Uncalled bet (12026) returned to AALuckyBucks +AALuckyBucks collected 2345 from pot +AALuckyBucks: doesn't show hand +*** SUMMARY *** +Total pot 2345 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK (button) folded before Flop (didn't bet) +Seat 4: MoIsonEx (small blind) folded before Flop +Seat 5: Georgy80 (big blind) folded before Flop +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 8: AALuckyBucks collected (2345) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47659091389: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:40:15 ET +Table '297808375 7' 9-max Seat #4 is the button +Seat 1: s0rrow (74267 in chips) +Seat 2: darsOK (47516 in chips) +Seat 4: MoIsonEx (27011 in chips) +Seat 5: Georgy80 (10702 in chips) +Seat 6: seric1975 (2360 in chips) +Seat 8: AALuckyBucks (14371 in chips) +Seat 9: stefan_bg_46 (3773 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +seric1975: posts the ante 85 +AALuckyBucks: posts the ante 85 +stefan_bg_46: posts the ante 85 +Georgy80: posts small blind 350 +seric1975: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [Ac Kc] +AALuckyBucks: raises 13586 to 14286 and is all-in +stefan_bg_46: folds +s0rrow: raises 13586 to 27872 +darsOK: folds +MoIsonEx: folds +Georgy80: folds +seric1975: folds +Uncalled bet (13586) returned to s0rrow +*** FLOP *** [7s 2h 6d] +*** TURN *** [7s 2h 6d] [4h] +*** RIVER *** [7s 2h 6d 4h] [4c] +*** SHOW DOWN *** +AALuckyBucks: shows [Ts Th] (two pair, Tens and Fours) +s0rrow: shows [Ac Kc] (a pair of Fours) +AALuckyBucks collected 30217 from pot +*** SUMMARY *** +Total pot 30217 | Rake 0 +Board [7s 2h 6d 4h 4c] +Seat 1: s0rrow showed [Ac Kc] and lost with a pair of Fours +Seat 2: darsOK folded before Flop (didn't bet) +Seat 4: MoIsonEx (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: seric1975 (big blind) folded before Flop +Seat 8: AALuckyBucks showed [Ts Th] and won (30217) with two pair, Tens and Fours +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47659116072: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:40:49 ET +Table '297808375 7' 9-max Seat #5 is the button +Seat 1: s0rrow (59896 in chips) +Seat 2: darsOK (47431 in chips) +Seat 4: MoIsonEx (26926 in chips) +Seat 5: Georgy80 (10267 in chips) +Seat 6: seric1975 (1575 in chips) +Seat 8: AALuckyBucks (30217 in chips) +Seat 9: stefan_bg_46 (3688 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +seric1975: posts the ante 85 +AALuckyBucks: posts the ante 85 +stefan_bg_46: posts the ante 85 +seric1975: posts small blind 350 +AALuckyBucks: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [7c Qd] +stefan_bg_46: folds +s0rrow: folds +darsOK: folds +MoIsonEx: folds +Georgy80: folds +seric1975: folds +Uncalled bet (350) returned to AALuckyBucks +AALuckyBucks collected 1295 from pot +AALuckyBucks: doesn't show hand +*** SUMMARY *** +Total pot 1295 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK folded before Flop (didn't bet) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 6: seric1975 (small blind) folded before Flop +Seat 8: AALuckyBucks (big blind) collected (1295) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47659129286: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:41:07 ET +Table '297808375 7' 9-max Seat #6 is the button +Seat 1: s0rrow (59811 in chips) +Seat 2: darsOK (47346 in chips) +Seat 4: MoIsonEx (26841 in chips) +Seat 5: Georgy80 (10182 in chips) +Seat 6: seric1975 (1140 in chips) +Seat 8: AALuckyBucks (31077 in chips) +Seat 9: stefan_bg_46 (3603 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +seric1975: posts the ante 85 +AALuckyBucks: posts the ante 85 +stefan_bg_46: posts the ante 85 +AALuckyBucks: posts small blind 350 +stefan_bg_46: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [Tc Qd] +s0rrow: folds +darsOK: folds +MoIsonEx: raises 1400 to 2100 +Georgy80: folds +seric1975: folds +AALuckyBucks: folds +stefan_bg_46: folds +Uncalled bet (1400) returned to MoIsonEx +MoIsonEx collected 2345 from pot +MoIsonEx: doesn't show hand +*** SUMMARY *** +Total pot 2345 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK folded before Flop (didn't bet) +Seat 4: MoIsonEx collected (2345) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 (button) folded before Flop (didn't bet) +Seat 8: AALuckyBucks (small blind) folded before Flop +Seat 9: stefan_bg_46 (big blind) folded before Flop + + + +PokerStars Game #47659142719: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:41:25 ET +Table '297808375 7' 9-max Seat #8 is the button +Seat 1: s0rrow (59726 in chips) +Seat 2: darsOK (47261 in chips) +Seat 4: MoIsonEx (28401 in chips) +Seat 5: Georgy80 (10097 in chips) +Seat 6: seric1975 (1055 in chips) +Seat 8: AALuckyBucks (30642 in chips) +Seat 9: stefan_bg_46 (2818 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +seric1975: posts the ante 85 +AALuckyBucks: posts the ante 85 +stefan_bg_46: posts the ante 85 +stefan_bg_46: posts small blind 350 +s0rrow: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [Qs 4h] +darsOK: folds +MoIsonEx: folds +Georgy80: folds +seric1975: folds +AALuckyBucks: folds +stefan_bg_46: folds +Uncalled bet (350) returned to s0rrow +s0rrow collected 1295 from pot +*** SUMMARY *** +Total pot 1295 | Rake 0 +Seat 1: s0rrow (big blind) collected (1295) +Seat 2: darsOK folded before Flop (didn't bet) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 8: AALuckyBucks (button) folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (small blind) folded before Flop + + + +PokerStars Game #47659158111: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:41:46 ET +Table '297808375 7' 9-max Seat #9 is the button +Seat 1: s0rrow (60586 in chips) +Seat 2: darsOK (47176 in chips) +Seat 4: MoIsonEx (28316 in chips) +Seat 5: Georgy80 (10012 in chips) +Seat 6: seric1975 (970 in chips) +Seat 8: AALuckyBucks (30557 in chips) +Seat 9: stefan_bg_46 (2383 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +seric1975: posts the ante 85 +AALuckyBucks: posts the ante 85 +stefan_bg_46: posts the ante 85 +s0rrow: posts small blind 350 +darsOK: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [Ts Tc] +MoIsonEx: folds +Georgy80: raises 9227 to 9927 and is all-in +seric1975: folds +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: raises 50574 to 60501 and is all-in +darsOK: folds +Uncalled bet (50574) returned to s0rrow +*** FLOP *** [3d 3h As] +*** TURN *** [3d 3h As] [Ah] +*** RIVER *** [3d 3h As Ah] [6h] +*** SHOW DOWN *** +s0rrow: shows [Ts Tc] (two pair, Aces and Tens) +Georgy80: shows [Ks Kh] (two pair, Aces and Kings) +Georgy80 collected 21149 from pot +*** SUMMARY *** +Total pot 21149 | Rake 0 +Board [3d 3h As Ah 6h] +Seat 1: s0rrow (small blind) showed [Ts Tc] and lost with two pair, Aces and Tens +Seat 2: darsOK (big blind) folded before Flop +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 showed [Ks Kh] and won (21149) with two pair, Aces and Kings +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 (button) folded before Flop (didn't bet) + + + +PokerStars Game #47659182569: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:42:20 ET +Table '297808375 7' 9-max Seat #1 is the button +Seat 1: s0rrow (50574 in chips) +Seat 2: darsOK (46391 in chips) +Seat 4: MoIsonEx (28231 in chips) +Seat 5: Georgy80 (21149 in chips) +Seat 6: seric1975 (885 in chips) +Seat 8: AALuckyBucks (30472 in chips) +Seat 9: stefan_bg_46 (2298 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +seric1975: posts the ante 85 +AALuckyBucks: posts the ante 85 +stefan_bg_46: posts the ante 85 +darsOK: posts small blind 350 +MoIsonEx: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [Th Ts] +Georgy80: folds +seric1975: folds +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: raises 1400 to 2100 +darsOK: folds +MoIsonEx: calls 1400 +*** FLOP *** [8s Jd Ac] +MoIsonEx: checks +s0rrow: checks +*** TURN *** [8s Jd Ac] [8h] +MoIsonEx: bets 2100 +s0rrow: calls 2100 +*** RIVER *** [8s Jd Ac 8h] [5d] +MoIsonEx: bets 2800 +s0rrow: calls 2800 +*** SHOW DOWN *** +MoIsonEx: shows [Jc Kc] (two pair, Jacks and Eights) +s0rrow: mucks hand +MoIsonEx collected 14945 from pot +*** SUMMARY *** +Total pot 14945 | Rake 0 +Board [8s Jd Ac 8h 5d] +Seat 1: s0rrow (button) mucked [Th Ts] +Seat 2: darsOK (small blind) folded before Flop +Seat 4: MoIsonEx (big blind) showed [Jc Kc] and won (14945) with two pair, Jacks and Eights +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47659209539: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:42:57 ET +Table '297808375 7' 9-max Seat #2 is the button +Seat 1: s0rrow (43489 in chips) +Seat 2: darsOK (45956 in chips) +Seat 4: MoIsonEx (36091 in chips) +Seat 5: Georgy80 (21064 in chips) +Seat 6: seric1975 (800 in chips) +Seat 8: AALuckyBucks (30387 in chips) +Seat 9: stefan_bg_46 (2213 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +seric1975: posts the ante 85 +AALuckyBucks: posts the ante 85 +stefan_bg_46: posts the ante 85 +MoIsonEx: posts small blind 350 +Georgy80: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [2s Th] +seric1975: folds +AALuckyBucks: folds +stefan_bg_46: folds +s0rrow: folds +darsOK: folds +MoIsonEx: calls 350 +Georgy80: checks +*** FLOP *** [As 3d 6s] +MoIsonEx: checks +Georgy80: checks +*** TURN *** [As 3d 6s] [7c] +MoIsonEx: bets 2800 +Georgy80: folds +Uncalled bet (2800) returned to MoIsonEx +MoIsonEx collected 1995 from pot +MoIsonEx: doesn't show hand +*** SUMMARY *** +Total pot 1995 | Rake 0 +Board [As 3d 6s 7c] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK (button) folded before Flop (didn't bet) +Seat 4: MoIsonEx (small blind) collected (1995) +Seat 5: Georgy80 (big blind) folded on the Turn +Seat 6: seric1975 folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) +Seat 9: stefan_bg_46 folded before Flop (didn't bet) + + + +PokerStars Game #47659234486: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:43:31 ET +Table '297808375 7' 9-max Seat #4 is the button +Seat 1: s0rrow (43404 in chips) +Seat 2: darsOK (45871 in chips) +Seat 4: MoIsonEx (37301 in chips) +Seat 5: Georgy80 (20279 in chips) +Seat 6: seric1975 (715 in chips) +Seat 8: AALuckyBucks (30302 in chips) +Seat 9: stefan_bg_46 (2128 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +seric1975: posts the ante 85 +AALuckyBucks: posts the ante 85 +stefan_bg_46: posts the ante 85 +Georgy80: posts small blind 350 +seric1975: posts big blind 630 and is all-in +*** HOLE CARDS *** +Dealt to s0rrow [3d As] +AALuckyBucks: raises 1470 to 2100 +stefan_bg_46: calls 2043 and is all-in +s0rrow: folds +darsOK: raises 6300 to 8400 +MoIsonEx: folds +Georgy80: folds +AALuckyBucks: folds +Uncalled bet (6300) returned to darsOK +*** FLOP *** [Td 5s 4c] +*** TURN *** [Td 5s 4c] [6d] +*** RIVER *** [Td 5s 4c 6d] [5c] +*** SHOW DOWN *** +darsOK: shows [Ah Ad] (two pair, Aces and Fives) +darsOK collected 114 from side pot-2 +stefan_bg_46: shows [Kh Kc] (two pair, Kings and Fives) +darsOK collected 4239 from side pot-1 +seric1975: shows [6s Th] (two pair, Tens and Sixes) +darsOK collected 3465 from main pot +darsOK wins the $0.25 bounty for eliminating seric1975 +darsOK wins the $0.25 bounty for eliminating stefan_bg_46 +stefan_bg_46 finished the tournament in 6th place and received $4.72. +seric1975 finished the tournament in 7th place and received $3.82. +*** SUMMARY *** +Total pot 7818 Main pot 3465. Side pot-1 4239. Side pot-2 114. | Rake 0 +Board [Td 5s 4c 6d 5c] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK showed [Ah Ad] and won (7818) with two pair, Aces and Fives +Seat 4: MoIsonEx (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 6: seric1975 (big blind) showed [6s Th] and lost with two pair, Tens and Sixes +Seat 8: AALuckyBucks folded before Flop +Seat 9: stefan_bg_46 showed [Kh Kc] and lost with two pair, Kings and Fives + + + +PokerStars Game #47659262551: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:44:10 ET +Table '297808375 7' 9-max Seat #5 is the button +Seat 1: s0rrow (43319 in chips) +Seat 2: darsOK (51504 in chips) +Seat 4: MoIsonEx (37216 in chips) +Seat 5: Georgy80 (19844 in chips) +Seat 8: AALuckyBucks (28117 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +AALuckyBucks: posts the ante 85 +AALuckyBucks: posts small blind 350 +s0rrow: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [Jd 8c] +darsOK: raises 700 to 1400 +MoIsonEx: folds +Georgy80: folds +AALuckyBucks: raises 26632 to 28032 and is all-in +s0rrow: folds +darsOK: folds +Uncalled bet (26632) returned to AALuckyBucks +AALuckyBucks collected 3925 from pot +AALuckyBucks: doesn't show hand +*** SUMMARY *** +Total pot 3925 | Rake 0 +Seat 1: s0rrow (big blind) folded before Flop +Seat 2: darsOK folded before Flop +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 8: AALuckyBucks (small blind) collected (3925) + + + +PokerStars Game #47659304733: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:45:09 ET +Table '297808375 7' 9-max Seat #8 is the button +Seat 1: s0rrow (42534 in chips) +Seat 2: darsOK (50019 in chips) +Seat 4: MoIsonEx (37131 in chips) +Seat 5: Georgy80 (19759 in chips) +Seat 8: AALuckyBucks (30557 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +AALuckyBucks: posts the ante 85 +s0rrow: posts small blind 350 +darsOK: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [8c 6c] +MoIsonEx: folds +Georgy80: folds +AALuckyBucks: folds +s0rrow: calls 350 +darsOK: checks +*** FLOP *** [Tc 5c 9h] +s0rrow: checks +darsOK: bets 700 +s0rrow: calls 700 +*** TURN *** [Tc 5c 9h] [Jd] +s0rrow: checks +darsOK: bets 700 +s0rrow: calls 700 +*** RIVER *** [Tc 5c 9h Jd] [2s] +s0rrow: checks +darsOK: bets 2100 +s0rrow: folds +Uncalled bet (2100) returned to darsOK +darsOK collected 4625 from pot +*** SUMMARY *** +Total pot 4625 | Rake 0 +Board [Tc 5c 9h Jd 2s] +Seat 1: s0rrow (small blind) folded on the River +Seat 2: darsOK (big blind) collected (4625) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 8: AALuckyBucks (button) folded before Flop (didn't bet) + + + +PokerStars Game #47659336011: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:45:53 ET +Table '297808375 7' 9-max Seat #1 is the button +Seat 1: s0rrow (40349 in chips) +Seat 2: darsOK (52459 in chips) +Seat 4: MoIsonEx (37046 in chips) +Seat 5: Georgy80 (19674 in chips) +Seat 8: AALuckyBucks (30472 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +AALuckyBucks: posts the ante 85 +darsOK: posts small blind 350 +MoIsonEx: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [4d Kh] +Georgy80: folds +AALuckyBucks: folds +s0rrow: raises 1400 to 2100 +darsOK: folds +MoIsonEx: folds +Uncalled bet (1400) returned to s0rrow +s0rrow collected 2175 from pot +*** SUMMARY *** +Total pot 2175 | Rake 0 +Seat 1: s0rrow (button) collected (2175) +Seat 2: darsOK (small blind) folded before Flop +Seat 4: MoIsonEx (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) + + + +PokerStars Game #47659351859: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:46:15 ET +Table '297808375 7' 9-max Seat #2 is the button +Seat 1: s0rrow (41739 in chips) +Seat 2: darsOK (52024 in chips) +Seat 4: MoIsonEx (36261 in chips) +Seat 5: Georgy80 (19589 in chips) +Seat 8: AALuckyBucks (30387 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +AALuckyBucks: posts the ante 85 +MoIsonEx: posts small blind 350 +Georgy80: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [2s Th] +AALuckyBucks: folds +s0rrow: folds +darsOK: raises 2100 to 2800 +MoIsonEx: folds +Georgy80: raises 16704 to 19504 and is all-in +darsOK: calls 16704 +*** FLOP *** [6c 2d As] +*** TURN *** [6c 2d As] [7s] +*** RIVER *** [6c 2d As 7s] [4d] +*** SHOW DOWN *** +Georgy80: shows [Js Jh] (a pair of Jacks) +darsOK: shows [Td Kc] (high card Ace) +Georgy80 collected 39783 from pot +*** SUMMARY *** +Total pot 39783 | Rake 0 +Board [6c 2d As 7s 4d] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK (button) showed [Td Kc] and lost with high card Ace +Seat 4: MoIsonEx (small blind) folded before Flop +Seat 5: Georgy80 (big blind) showed [Js Jh] and won (39783) with a pair of Jacks +Seat 8: AALuckyBucks folded before Flop (didn't bet) + + + +PokerStars Game #47659373560: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:46:45 ET +Table '297808375 7' 9-max Seat #4 is the button +Seat 1: s0rrow (41654 in chips) +Seat 2: darsOK (32435 in chips) +Seat 4: MoIsonEx (35826 in chips) +Seat 5: Georgy80 (39783 in chips) +Seat 8: AALuckyBucks (30302 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +AALuckyBucks: posts the ante 85 +Georgy80: posts small blind 350 +AALuckyBucks: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [8d 5c] +s0rrow: folds +darsOK: folds +MoIsonEx: folds +Georgy80: folds +Uncalled bet (350) returned to AALuckyBucks +AALuckyBucks collected 1125 from pot +AALuckyBucks: doesn't show hand +*** SUMMARY *** +Total pot 1125 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK folded before Flop (didn't bet) +Seat 4: MoIsonEx (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 8: AALuckyBucks (big blind) collected (1125) + + + +PokerStars Game #47659382879: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:46:58 ET +Table '297808375 7' 9-max Seat #5 is the button +Seat 1: s0rrow (41569 in chips) +Seat 2: darsOK (32350 in chips) +Seat 4: MoIsonEx (35741 in chips) +Seat 5: Georgy80 (39348 in chips) +Seat 8: AALuckyBucks (30992 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +AALuckyBucks: posts the ante 85 +AALuckyBucks: posts small blind 350 +s0rrow: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [3c Js] +darsOK: folds +MoIsonEx: folds +Georgy80: folds +AALuckyBucks: raises 2100 to 2800 +s0rrow: folds +Uncalled bet (2100) returned to AALuckyBucks +AALuckyBucks collected 1825 from pot +AALuckyBucks: doesn't show hand +*** SUMMARY *** +Total pot 1825 | Rake 0 +Seat 1: s0rrow (big blind) folded before Flop +Seat 2: darsOK folded before Flop (didn't bet) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 8: AALuckyBucks (small blind) collected (1825) + + + +PokerStars Game #47659393522: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:47:13 ET +Table '297808375 7' 9-max Seat #8 is the button +Seat 1: s0rrow (40784 in chips) +Seat 2: darsOK (32265 in chips) +Seat 4: MoIsonEx (35656 in chips) +Seat 5: Georgy80 (39263 in chips) +Seat 8: AALuckyBucks (32032 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +AALuckyBucks: posts the ante 85 +s0rrow: posts small blind 350 +darsOK: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [Jh 3h] +MoIsonEx: folds +Georgy80: folds +AALuckyBucks: folds +s0rrow: raises 1400 to 2100 +darsOK: raises 11900 to 14000 +s0rrow: folds +Uncalled bet (11900) returned to darsOK +darsOK collected 4625 from pot +*** SUMMARY *** +Total pot 4625 | Rake 0 +Seat 1: s0rrow (small blind) folded before Flop +Seat 2: darsOK (big blind) collected (4625) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 8: AALuckyBucks (button) folded before Flop (didn't bet) + + + +PokerStars Game #47659410940: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:47:37 ET +Table '297808375 7' 9-max Seat #1 is the button +Seat 1: s0rrow (38599 in chips) +Seat 2: darsOK (34705 in chips) +Seat 4: MoIsonEx (35571 in chips) +Seat 5: Georgy80 (39178 in chips) +Seat 8: AALuckyBucks (31947 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +AALuckyBucks: posts the ante 85 +darsOK: posts small blind 350 +MoIsonEx: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [4s 5s] +Georgy80: folds +AALuckyBucks: folds +s0rrow: raises 1400 to 2100 +darsOK: folds +MoIsonEx: folds +Uncalled bet (1400) returned to s0rrow +s0rrow collected 2175 from pot +*** SUMMARY *** +Total pot 2175 | Rake 0 +Seat 1: s0rrow (button) collected (2175) +Seat 2: darsOK (small blind) folded before Flop +Seat 4: MoIsonEx (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) + + + +PokerStars Game #47659422965: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:47:53 ET +Table '297808375 7' 9-max Seat #2 is the button +Seat 1: s0rrow (39989 in chips) +Seat 2: darsOK (34270 in chips) +Seat 4: MoIsonEx (34786 in chips) +Seat 5: Georgy80 (39093 in chips) +Seat 8: AALuckyBucks (31862 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +AALuckyBucks: posts the ante 85 +MoIsonEx: posts small blind 350 +Georgy80: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [2c 8d] +AALuckyBucks: folds +s0rrow: folds +darsOK: calls 700 +MoIsonEx: calls 350 +Georgy80: checks +*** FLOP *** [7d 4s Ad] +MoIsonEx: bets 2100 +Georgy80: folds +darsOK: calls 2100 +*** TURN *** [7d 4s Ad] [Ac] +MoIsonEx: bets 2800 +darsOK: calls 2800 +*** RIVER *** [7d 4s Ad Ac] [Ah] +MoIsonEx: bets 2800 +darsOK: calls 2800 +*** SHOW DOWN *** +MoIsonEx: shows [6d 4d] (a full house, Aces full of Fours) +darsOK: mucks hand +MoIsonEx collected 17925 from pot +*** SUMMARY *** +Total pot 17925 | Rake 0 +Board [7d 4s Ad Ac Ah] +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK (button) mucked [3s 3h] +Seat 4: MoIsonEx (small blind) showed [6d 4d] and won (17925) with a full house, Aces full of Fours +Seat 5: Georgy80 (big blind) folded on the Flop +Seat 8: AALuckyBucks folded before Flop (didn't bet) + + + +PokerStars Game #47659447144: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:48:27 ET +Table '297808375 7' 9-max Seat #4 is the button +Seat 1: s0rrow (39904 in chips) +Seat 2: darsOK (25785 in chips) +Seat 4: MoIsonEx (44226 in chips) +Seat 5: Georgy80 (38308 in chips) +Seat 8: AALuckyBucks (31777 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +AALuckyBucks: posts the ante 85 +Georgy80: posts small blind 350 +AALuckyBucks: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [4h 6h] +s0rrow: folds +darsOK: folds +MoIsonEx: folds +Georgy80: folds +Uncalled bet (350) returned to AALuckyBucks +AALuckyBucks collected 1125 from pot +AALuckyBucks: doesn't show hand +*** SUMMARY *** +Total pot 1125 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK folded before Flop (didn't bet) +Seat 4: MoIsonEx (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 8: AALuckyBucks (big blind) collected (1125) + + + +PokerStars Game #47659455874: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVI (350/700) - 2010/08/03 13:48:39 ET +Table '297808375 7' 9-max Seat #5 is the button +Seat 1: s0rrow (39819 in chips) +Seat 2: darsOK (25700 in chips) +Seat 4: MoIsonEx (44141 in chips) +Seat 5: Georgy80 (37873 in chips) +Seat 8: AALuckyBucks (32467 in chips) +s0rrow: posts the ante 85 +darsOK: posts the ante 85 +MoIsonEx: posts the ante 85 +Georgy80: posts the ante 85 +AALuckyBucks: posts the ante 85 +AALuckyBucks: posts small blind 350 +s0rrow: posts big blind 700 +*** HOLE CARDS *** +Dealt to s0rrow [3c Ac] +darsOK: folds +MoIsonEx: folds +Georgy80: raises 1400 to 2100 +AALuckyBucks: folds +s0rrow: raises 2800 to 4900 +Georgy80: raises 32888 to 37788 and is all-in +s0rrow: folds +Uncalled bet (32888) returned to Georgy80 +Georgy80 collected 10575 from pot +Georgy80: doesn't show hand +*** SUMMARY *** +Total pot 10575 | Rake 0 +Seat 1: s0rrow (big blind) folded before Flop +Seat 2: darsOK folded before Flop (didn't bet) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 (button) collected (10575) +Seat 8: AALuckyBucks (small blind) folded before Flop + + + +PokerStars Game #47659477187: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVII (400/800) - 2010/08/03 13:49:09 ET +Table '297808375 7' 9-max Seat #8 is the button +Seat 1: s0rrow (34834 in chips) +Seat 2: darsOK (25615 in chips) +Seat 4: MoIsonEx (44056 in chips) +Seat 5: Georgy80 (43463 in chips) +Seat 8: AALuckyBucks (32032 in chips) +s0rrow: posts the ante 100 +darsOK: posts the ante 100 +MoIsonEx: posts the ante 100 +Georgy80: posts the ante 100 +AALuckyBucks: posts the ante 100 +s0rrow: posts small blind 400 +darsOK: posts big blind 800 +*** HOLE CARDS *** +Dealt to s0rrow [7c 9d] +MoIsonEx: folds +Georgy80: folds +AALuckyBucks: raises 2400 to 3200 +s0rrow: folds +darsOK: folds +Uncalled bet (2400) returned to AALuckyBucks +AALuckyBucks collected 2500 from pot +AALuckyBucks: doesn't show hand +*** SUMMARY *** +Total pot 2500 | Rake 0 +Seat 1: s0rrow (small blind) folded before Flop +Seat 2: darsOK (big blind) folded before Flop +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 8: AALuckyBucks (button) collected (2500) + + + +PokerStars Game #47659489360: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVII (400/800) - 2010/08/03 13:49:26 ET +Table '297808375 7' 9-max Seat #1 is the button +Seat 1: s0rrow (34334 in chips) +Seat 2: darsOK (24715 in chips) +Seat 4: MoIsonEx (43956 in chips) +Seat 5: Georgy80 (43363 in chips) +Seat 8: AALuckyBucks (33632 in chips) +s0rrow: posts the ante 100 +darsOK: posts the ante 100 +MoIsonEx: posts the ante 100 +Georgy80: posts the ante 100 +AALuckyBucks: posts the ante 100 +darsOK: posts small blind 400 +MoIsonEx: posts big blind 800 +*** HOLE CARDS *** +Dealt to s0rrow [9d As] +Georgy80: folds +AALuckyBucks: folds +s0rrow: raises 800 to 1600 +darsOK: folds +MoIsonEx: folds +Uncalled bet (800) returned to s0rrow +s0rrow collected 2500 from pot +*** SUMMARY *** +Total pot 2500 | Rake 0 +Seat 1: s0rrow (button) collected (2500) +Seat 2: darsOK (small blind) folded before Flop +Seat 4: MoIsonEx (big blind) folded before Flop +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 8: AALuckyBucks folded before Flop (didn't bet) + + + +PokerStars Game #47659498991: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVII (400/800) - 2010/08/03 13:49:39 ET +Table '297808375 7' 9-max Seat #2 is the button +Seat 1: s0rrow (35934 in chips) +Seat 2: darsOK (24215 in chips) +Seat 4: MoIsonEx (43056 in chips) +Seat 5: Georgy80 (43263 in chips) +Seat 8: AALuckyBucks (33532 in chips) +s0rrow: posts the ante 100 +darsOK: posts the ante 100 +MoIsonEx: posts the ante 100 +Georgy80: posts the ante 100 +AALuckyBucks: posts the ante 100 +MoIsonEx: posts small blind 400 +Georgy80: posts big blind 800 +*** HOLE CARDS *** +Dealt to s0rrow [8d 7c] +AALuckyBucks: folds +s0rrow: folds +darsOK: folds +MoIsonEx: folds +Uncalled bet (400) returned to Georgy80 +Georgy80 collected 1300 from pot +Georgy80: shows [Qs Qd] (a pair of Queens) +*** SUMMARY *** +Total pot 1300 | Rake 0 +Seat 1: s0rrow folded before Flop (didn't bet) +Seat 2: darsOK (button) folded before Flop (didn't bet) +Seat 4: MoIsonEx (small blind) folded before Flop +Seat 5: Georgy80 (big blind) collected (1300) +Seat 8: AALuckyBucks folded before Flop (didn't bet) + + + +PokerStars Game #47659506322: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVII (400/800) - 2010/08/03 13:49:49 ET +Table '297808375 7' 9-max Seat #4 is the button +Seat 1: s0rrow (35834 in chips) +Seat 2: darsOK (24115 in chips) +Seat 4: MoIsonEx (42556 in chips) +Seat 5: Georgy80 (44063 in chips) +Seat 8: AALuckyBucks (33432 in chips) +s0rrow: posts the ante 100 +darsOK: posts the ante 100 +MoIsonEx: posts the ante 100 +Georgy80: posts the ante 100 +AALuckyBucks: posts the ante 100 +Georgy80: posts small blind 400 +AALuckyBucks: posts big blind 800 +*** HOLE CARDS *** +Dealt to s0rrow [Ah As] +s0rrow: raises 1600 to 2400 +darsOK: folds +MoIsonEx: folds +Georgy80: folds +AALuckyBucks: folds +Uncalled bet (1600) returned to s0rrow +s0rrow collected 2500 from pot +*** SUMMARY *** +Total pot 2500 | Rake 0 +Seat 1: s0rrow collected (2500) +Seat 2: darsOK folded before Flop (didn't bet) +Seat 4: MoIsonEx (button) folded before Flop (didn't bet) +Seat 5: Georgy80 (small blind) folded before Flop +Seat 8: AALuckyBucks (big blind) folded before Flop + + + +PokerStars Game #47659515689: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVII (400/800) - 2010/08/03 13:50:03 ET +Table '297808375 7' 9-max Seat #5 is the button +Seat 1: s0rrow (37434 in chips) +Seat 2: darsOK (24015 in chips) +Seat 4: MoIsonEx (42456 in chips) +Seat 5: Georgy80 (43563 in chips) +Seat 8: AALuckyBucks (32532 in chips) +s0rrow: posts the ante 100 +darsOK: posts the ante 100 +MoIsonEx: posts the ante 100 +Georgy80: posts the ante 100 +AALuckyBucks: posts the ante 100 +AALuckyBucks: posts small blind 400 +s0rrow: posts big blind 800 +*** HOLE CARDS *** +Dealt to s0rrow [Th 3h] +darsOK: folds +MoIsonEx: folds +Georgy80: folds +AALuckyBucks: folds +Uncalled bet (400) returned to s0rrow +s0rrow collected 1300 from pot +*** SUMMARY *** +Total pot 1300 | Rake 0 +Seat 1: s0rrow (big blind) collected (1300) +Seat 2: darsOK folded before Flop (didn't bet) +Seat 4: MoIsonEx folded before Flop (didn't bet) +Seat 5: Georgy80 (button) folded before Flop (didn't bet) +Seat 8: AALuckyBucks (small blind) folded before Flop + + + +PokerStars Game #47659525439: Tournament #297808375, $1.00+$0.25+$0.15 USD Hold'em No Limit - Level XVII (400/800) - 2010/08/03 13:50:16 ET +Table '297808375 7' 9-max Seat #8 is the button +Seat 1: s0rrow (38234 in chips) +Seat 2: darsOK (23915 in chips) +Seat 4: MoIsonEx (42356 in chips) +Seat 5: Georgy80 (43463 in chips) +Seat 8: AALuckyBucks (32032 in chips) +s0rrow: posts the ante 100 +darsOK: posts the ante 100 +MoIsonEx: posts the ante 100 +Georgy80: posts the ante 100 +AALuckyBucks: posts the ante 100 +s0rrow: posts small blind 400 +darsOK: posts big blind 800 +*** HOLE CARDS *** +Dealt to s0rrow [Kd Jd] +MoIsonEx: raises 1600 to 2400 +Georgy80: folds +AALuckyBucks: folds +s0rrow: calls 2000 +darsOK: folds +*** FLOP *** [3h 7d 3d] +s0rrow: checks +MoIsonEx: bets 3200 +s0rrow: raises 12000 to 15200 +MoIsonEx: calls 12000 +*** TURN *** [3h 7d 3d] [Ks] +s0rrow: bets 20534 and is all-in +MoIsonEx: calls 20534 +*** RIVER *** [3h 7d 3d Ks] [6h] +*** SHOW DOWN *** +s0rrow: shows [Kd Jd] (two pair, Kings and Threes) +MoIsonEx: shows [7c 7h] (a full house, Sevens full of Threes) +MoIsonEx collected 77568 from pot +MoIsonEx wins the $0.25 bounty for eliminating s0rrow +s0rrow finished the tournament in 5th place and received $6.30. +*** SUMMARY *** +Total pot 77568 | Rake 0 +Board [3h 7d 3d Ks 6h] +Seat 1: s0rrow (small blind) showed [Kd Jd] and lost with two pair, Kings and Threes +Seat 2: darsOK (big blind) folded before Flop +Seat 4: MoIsonEx showed [7c 7h] and won (77568) with a full house, Sevens full of Threes +Seat 5: Georgy80 folded before Flop (didn't bet) +Seat 8: AALuckyBucks (button) folded before Flop (didn't bet) + + + From faee37e1013bf91a559bf66261b898aff73cb8fe Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 3 Aug 2010 22:25:49 +0200 Subject: [PATCH 082/301] set isKO to false when we know it's not a KO --- pyfpdb/PokerStarsToFpdb.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index 384f5082..86334bd5 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -262,6 +262,8 @@ class PokerStars(HandHistoryConverter): info['BOUNTY'] = info['BOUNTY'].strip(u'$€') # Strip here where it isn't 'None' hand.koBounty = int(100*Decimal(info['BOUNTY'])) hand.isKO = True + else: + hand.isKO = False info['BIRAKE'] = info['BIRAKE'].strip(u'$€') From 7f8243f19d58222d537433d66204069993cd434f Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 3 Aug 2010 22:32:31 +0200 Subject: [PATCH 083/301] remove some default values - if we don't know, don't just assume no/normal --- pyfpdb/Hand.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pyfpdb/Hand.py b/pyfpdb/Hand.py index e4965dab..ee6d0bf2 100644 --- a/pyfpdb/Hand.py +++ b/pyfpdb/Hand.py @@ -79,13 +79,13 @@ class Hand(object): self.fee = None # the Database code is looking for this one .. ? self.level = None self.mixed = None - self.speed = "Normal" - self.isRebuy = False - self.isAddOn = False - self.isKO = False + self.speed = None + self.isRebuy = None + self.isAddOn = None + self.isKO = None self.koBounty = None - self.isMatrix = False - self.isShootout = False + self.isMatrix = None + self.isShootout = None self.added = None self.addedCurrency = None self.tourneyComment = None From bc06e031fa7e552e787afdbf69971d2207f37397 Mon Sep 17 00:00:00 2001 From: Worros Date: Wed, 4 Aug 2010 13:16:34 +0800 Subject: [PATCH 084/301] Stars: Potention fix to Mixed PLH/PLO tourneys. "PokerStars Game #47587046512: Tournament #294420919, $5.00+$0.50 USD Mixed PLH/PLO (Hold'em Pot Limit) - Level XVII (500/1000) - 2010/08/01 20:39:48 ET" We already parsed up to 'Mixed' and accepted HORSE/HOSE and 8-Game previously. Added PLH/PLO to the list. --- pyfpdb/PokerStarsToFpdb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index 384f5082..64ec90ee 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -74,7 +74,7 @@ class PokerStars(HandHistoryConverter): # here's how I plan to use LS (?P(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)?\+?(?P[%(LS)s\d\.]+)?\s?(?P%(LEGAL_ISO)s)?|Freeroll)\s+)? # close paren of tournament info - (?PHORSE|8\-Game|HOSE)?\s?\(? + (?PHORSE|8\-Game|HOSE|Mixed PLH/PLO)?\s?\(? (?PHold\'em|Razz|RAZZ|7\sCard\sStud|7\sCard\sStud\sHi/Lo|Omaha|Omaha\sHi/Lo|Badugi|Triple\sDraw\s2\-7\sLowball|5\sCard\sDraw)\s (?PNo\sLimit|Limit|LIMIT|Pot\sLimit)\)?,?\s (-\s)? From e203c1321df7b2d280127418fff42eb320bc0bc3 Mon Sep 17 00:00:00 2001 From: sqlcoder Date: Wed, 4 Aug 2010 08:54:16 +0100 Subject: [PATCH 085/301] add new section for ring stats to example hud_config --- pyfpdb/HUD_config.xml.example | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/pyfpdb/HUD_config.xml.example b/pyfpdb/HUD_config.xml.example index 9ee17c1c..0f016b86 100644 --- a/pyfpdb/HUD_config.xml.example +++ b/pyfpdb/HUD_config.xml.example @@ -639,6 +639,37 @@ Left-Drag to Move" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From c0f8f2be2af092a40557e31c79e290da9088904e Mon Sep 17 00:00:00 2001 From: Worros Date: Wed, 4 Aug 2010 16:18:22 +0800 Subject: [PATCH 086/301] Config: Add default config for player stats columns --- pyfpdb/HUD_config.xml.example | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/pyfpdb/HUD_config.xml.example b/pyfpdb/HUD_config.xml.example index 9ee17c1c..207b8e77 100644 --- a/pyfpdb/HUD_config.xml.example +++ b/pyfpdb/HUD_config.xml.example @@ -11,6 +11,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + e-h1lAhcF8~x&b&#b!M zEq$aCX-pZCGUhXx3`s6O&_5Q$pEh8zT->MTB%*gRE;@zV^N@)hMV~ESn>-5OT?p9F!li5OhXF`1!4k8_0JTsp;;W(ypZ1YGObK*6yKEvPA z3yI-F|D&AwI2WHsZ)tU{(>d`tLY<3q@nx-f+6Q&ziiCvaR?iLO$fxDD&phyH!J*da zS@@PD+1W()d?WoAKC_wDFkj2|ckJg%|Ax=CEDT$#^|M{J^iNoJJ^N?b=J+XLnQbxv zq}6E#0KI3=u^j3A{~2t1xpLy?X$z*WoF4ekE1>ee_C2KX{_5@KnuTSzn^*>wM@mje zhkPn;8EY2&QARl_>HS`_fKFe3<5_m<9hc|7W%8rTfU`?E{3uuMwCPk9e?0h6bovtB z5BYQOm=ACh@8fk6pm^2#9-mw@*qm3L$NCa}t3;UH@P!_^?x1w>HeoO)||>v{;uvCF9Iz<8}H5 zR_*vRfZE{36g7Hw!gCJ;H_L?lAX{I~kJ3WlPXDbclP9cBi2h?%VbRUHY0uS_>-m+i zEb%xJ$#n1DVHa56=GtG`x3c{C9qu2|sa@%Du)|HxCiK;GJGT2s^ zHIC38SId%E*4@W%!*R7sZ!R^d^|ni=#b_pzDeLEDvi)wasXWU3;@7pwcxd%(KfTRyHjrryQlPT%atzCOm$w(4wIu3*x7!b=++0LHiC9f0$#ZgYu9?XH)I zOW+<}f+w)K016I*UQ-H$?b1jLhx$6l8=X?Hw_56^b6pGi+6 zex^0oHgAvk8lf!Lv;TRvEG)AP`!79MW&e2=gk*gk`SpK4?z0C=o$H3Lnyvt(g$_BO zr*S^*M)6c}28`T;_>}W(mvMC-Y&A8L=hs@CT$2@m<$1-L_1Cb!_yKW!$G6Ha%v`e> zj`FVDR%#s9xK{ZwPs`(No6U;vx`z3YW5ijKaw-GMBwM{lINfDjpB_5o)va?>qpN#$9b}I`- zorKm}&PP$~(;qztk6 zd7%6_bAa2460OlAp%zFqXfk%OoUZ<(S48XDG*boQ{$qGQ9Qwvxoh4K5uVZ`kjMMua zmbIBgLoeP^hjkuh4gxWFiLLFn#rNg5PBhwMGr?t348945+T-4B*eB^1;ZE*4?&RV= zcd`L=KrV$0%N56^?BVKcaRHz6uzKlv#xc6K5!rAyU6a%pXZHhR`-IW5ozVZY@##M? z&Yrv1^X(Z2@vvj5?mGsjJtdw<<2L<4;nJ@$1{zfciFgt5v-^$0)3aWx*&{l>t3&r` zxm9#eOr^~LB?>>R6=wD5i7sy({S&(tA}R|3>iuOi2Px9F@x8DNv3${|NcGW=&%sf6 zQ>>h#aJxO4uIembU3>BodQ<*IL+IAnH)Sle9Ep1L&tB6sCm!oiR@X14{>p@AtOSdv zf1bli^m`%GB(0@^xPKV$^I;Tm4l(Gvh$-$kE@%_$MFx0xc|J(nH8qP)M#?xvH#rJ@ zTvH={wBBWrGMJ*sPJG>=6aHSuv{Ts%rHi~Jj2kCdl-*drFN zsmX1j#(_)%@}~^1V$$QBswr2?*fOx-`h@#0SN-xSCn6j?xYO(d zo1G9l9ZPPBezh@*5%>V!qO3(rIT5QpRU6{v$tpSJJ*;(28aLUlH5w!0bA;?QHNGX5 zW=L;`8W%H>w6mIK)RimqRakD7iA)(G=>JEgTz;N5&jRiu*QgoGsWC?O%9ONa(jH5i znysqgh&9my?HpY%H|^KGh(?FwTa_CNGqkm+vQJaICZNkP5KRdAJG=DeV<5aRrY@w2yk&90roBTk5+68XY*c0_Wu>|buU75=&3B=|Igub6;U#7leAVmUpxXW zy8#UQUVP)GvctFA|G)U(1^*rS*Xyr>?f#R`knR4X`-kM<5%Sb-+qD85%zmcbYRYyC z^OM7NPjm1>{r1xQ9>_hla!`EG$u-A-j5WEmoA~`LT<=xZ$8^JNi%+5N7R6J?n&#k< zH#m&FqH@;WLEksqRqHWhc1x_b!CP*%3hWnlexPn#+s?v~>HijDi zJ-)Sg93`LaU*^Zfxp6Xo z=I{;E(J zRP8aM*w4^EvKUdBPqa~@&rknD)9;Y22=@n(9t@vralATmw3&{Sv9U^K9h%fxxU-x( zvkpy4PMH&{&P_SWlr_=!0MT@ivvInD*vqgrvKrrQwT3d)q@OfCw>|@qZL5DuIIe9t z0Pjr_I}nx04!GQ1zoC=%oQN|<2;5gj z5_kaU`(t=tBm*Iq?p4U6AbE}i5zBNx@NhM?7sYaW( zC?37|BNjI1(q&2!@6u*$tz~}R4Y6^*^A_0?M=5U+`hRJ~Wn->38aa)-872P~=OfzK zKE5wkE;Y_(oGeC|k7(&1efRRd+?Hy5P2X}8$>B)Op*_wL^`dTyWM12k1`N;IoN_qO z|I75IGz>X99*6o?&X6(}`Wey6qPpljm0^5~&OX$YEAkVT8^^;JO*`2(zeAoFV%V-Q z_t9W#ELKZwm&R%}Wwb`g;n;aKd0fW;mQ8XkHMYiQIOS$1LjQqStL$;gWyU#9ZFek7 zb*oyg-UoF$E7oh6&gz_Qd+t?Zv$`BvX;EksbnZ{n0eS&#xIbZu!)ID{NFODe*VXa} z>$$%?CN`{Z8}840Kr#2n^$@4_v*P;3{dJxHbE5dE;>6eSaR{%ko(9eK&3BMy`|ozj z4Nq#zNV(x{KD9QVW?OUHUWw_M(rhu2HmNilB=xB`euNC}XDM3W_^i2hnbhoJ4ui`% zO&E@R(ISJ(;>nrih*rPWE~67ahWFDx-qD8LBEIJLO7FcJek&(`DP)bh+PAFCM6$6a z@9~*lc{tPiFS#7pD4CQvL&+(232%uK}WSC!bAFioGG zq9u>LJ!3UUo=&V$&Xh7M__@J)T_=LO$2UJDZd&2r(0D{ zs!i`sGd#I4Y6%waF?_0@OWLm%77Yt!t(xa**}?YmklJ9I6KyUJsU1Fp9F-f`-S<|O zOfc7K*g6wyX3^K*($`N<;*(yF?OOZirk2{v#X(juOFxQaK>zo%9jns8XKS-$d+A7L zhx!$*)a|AolSpAG`2!~(-lx$$i{`dFF173aYPSNI^4GM##LkBO6?>Sn^I9qkbv>5O zO4V{Lf2o;_g?6(|1VD6_#Aul7#f;7}@1SonfUfd?q5jXwX%F;S23X-YhyBxqB<4I@ z&AjwFBy(={uSYX4a|wJwBM$g|S3YwCxl{$k9ISUW5E`uo~c8C0o%=-*0xy)R?2T+O`DlGRJmyv^!~ zory<^8eq@8)+k9y;V5;*Ql_}uDw$qksEvMPtU9Osr&Y2wMpnrwa;9|TBKCG8km6hG znVNpKd*(sePv}4TWk<;YJgmL6WXwZtjI~_6?No}qELmDEBOaC;qfIML(rpf)o~0)i zDAw}w?B}$t%~(-OXDDUO%9eWO*brKqW@V>Vu|5Nk^{IbKSl{mOzd!#&?CMd)|J?uU zMDe>t@w+GfHEqEpyuS1h62JcJJDK?PU*BOSey!ytesL>$NoQ`dbeB1WlbiU}w*{XN zx=+3FNet?@E^|=-blY5y&C$v@iDV5oJ?Qe3nhvUPoq5@OlfE|_y8T(ae~SA9j&Dab zv9J1$YRt*tiu(a#6y#=i5a|(aGR|4t!EawgmIwJq*=ei99wm!0IqPi&CyGC5adhE& z+b&ovjlUb$THJD#t<7LD8T=%e9V>>A%hWyUWNHBUqO8SPyfOcC8T-|4;0~TJdJdnP z?&p_qHEa(&M*n18=J4?(Z^wwkXxHIF|F6s!PrIBco|<|Ny?UmQvsIUIbsjy;mcD>b zYL~UkU)~uaoNAk9kcxeXM}jth8C_e>CVa|eKn))|Y0<805y$Qt-W$M!+~1JxW(zlp zPvh!r@i;!`)s_-%m1}Hm*^KYgJXlRS1!u=C?b}*h;g-dhw=5ImY`HF-by_a=HY_!^9~RCM`Gy9 z`+jBLxIfPEUG4u5^}j~Heg|g*cn{z2EycZ4sxdu(zG=0`+8}j)r}RX+!Rg~%H#p6z zX^QP+o{bUD_%dfCBSx}ehGDz-zH87$wqW>9Lw@7VtXP4ZI$OPE`Rn=kyQ#OHkH0N@Xw^Bz-}NYfW0T5e zl?w@bxD5*M^HRJ5fV%B%X5TPCSNZ?${I8k+Rp8(BbrgHxweLn;{m(zgxccv(84_1t z0@$tH=Uh&>65Er%OAeDISUh7YaeR&E*AcPNBcXRB{^z8})hA^=4a9vD@9PIc{`8Kg z=-+4T+Bo9)tf|rFYYiibMTjxdWTF4umWuBhw{%nppHEHEz1Laj|F(q(LxkT&hKcvG zLY`yX=wDF1t+gKgACEOPdQNhGqV^&|F#;bI`WGx0KfB-PKPMxeF0Y2L>d=20fvhqM z>@Uqe9zOnWiqb`@LJVo)|E4HCAOAN+>G}A-DN4`B|LiwyguBH5mK4R$2*<7s{+Ds8 z#5 zLBICc?b}j|FxMZ0{UY8sMt_RB%(&g<{2zrgw#1Jeo+BRS{A)9>hO#9F6l2eE<@K|T zlCf_it}w5^3)HEx42PfdALjDgZS^_-_L(x;h-z#?+nrXR|2Ny^{D-;xb_*9_@fmw= zwrjN5hgfFE89hJVIsauYzdg>(`R6z@^FKxf{b3Kp62u68RP2H1Z2aueu?N&AJ$C^5 zf9o`I|MWcLN1fLd#`xph{AIX(@o4AeCCEsGa zAfH#z$EO-UA0YB3XG-Ps3ROM#j8Tlt%aZeXg{E9cnpa@&I@**CIh_3cRIlP}_(kL$ zX!7s-*wWWjuLe$oeeQlbX3+oJrOw)xK)lFMW8;!7Icux0&9e8KkE*mM)>_7%HUWu< zG%2@!&-gqJs+4psPv5W0YQLYam&9-ks#24VFUR&EJDkY8mDf+rM?tfl-Hk$OCH*KI zWcOULHp51tdtFGaa#t1(`VVI5x4rvXpqI zrR}4hSawx9AIpJcS=@OcWXJvp$4T=D$YH1kg~9KF5rKDqSiICj#8tiOQw&Mo-5 zdv4{=E>`^A#ZMfsO}Dqk4u0awpgnlRd&tndihWXUxO)$}V$f$+H{0Fkc&-_=*9u?W z$0^|s&4O)W_OvZO+=d&DPYN8y8HPJ?Yo37CI>ESc>n1B}kmzz7zBZ#Ux1fUD*=o0< zf4RLO9&g+mO)?9i|AT>hw(O82yBl3B$l`EEoE2Q1cRS=Owaqju2A|l=I2Kh8xRj5 zes()vSZt&BFzBCo#=|39!C)o3MSpkR?V;8bH%gBU!;Ly0RL5bq>6{1Dz?3GhB+#US&2ghy+}8?bo#m{Z>1uy_N=`p@9~ z5_1&U)5jZ$dp^R#EQ?^Z{CaS0*3+=+N-p?P{)6 zPd*aQZK-(K{XyH!ck#*1pzTkVo`!};g~Y{Pj|YjjL*WbY6c8)4biXnHphT(S|8eU^{J^;X%aHXn&M#mo6fyeVEzk+^-1n5H$1VcU^|7(tg~ zkY<8d_@DBjSyHRyGz+BP_&>C^eaivpcK@GWEoOd|mSFnoSr5GS5n%DZewkSO56-Dr zT()011#nV>#g~Bcc)E>fVGb5wLiC>dMDVC1u`g3Beppz195Hyv`dz$VdBw%}Q?4cU zd!KRfz(K(iGj8Ma3f>zyFWmq9Y;h4kGk!SiG?WlU+YzJqu7gL-#*f28d~LUzd6>lE za)yyMw`wfIq~dUi9kTYhEuBP+%@b4lyGt(g|1%5F*t0IiKd;90<2`VONiQcOzoTyM zm`*;%4qMtE9Iav5QQ>H@NRx!4Q>;7K=ftnM>=^n#;W+2zjrU=f9HM*e++(q&(EnGv z7^kCwuPvn86uIYPXkD&s9wWujR-K!obHBbQjHTPFOsrYk!v5NNE}xt7VaVt0;tn*d zX%337^DvHzW6@l5Wdy@=tGt@deR*EZ;?%SnS4*}=uI*Y9*&QQZ-Q&-xhW=yDC;Q`9 zyJ@zYOp@)x*kdkb#S%5l8pW2V?Nd`0(MwwU)pzM?mg=Zk8qt2#Qk&{W?eIn{pUrH_ zz;cHG`j??J)boEl3n|?R) Date: Sun, 15 Aug 2010 19:46:10 +0200 Subject: [PATCH 202/301] gettextify PS Summary, add note about py2exe --- pyfpdb/PokerStarsSummary.py | 4 ++-- pyfpdb/py2exe_setup.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pyfpdb/PokerStarsSummary.py b/pyfpdb/PokerStarsSummary.py index 347536a9..30421ea2 100644 --- a/pyfpdb/PokerStarsSummary.py +++ b/pyfpdb/PokerStarsSummary.py @@ -69,7 +69,7 @@ class PokerStarsSummary(TourneySummary): elif lines[1].find("FPP")!=-1: self.currency="PSFP" else: - raise FpdbParseError("didn't recognise buyin currency in:"+lines[1]) + raise FpdbParseError(_("didn't recognise buyin currency in:")+lines[1]) if self.currency=="USD" or self.currency=="EUR": result=self.re_BuyInFee.search(lines[1]) @@ -109,7 +109,7 @@ class PokerStarsSummary(TourneySummary): useET=False result=self.re_DateTime.search(lines[currentLine]) if not result: - print "in not result starttime" + print _("in not result starttime") useET=True result=self.re_DateTimeET.search(lines[currentLine]) result=result.groupdict() diff --git a/pyfpdb/py2exe_setup.py b/pyfpdb/py2exe_setup.py index a836ed76..9dbda8dd 100644 --- a/pyfpdb/py2exe_setup.py +++ b/pyfpdb/py2exe_setup.py @@ -69,6 +69,7 @@ Py2exe script for fpdb. # See walkthrough in packaging directory for versions used # Updates to this script have broken python 2.5 compatibility (gio module, msvcr71 references now msvcp90) +# steffeN: Doesnt seem necessary to gettext-ify this, but feel free to if you disagree import os import sys From a0f9d0ddee18486d4564727e487e4e9e2e9d8de4 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 15 Aug 2010 19:55:51 +0200 Subject: [PATCH 203/301] remove useless ongametofpdb file --- pyfpdb/OnGameToFpdb.py | 242 ----------------------------------------- 1 file changed, 242 deletions(-) delete mode 100755 pyfpdb/OnGameToFpdb.py diff --git a/pyfpdb/OnGameToFpdb.py b/pyfpdb/OnGameToFpdb.py deleted file mode 100755 index 80d8d646..00000000 --- a/pyfpdb/OnGameToFpdb.py +++ /dev/null @@ -1,242 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Copyright 2008-2010, Carl Gherardi -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -######################################################################## - -import sys -import Configuration -from HandHistoryConverter import * - -# OnGame HH Format - -#Texas Hold'em $.5-$1 NL (real money), hand #P4-76915775-797 -#Table Kuopio, 20 Sep 2008 11:59 PM - -#Seat 1: .Lucchess ($4.17 in chips) -#Seat 3: Gloff1 ($108 in chips) -#Seat 4: far a ($13.54 in chips) -#Seat 5: helander2222 ($49.77 in chips) -#Seat 6: lopllopl ($62.06 in chips) -#Seat 7: crazyhorse6 ($101.91 in chips) -#Seat 8: peeci ($25.02 in chips) -#Seat 9: Manuelhertz ($49 in chips) -#Seat 10: Eurolll ($58.25 in chips) -#ANTES/BLINDS -#helander2222 posts blind ($0.25), lopllopl posts blind ($0.50). - -#PRE-FLOP -#crazyhorse6 folds, peeci folds, Manuelhertz folds, Eurolll calls $0.50, .Lucchess calls $0.50, Gloff1 folds, far a folds, helander2222 folds, lopllopl checks. - -#FLOP [board cards AH,8H,KH ] -#lopllopl checks, Eurolll checks, .Lucchess checks. - -#TURN [board cards AH,8H,KH,6S ] -#lopllopl checks, Eurolll checks, .Lucchess checks. - -#RIVER [board cards AH,8H,KH,6S,8S ] -#lopllopl checks, Eurolll bets $1.25, .Lucchess folds, lopllopl folds. - -#SHOWDOWN -#Eurolll wins $2.92. - -#SUMMARY -#Dealer: far a -#Pot: $3, (including rake: $0.08) -#.Lucchess, loses $0.50 -#Gloff1, loses $0 -#far a, loses $0 -#helander2222, loses $0.25 -#lopllopl, loses $0.50 -#crazyhorse6, loses $0 -#peeci, loses $0 -#Manuelhertz, loses $0 -#Eurolll, bets $1.75, collects $2.92, net $1.17 - - -class OnGame(HandHistoryConverter): - def __init__(self, config, file): - print "Initialising OnGame converter class" - HandHistoryConverter.__init__(self, config, file, sitename="OnGame") # Call super class init. - self.sitename = "OnGame" - self.setFileType("text", "cp1252") - self.siteId = 5 # Needs to match id entry in Sites database - #self.rexx.setGameInfoRegex('.*Blinds \$?(?P[.0-9]+)/\$?(?P[.0-9]+)') - self.rexx.setSplitHandRegex('\n\n\n+') - - #Texas Hold'em $.5-$1 NL (real money), hand #P4-76915775-797 - #Table Kuopio, 20 Sep 2008 11:59 PM - self.rexx.setHandInfoRegex(r"Texas Hold'em \$?(?P[.0-9]+)-\$?(?P[.0-9]+) NL \(real money\), hand #(?P[-A-Z\d]+)\nTable\ (?P
[\' \w]+), (?P\d\d \w+ \d\d\d\d \d\d:\d\d (AM|PM))") - # SB BB HID TABLE DAY MON YEAR HR12 MIN AMPM - - self.rexx.button_re = re.compile('#SUMMARY\nDealer: (?P.*)\n') - - #Seat 1: .Lucchess ($4.17 in chips) - self.rexx.setPlayerInfoRegex('Seat (?P[0-9]+): (?P.*) \((\$(?P[.0-9]+) in chips)\)') - - #ANTES/BLINDS - #helander2222 posts blind ($0.25), lopllopl posts blind ($0.50). - self.rexx.setPostSbRegex('(?P.*) posts blind \(\$?(?P[.0-9]+)\), ') - self.rexx.setPostBbRegex('\), (?P.*) posts blind \(\$?(?P[.0-9]+)\).') - self.rexx.setPostBothRegex('.*\n(?P.*): posts small \& big blinds \[\$? (?P[.0-9]+)') - self.rexx.setHeroCardsRegex('.*\nDealt\sto\s(?P.*)\s\[ (?P.*) \]') - - #lopllopl checks, Eurolll checks, .Lucchess checks. - self.rexx.setActionStepRegex('(, )?(?P.*?)(?P bets| checks| raises| calls| folds)( \$(?P\d*\.?\d*))?( and is all-in)?') - - #Uchilka shows [ KC,JD ] - self.rexx.setShowdownActionRegex('(?P.*) shows \[ (?P.+) \]') - - # TODO: read SUMMARY correctly for collected pot stuff. - #Uchilka, bets $11.75, collects $23.04, net $11.29 - self.rexx.setCollectPotRegex('(?P.*), bets.+, collects \$(?P\d*\.?\d*), net.* ') - self.rexx.sits_out_re = re.compile('(?P.*) sits out') - self.rexx.compileRegexes() - - def readSupportedGames(self): - pass - - def determineGameType(self): - # Cheating with this regex, only support nlhe at the moment - gametype = ["ring", "hold", "nl"] - - m = self.rexx.hand_info_re.search(self.obs) - gametype = gametype + [m.group('SB')] - gametype = gametype + [m.group('BB')] - - return gametype - - def readHandInfo(self, hand): - m = self.rexx.hand_info_re.search(hand.string) - hand.handid = m.group('HID') - hand.tablename = m.group('TABLE') - #hand.buttonpos = self.rexx.button_re.search(hand.string).group('BUTTONPNAME') -# These work, but the info is already in the Hand class - should be used for tourneys though. -# m.group('SB') -# m.group('BB') -# m.group('GAMETYPE') - -# Believe Everleaf time is GMT/UTC, no transation necessary -# Stars format (Nov 10 2008): 2008/11/07 12:38:49 CET [2008/11/07 7:38:49 ET] -# or : 2008/11/07 12:38:49 ET -# Not getting it in my HH files yet, so using -# 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'), "%d %b %Y %I:%M %p") - #hand.starttime = "%d/%02d/%02d %d:%02d:%02d ET" %(int(m.group('YEAR')), int(m.group('MON')), int(m.group('DAY')), - #int(m.group('HR')), int(m.group('MIN')), int(m.group('SEC'))) - - def readPlayerStacks(self, hand): - m = self.rexx.player_info_re.finditer(hand.string) - players = [] - for a in m: - hand.addPlayer(int(a.group('SEAT')), a.group('PNAME'), a.group('CASH')) - - def markStreets(self, hand): - # PREFLOP = ** Dealing down cards ** - # This re fails if, say, river is missing; then we don't get the ** that starts the river. - #m = re.search('(\*\* Dealing down cards \*\*\n)(?P.*?\n\*\*)?( Dealing Flop \*\* \[ (?P\S\S), (?P\S\S), (?P\S\S) \])?(?P.*?\*\*)?( Dealing Turn \*\* \[ (?P\S\S) \])?(?P.*?\*\*)?( Dealing River \*\* \[ (?P\S\S) \])?(?P.*)', hand.string,re.DOTALL) - - m = re.search(r"PRE-FLOP(?P.+(?=FLOP)|.+(?=SHOWDOWN))" - r"(FLOP (?P\[board cards .+ \].+(?=TURN)|.+(?=SHOWDOWN)))?" - r"(TURN (?P\[board cards .+ \].+(?=RIVER)|.+(?=SHOWDOWN)))?" - r"(RIVER (?P\[board cards .+ \].+(?=SHOWDOWN)))?", hand.string,re.DOTALL) - - hand.addStreets(m) - - - def readCommunityCards(self, hand, street): - self.rexx.board_re = re.compile(r"\[board cards (?P.+) \]") - print hand.streets.group(street) - if street in ('FLOP','TURN','RIVER'): # a list of streets which get dealt community cards (i.e. all but PREFLOP) - m = self.rexx.board_re.search(hand.streets.group(street)) - hand.setCommunityCards(street, m.group('CARDS').split(',')) - - def readBlinds(self, hand): - try: - m = self.rexx.small_blind_re.search(hand.string) - hand.addBlind(m.group('PNAME'), 'small blind', m.group('SB')) - except: # no small blind - hand.addBlind(None, None, None) - for a in self.rexx.big_blind_re.finditer(hand.string): - hand.addBlind(a.group('PNAME'), 'big blind', a.group('BB')) - for a in self.rexx.both_blinds_re.finditer(hand.string): - hand.addBlind(a.group('PNAME'), 'small & big blinds', a.group('SBBB')) - - def readHeroCards(self, hand): - m = self.rexx.hero_cards_re.search(hand.string) - if(m == None): - #Not involved in hand - hand.involved = False - else: - hand.hero = m.group('PNAME') - # "2c, qh" -> set(["2c","qc"]) - # Also works with Omaha hands. - cards = m.group('CARDS') - cards = set(cards.split(',')) - hand.addHoleCards(cards, m.group('PNAME')) - - def readAction(self, hand, street): - m = self.rexx.action_re.finditer(hand.streets.group(street)) - for action in m: - if action.group('ATYPE') == ' raises': - hand.addRaiseTo( street, action.group('PNAME'), action.group('BET') ) - elif action.group('ATYPE') == ' calls': - hand.addCall( street, action.group('PNAME'), action.group('BET') ) - elif action.group('ATYPE') == ' bets': - hand.addBet( street, action.group('PNAME'), action.group('BET') ) - elif action.group('ATYPE') == ' folds': - hand.addFold( street, action.group('PNAME')) - elif action.group('ATYPE') == ' checks': - hand.addCheck( street, action.group('PNAME')) - else: - print "DEBUG: unimplemented readAction: %s %s" %(action.group('PNAME'),action.group('ATYPE'),) - #hand.actions[street] += [[action.group('PNAME'), action.group('ATYPE')]] - # TODO: Everleaf does not record uncalled bets. - - def readShowdownActions(self, hand): - for shows in self.rexx.showdown_action_re.finditer(hand.string): - cards = shows.group('CARDS') - cards = set(cards.split(',')) - hand.addShownCards(cards, shows.group('PNAME')) - - def readCollectPot(self,hand): - for m in self.rexx.collect_pot_re.finditer(hand.string): - hand.addCollectPot(player=m.group('PNAME'),pot=m.group('POT')) - - def readShownCards(self,hand): - return - #for m in self.rexx.collect_pot_re.finditer(hand.string): - #if m.group('CARDS') is not None: - #cards = m.group('CARDS') - #cards = set(cards.split(',')) - #hand.addShownCards(cards=None, player=m.group('PNAME'), holeandboard=cards) - - - - -if __name__ == "__main__": - c = Configuration.Config() - if len(sys.argv) == 1: - testfile = "regression-test-files/ongame/nlhe/ong NLH handhq_0.txt" - else: - testfile = sys.argv[1] - e = OnGame(c, testfile) - e.processFile() - print str(e) From 787ea15c01aebd9d5e649cf7768630ec54a98084 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 15 Aug 2010 20:06:30 +0200 Subject: [PATCH 204/301] gettextify GuiDatabase --- pyfpdb/GuiDatabase.py | 57 ++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/pyfpdb/GuiDatabase.py b/pyfpdb/GuiDatabase.py index a808c7df..2529643b 100755 --- a/pyfpdb/GuiDatabase.py +++ b/pyfpdb/GuiDatabase.py @@ -35,6 +35,9 @@ import Exceptions import Database import SQL +import gettext +trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) +trans.install() class GuiDatabase: @@ -92,19 +95,19 @@ class GuiDatabase: self.scrolledwindow.add(self.listview) self.vbox.pack_start(self.scrolledwindow, expand=True, fill=True, padding=0) - refreshbutton = gtk.Button("Refresh") + refreshbutton = gtk.Button(_("Refresh")) refreshbutton.connect("clicked", self.refresh, None) self.vbox.pack_start(refreshbutton, False, False, 3) refreshbutton.show() - col = self.addTextColumn("Type", 0, False) - col = self.addTextColumn("Name", 1, False) - col = self.addTextColumn("Description", 2, True) - col = self.addTextColumn("Username", 3, True) - col = self.addTextColumn("Password", 4, True) - col = self.addTextColumn("Host", 5, True) - col = self.addTextObjColumn("Default", 6, 6) - col = self.addTextObjColumn("Status", 7, 8) + col = self.addTextColumn(_("Type"), 0, False) + col = self.addTextColumn(_("Name"), 1, False) + col = self.addTextColumn(_("Description"), 2, True) + col = self.addTextColumn(_("Username"), 3, True) + col = self.addTextColumn(_("Password"), 4, True) + col = self.addTextColumn(_("Host"), 5, True) + col = self.addTextObjColumn(_("Default"), 6, 6) + col = self.addTextObjColumn(_("Status"), 7, 8) #self.listview.get_selection().set_mode(gtk.SELECTION_SINGLE) #self.listview.get_selection().connect("changed", self.on_selection_changed) @@ -237,7 +240,7 @@ class GuiDatabase: self.liststore.clear() #self.listcols = [] - dia = self.info_box2(None, 'Testing database connections ... ', "", False, False) + dia = self.info_box2(None, _('Testing database connections ... '), "", False, False) while gtk.events_pending(): gtk.mainiteration() @@ -267,49 +270,47 @@ class GuiDatabase: try: # is creating empty db for sqlite ... mod db.py further? # add noDbTables flag to db.py? - log.debug("loaddbs: trying to connect to: %s/%s, %s, %s/%s" % (str(dbms_num),dbms,name,user,passwd)) + log.debug(_("loaddbs: trying to connect to: %s/%s, %s, %s/%s") % (str(dbms_num),dbms,name,user,passwd)) db.connect(backend=dbms_num, host=host, database=name, user=user, password=passwd, create=False) if db.connected: - log.debug(" connected ok") + log.debug(_(" connected ok")) status = 'ok' icon = gtk.STOCK_APPLY if db.wrongDbVersion: status = 'old' icon = gtk.STOCK_INFO else: - log.debug(" not connected but no exception") + log.debug(_(" not connected but no exception")) except Exceptions.FpdbMySQLAccessDenied: - err_msg = "MySQL Server reports: Access denied. Are your permissions set correctly?" + err_msg = _("MySQL Server reports: Access denied. Are your permissions set correctly?") status = "failed" icon = gtk.STOCK_CANCEL except Exceptions.FpdbMySQLNoDatabase: - err_msg = "MySQL client reports: 2002 or 2003 error. Unable to connect - " \ - + "Please check that the MySQL service has been started" + err_msg = _("MySQL client reports: 2002 or 2003 error. Unable to connect - Please check that the MySQL service has been started") status = "failed" icon = gtk.STOCK_CANCEL except Exceptions.FpdbPostgresqlAccessDenied: - err_msg = "Postgres Server reports: Access denied. Are your permissions set correctly?" + err_msg = _("Postgres Server reports: Access denied. Are your permissions set correctly?") status = "failed" except Exceptions.FpdbPostgresqlNoDatabase: - err_msg = "Postgres client reports: Unable to connect - " \ - + "Please check that the Postgres service has been started" + err_msg = _("Postgres client reports: Unable to connect - Please check that the Postgres service has been started") status = "failed" icon = gtk.STOCK_CANCEL except: err = traceback.extract_tb(sys.exc_info()[2])[-1] log.info( 'db connection to '+str(dbms_num)+','+host+','+name+','+user+','+passwd+' failed: ' - + err[2] + "(" + str(err[1]) + "): " + str(sys.exc_info()[1]) ) + + err[2] + "(" + str(err[1]) + "): " + str(sys.exc_info()[1]) )#TODO Gettextify status = "failed" icon = gtk.STOCK_CANCEL if err_msg: log.info( 'db connection to '+str(dbms_num)+','+host+','+name+','+user+','+passwd+' failed: ' - + err_msg ) + + err_msg )#TODO Gettextify b = gtk.Button(name) b.show() iter = self.liststore.append( (dbms, name, comment, user, passwd, host, "", default_icon, status, icon) ) - self.info_box2(dia[0], "finished.", "", False, True) + self.info_box2(dia[0], _("finished."), "", False, True) self.listview.show() self.scrolledwindow.show() self.vbox.show() @@ -319,7 +320,7 @@ class GuiDatabase: self.dia.show() except: err = traceback.extract_tb(sys.exc_info()[2])[-1] - print 'loaddbs error: '+str(dbms_num)+','+host+','+name+','+user+','+passwd+' failed: ' \ + print _('loaddbs error: ')+str(dbms_num)+','+host+','+name+','+user+','+passwd+' failed: ' \ + err[2] + "(" + str(err[1]) + "): " + str(sys.exc_info()[1]) def sortCols(self, col, n): @@ -340,9 +341,9 @@ class GuiDatabase: # to turn indicator off for other cols except: err = traceback.extract_tb(sys.exc_info()[2]) - print "***sortCols error: " + str(sys.exc_info()[1]) + print _("***sortCols error: ") + str(sys.exc_info()[1]) print "\n".join( [e[0]+':'+str(e[1])+" "+e[2] for e in err] ) - log.info('sortCols error: ' + str(sys.exc_info()) ) + log.info(_('sortCols error: ') + str(sys.exc_info()) ) def refresh(self, widget, data): self.loadDbs() @@ -363,7 +364,7 @@ class GuiDatabase: for d in c.get_children(): log.info('child: '+str(d)+' is a '+str(d.__class__)) if isinstance(d, gtk.Button): - log.info('removing button '+str(d)) + log.info(_('removing button %s'% str(d))) c.remove(d) if str2: dia.format_secondary_text(str2) @@ -412,12 +413,12 @@ if __name__=="__main__": config = Configuration.Config() win = gtk.Window(gtk.WINDOW_TOPLEVEL) - win.set_title("Test Log Viewer") + win.set_title(_("Test Log Viewer")) win.set_border_width(1) win.set_default_size(600, 500) win.set_resizable(True) - dia = gtk.Dialog("Log Viewer", + dia = gtk.Dialog(_("Log Viewer"), win, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_CLOSE, gtk.RESPONSE_OK)) From 21211a7669f7a8f88b4ebcb36aa0b92021a5490e Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 15 Aug 2010 20:34:36 +0200 Subject: [PATCH 205/301] update po files --- pyfpdb/locale/fpdb-en_GB.po | 444 +++++++++++++++++++++------------ pyfpdb/locale/fpdb-hu_HU.po | 472 ++++++++++++++++++++++++------------ 2 files changed, 609 insertions(+), 307 deletions(-) diff --git a/pyfpdb/locale/fpdb-en_GB.po b/pyfpdb/locale/fpdb-en_GB.po index 9fb5bf44..88fd28f9 100644 --- a/pyfpdb/locale/fpdb-en_GB.po +++ b/pyfpdb/locale/fpdb-en_GB.po @@ -5,12 +5,12 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2010-08-15 06:01+CEST\n" +"POT-Creation-Date: 2010-08-15 20:33+CEST\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: ENCODING\n" "Generated-By: pygettext.py 1.5\n" @@ -51,6 +51,20 @@ msgstr "" msgid "follow (tail -f) the input" msgstr "" +#: Card.py:159 +msgid "fpdb card encoding(same as pokersource)" +msgstr "" + +#: Charset.py:45 Charset.py:60 Charset.py:75 Charset.py:86 Charset.py:94 +msgid "" +"Could not convert: \"%s\"\n" +msgstr "" + +#: Charset.py:48 Charset.py:63 Charset.py:78 +msgid "" +"Could not encode: \"%s\"\n" +msgstr "" + #: Configuration.py:98 msgid "" "No %s found\n" @@ -247,11 +261,11 @@ msgstr "" msgid " Clear Dates " msgstr "" -#: Filters.py:929 fpdb.pyw:713 +#: Filters.py:929 fpdb.pyw:719 msgid "Pick a date" msgstr "" -#: Filters.py:935 fpdb.pyw:719 +#: Filters.py:935 fpdb.pyw:725 msgid "Done" msgstr "" @@ -463,6 +477,98 @@ msgstr "" msgid "GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d in %s seconds - %.0f/sec" msgstr "" +#: GuiDatabase.py:98 GuiLogView.py:88 +msgid "Refresh" +msgstr "" + +#: GuiDatabase.py:103 +msgid "Type" +msgstr "" + +#: GuiDatabase.py:104 +msgid "Name" +msgstr "" + +#: GuiDatabase.py:105 +msgid "Description" +msgstr "" + +#: GuiDatabase.py:106 GuiImapFetcher.py:111 +msgid "Username" +msgstr "" + +#: GuiDatabase.py:107 GuiImapFetcher.py:111 +msgid "Password" +msgstr "" + +#: GuiDatabase.py:108 +msgid "Host" +msgstr "" + +#: GuiDatabase.py:109 +msgid "Default" +msgstr "" + +#: GuiDatabase.py:110 +msgid "Status" +msgstr "" + +#: GuiDatabase.py:243 +msgid "Testing database connections ... " +msgstr "" + +#: GuiDatabase.py:273 +msgid "loaddbs: trying to connect to: %s/%s, %s, %s/%s" +msgstr "" + +#: GuiDatabase.py:276 +msgid " connected ok" +msgstr "" + +#: GuiDatabase.py:283 +msgid " not connected but no exception" +msgstr "" + +#: GuiDatabase.py:285 fpdb.pyw:904 +msgid "MySQL Server reports: Access denied. Are your permissions set correctly?" +msgstr "" + +#: GuiDatabase.py:289 +msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - Please check that the MySQL service has been started" +msgstr "" + +#: GuiDatabase.py:293 fpdb.pyw:909 +msgid "Postgres Server reports: Access denied. Are your permissions set correctly?" +msgstr "" + +#: GuiDatabase.py:296 +msgid "Postgres client reports: Unable to connect - Please check that the Postgres service has been started" +msgstr "" + +#: GuiDatabase.py:313 +msgid "finished." +msgstr "" + +#: GuiDatabase.py:323 +msgid "loaddbs error: " +msgstr "" + +#: GuiDatabase.py:344 GuiLogView.py:192 GuiTourneyPlayerStats.py:454 +msgid "***sortCols error: " +msgstr "" + +#: GuiDatabase.py:346 +msgid "sortCols error: " +msgstr "" + +#: GuiDatabase.py:416 GuiLogView.py:205 +msgid "Test Log Viewer" +msgstr "" + +#: GuiDatabase.py:421 GuiLogView.py:210 +msgid "Log Viewer" +msgstr "" + #: GuiGraphViewer.py:39 msgid "" "Failed to load libs for graphing, graphing will not function. Please\n" @@ -579,10 +685,6 @@ msgstr "" msgid "Mailserver" msgstr "" -#: GuiImapFetcher.py:111 -msgid "Password" -msgstr "" - #: GuiImapFetcher.py:111 msgid "Site" msgstr "" @@ -591,10 +693,6 @@ msgstr "" msgid "Use SSL" msgstr "" -#: GuiImapFetcher.py:111 -msgid "Username" -msgstr "" - #: GuiImapFetcher.py:142 msgid "Yes" msgstr "" @@ -603,6 +701,10 @@ msgstr "" msgid "No" msgstr "" +#: GuiLogView.py:53 +msgid "Log Messages" +msgstr "" + #: GuiPositionalStats.py:135 msgid "DEBUG: activesite set to %s" msgstr "" @@ -623,7 +725,7 @@ msgstr "" msgid "Test Preferences Dialog" msgstr "" -#: GuiPrefs.py:181 fpdb.pyw:288 +#: GuiPrefs.py:181 fpdb.pyw:294 msgid "Preferences" msgstr "" @@ -655,10 +757,6 @@ msgstr "" msgid "_Refresh Stats" msgstr "" -#: GuiTourneyPlayerStats.py:454 -msgid "***sortCols error: " -msgstr "" - #: GuiTourneyViewer.py:37 msgid "Enter the tourney number you want to display:" msgstr "" @@ -693,7 +791,7 @@ msgid "" "HUD_main: starting ..." msgstr "" -#: HUD_main.pyw:80 fpdb.pyw:868 +#: HUD_main.pyw:80 fpdb.pyw:874 msgid "Logfile is " msgstr "" @@ -706,7 +804,7 @@ msgid "" "Note: error output is being diverted to:\n" msgstr "" -#: HUD_main.pyw:87 fpdb.pyw:1130 +#: HUD_main.pyw:87 fpdb.pyw:1136 msgid "" "\n" "Any major error will be reported there _only_.\n" @@ -1405,6 +1503,18 @@ msgstr "" msgid "press enter to end" msgstr "" +#: P5sResultsParser.py:10 +msgid "You need to manually enter the playername" +msgstr "" + +#: PokerStarsSummary.py:72 +msgid "didn't recognise buyin currency in:" +msgstr "" + +#: PokerStarsSummary.py:112 +msgid "in not result starttime" +msgstr "" + #: PokerStarsToFpdb.py:172 msgid "determineGameType: Unable to recognise gametype from: '%s'" msgstr "" @@ -1433,495 +1543,507 @@ msgstr "" msgid "reading antes" msgstr "" -#: fpdb.pyw:40 +#: Tables_Demo.py:64 +msgid "Fake HUD Main Window" +msgstr "" + +#: Tables_Demo.py:87 +msgid "enter table name to find: " +msgstr "" + +#: Tables_Demo.py:112 +msgid "calling main" +msgstr "" + +#: WinTables.py:70 +msgid "Window %s not found. Skipping." +msgstr "" + +#: WinTables.py:73 +msgid "self.window doesn't exist? why?" +msgstr "" + +#: fpdb.pyw:46 msgid "" " - press return to continue\n" msgstr "" -#: fpdb.pyw:47 +#: fpdb.pyw:53 msgid "" "\n" "python 2.5 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n" msgstr "" -#: fpdb.pyw:48 fpdb.pyw:60 fpdb.pyw:82 +#: fpdb.pyw:54 fpdb.pyw:66 fpdb.pyw:88 msgid "Press ENTER to continue." msgstr "" -#: fpdb.pyw:59 +#: fpdb.pyw:65 msgid "We appear to be running in Windows, but the Windows Python Extensions are not loading. Please install the PYWIN32 package from http://sourceforge.net/projects/pywin32/" msgstr "" -#: fpdb.pyw:81 +#: fpdb.pyw:87 msgid "Unable to load PYGTK modules required for GUI. Please install PyCairo, PyGObject, and PyGTK from www.pygtk.org." msgstr "" -#: fpdb.pyw:239 +#: fpdb.pyw:245 msgid "Copyright 2008-2010, Steffen, Eratosthenes, Carl Gherardi, Eric Blade, _mt, sqlcoder, Bostik, and others" msgstr "" -#: fpdb.pyw:240 +#: fpdb.pyw:246 msgid "You are free to change, and distribute original or changed versions of fpdb within the rules set out by the license" msgstr "" -#: fpdb.pyw:241 +#: fpdb.pyw:247 msgid "Please see fpdb's start screen for license information" msgstr "" -#: fpdb.pyw:245 +#: fpdb.pyw:251 msgid "and others" msgstr "" -#: fpdb.pyw:251 +#: fpdb.pyw:257 msgid "Operating System" msgstr "" -#: fpdb.pyw:271 +#: fpdb.pyw:277 msgid "Your config file is: " msgstr "" -#: fpdb.pyw:276 +#: fpdb.pyw:282 msgid "Version Information:" msgstr "" -#: fpdb.pyw:283 +#: fpdb.pyw:289 msgid "Threads: " msgstr "" -#: fpdb.pyw:306 +#: fpdb.pyw:312 msgid "Updated preferences have not been loaded because windows are open. Re-start fpdb to load them." msgstr "" -#: fpdb.pyw:316 +#: fpdb.pyw:322 msgid "Maintain Databases" msgstr "" -#: fpdb.pyw:326 +#: fpdb.pyw:332 msgid "saving updated db data" msgstr "" -#: fpdb.pyw:333 +#: fpdb.pyw:339 msgid "guidb response was " msgstr "" -#: fpdb.pyw:339 +#: fpdb.pyw:345 msgid "Cannot open Database Maintenance window because other windows have been opened. Re-start fpdb to use this option." msgstr "" -#: fpdb.pyw:342 +#: fpdb.pyw:348 msgid "Number of Hands: " msgstr "" -#: fpdb.pyw:343 +#: fpdb.pyw:349 msgid "" "\n" "Number of Tourneys: " msgstr "" -#: fpdb.pyw:344 +#: fpdb.pyw:350 msgid "" "\n" "Number of TourneyTypes: " msgstr "" -#: fpdb.pyw:345 +#: fpdb.pyw:351 msgid "Database Statistics" msgstr "" -#: fpdb.pyw:354 +#: fpdb.pyw:360 msgid "HUD Configurator - choose category" msgstr "" -#: fpdb.pyw:360 +#: fpdb.pyw:366 msgid "Please select the game category for which you want to configure HUD stats:" msgstr "" -#: fpdb.pyw:412 +#: fpdb.pyw:418 msgid "HUD Configurator - please choose your stats" msgstr "" -#: fpdb.pyw:418 +#: fpdb.pyw:424 msgid "Please choose the stats you wish to use in the below table." msgstr "" -#: fpdb.pyw:422 +#: fpdb.pyw:428 msgid "Note that you may not select any stat more than once or it will crash." msgstr "" -#: fpdb.pyw:426 +#: fpdb.pyw:432 msgid "It is not currently possible to select \"empty\" or anything else to that end." msgstr "" -#: fpdb.pyw:430 +#: fpdb.pyw:436 msgid "To configure things like colouring you will still have to manually edit your HUD_config.xml." msgstr "" -#: fpdb.pyw:537 +#: fpdb.pyw:543 msgid "Confirm deleting and recreating tables" msgstr "" -#: fpdb.pyw:538 +#: fpdb.pyw:544 msgid "Please confirm that you want to (re-)create the tables. If there already are tables in the database " msgstr "" -#: fpdb.pyw:539 +#: fpdb.pyw:545 msgid "" " they will be deleted.\n" "This may take a while." msgstr "" -#: fpdb.pyw:564 +#: fpdb.pyw:570 msgid "User cancelled recreating tables" msgstr "" -#: fpdb.pyw:571 +#: fpdb.pyw:577 msgid "Please confirm that you want to re-create the HUD cache." msgstr "" -#: fpdb.pyw:579 +#: fpdb.pyw:585 msgid " Hero's cache starts: " msgstr "" -#: fpdb.pyw:593 +#: fpdb.pyw:599 msgid " Villains' cache starts: " msgstr "" -#: fpdb.pyw:606 +#: fpdb.pyw:612 msgid " Rebuilding HUD Cache ... " msgstr "" -#: fpdb.pyw:614 +#: fpdb.pyw:620 msgid "User cancelled rebuilding hud cache" msgstr "" -#: fpdb.pyw:626 +#: fpdb.pyw:632 msgid "Confirm rebuilding database indexes" msgstr "" -#: fpdb.pyw:627 +#: fpdb.pyw:633 msgid "Please confirm that you want to rebuild the database indexes." msgstr "" -#: fpdb.pyw:635 +#: fpdb.pyw:641 msgid " Rebuilding Indexes ... " msgstr "" -#: fpdb.pyw:642 +#: fpdb.pyw:648 msgid " Cleaning Database ... " msgstr "" -#: fpdb.pyw:647 +#: fpdb.pyw:653 msgid " Analyzing Database ... " msgstr "" -#: fpdb.pyw:652 +#: fpdb.pyw:658 msgid "User cancelled rebuilding db indexes" msgstr "" -#: fpdb.pyw:747 +#: fpdb.pyw:753 msgid "Unimplemented: Save Profile (try saving a HUD layout, that should do it)" msgstr "" -#: fpdb.pyw:750 +#: fpdb.pyw:756 msgid "Fatal Error - Config File Missing" msgstr "" -#: fpdb.pyw:752 +#: fpdb.pyw:758 msgid "Please copy the config file from the docs folder to:" msgstr "" -#: fpdb.pyw:760 +#: fpdb.pyw:766 msgid "and edit it according to the install documentation at http://fpdb.sourceforge.net" msgstr "" -#: fpdb.pyw:817 +#: fpdb.pyw:823 msgid "_Main" msgstr "" -#: fpdb.pyw:818 fpdb.pyw:846 +#: fpdb.pyw:824 fpdb.pyw:852 msgid "_Quit" msgstr "" -#: fpdb.pyw:819 +#: fpdb.pyw:825 msgid "L" msgstr "" -#: fpdb.pyw:819 +#: fpdb.pyw:825 msgid "_Load Profile (broken)" msgstr "" -#: fpdb.pyw:820 +#: fpdb.pyw:826 msgid "S" msgstr "" -#: fpdb.pyw:820 +#: fpdb.pyw:826 msgid "_Save Profile (todo)" msgstr "" -#: fpdb.pyw:821 +#: fpdb.pyw:827 msgid "F" msgstr "" -#: fpdb.pyw:821 +#: fpdb.pyw:827 msgid "Pre_ferences" msgstr "" -#: fpdb.pyw:822 +#: fpdb.pyw:828 msgid "_Import" msgstr "" -#: fpdb.pyw:823 +#: fpdb.pyw:829 msgid "_Set HandHistory Archive Directory" msgstr "" -#: fpdb.pyw:824 +#: fpdb.pyw:830 msgid "B" msgstr "" -#: fpdb.pyw:824 +#: fpdb.pyw:830 msgid "_Bulk Import" msgstr "" -#: fpdb.pyw:825 +#: fpdb.pyw:831 msgid "I" msgstr "" -#: fpdb.pyw:825 +#: fpdb.pyw:831 msgid "_Import through eMail/IMAP" msgstr "" -#: fpdb.pyw:826 +#: fpdb.pyw:832 msgid "_Viewers" msgstr "" -#: fpdb.pyw:827 +#: fpdb.pyw:833 msgid "A" msgstr "" -#: fpdb.pyw:827 +#: fpdb.pyw:833 msgid "_Auto Import and HUD" msgstr "" -#: fpdb.pyw:828 +#: fpdb.pyw:834 msgid "H" msgstr "" -#: fpdb.pyw:828 +#: fpdb.pyw:834 msgid "_HUD Configurator" msgstr "" -#: fpdb.pyw:829 +#: fpdb.pyw:835 msgid "G" msgstr "" -#: fpdb.pyw:829 +#: fpdb.pyw:835 msgid "_Graphs" msgstr "" -#: fpdb.pyw:830 +#: fpdb.pyw:836 msgid "P" msgstr "" -#: fpdb.pyw:830 +#: fpdb.pyw:836 msgid "Ring _Player Stats (tabulated view)" msgstr "" -#: fpdb.pyw:831 +#: fpdb.pyw:837 msgid "T" msgstr "" -#: fpdb.pyw:831 +#: fpdb.pyw:837 msgid "_Tourney Player Stats (tabulated view)" msgstr "" -#: fpdb.pyw:832 +#: fpdb.pyw:838 msgid "Tourney _Viewer" msgstr "" -#: fpdb.pyw:833 +#: fpdb.pyw:839 msgid "O" msgstr "" -#: fpdb.pyw:833 +#: fpdb.pyw:839 msgid "P_ositional Stats (tabulated view, not on sqlite)" msgstr "" -#: fpdb.pyw:834 fpdb.pyw:1051 +#: fpdb.pyw:840 fpdb.pyw:1057 msgid "Session Stats" msgstr "" -#: fpdb.pyw:835 +#: fpdb.pyw:841 msgid "_Database" msgstr "" -#: fpdb.pyw:836 +#: fpdb.pyw:842 msgid "_Maintain Databases" msgstr "" -#: fpdb.pyw:837 +#: fpdb.pyw:843 msgid "Create or Recreate _Tables" msgstr "" -#: fpdb.pyw:838 +#: fpdb.pyw:844 msgid "Rebuild HUD Cache" msgstr "" -#: fpdb.pyw:839 +#: fpdb.pyw:845 msgid "Rebuild DB Indexes" msgstr "" -#: fpdb.pyw:840 +#: fpdb.pyw:846 msgid "_Statistics" msgstr "" -#: fpdb.pyw:841 +#: fpdb.pyw:847 msgid "Dump Database to Textfile (takes ALOT of time)" msgstr "" -#: fpdb.pyw:842 +#: fpdb.pyw:848 msgid "_Help" msgstr "" -#: fpdb.pyw:843 +#: fpdb.pyw:849 msgid "_Log Messages" msgstr "" -#: fpdb.pyw:844 +#: fpdb.pyw:850 msgid "A_bout, License, Copying" msgstr "" -#: fpdb.pyw:862 +#: fpdb.pyw:868 msgid "" "There is an error in your config file\n" msgstr "" -#: fpdb.pyw:863 +#: fpdb.pyw:869 msgid "" "\n" "\n" "Error is: " msgstr "" -#: fpdb.pyw:864 +#: fpdb.pyw:870 msgid "CONFIG FILE ERROR" msgstr "" -#: fpdb.pyw:870 +#: fpdb.pyw:876 msgid "Config file" msgstr "" -#: fpdb.pyw:871 +#: fpdb.pyw:877 msgid "" "has been created at:\n" "%s.\n" msgstr "" -#: fpdb.pyw:872 +#: fpdb.pyw:878 msgid "Edit your screen_name and hand history path in the supported_sites " msgstr "" -#: fpdb.pyw:873 +#: fpdb.pyw:879 msgid "section of the Preferences window (Main menu) before trying to import hands." msgstr "" -#: fpdb.pyw:896 +#: fpdb.pyw:902 msgid "Connected to SQLite: %(database)s" msgstr "" -#: fpdb.pyw:898 -msgid "MySQL Server reports: Access denied. Are your permissions set correctly?" -msgstr "" - -#: fpdb.pyw:900 +#: fpdb.pyw:906 msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " msgstr "" -#: fpdb.pyw:901 +#: fpdb.pyw:907 msgid "Please check that the MySQL service has been started" msgstr "" -#: fpdb.pyw:903 -msgid "Postgres Server reports: Access denied. Are your permissions set correctly?" -msgstr "" - -#: fpdb.pyw:905 +#: fpdb.pyw:911 msgid "Postgres client reports: Unable to connect - " msgstr "" -#: fpdb.pyw:906 +#: fpdb.pyw:912 msgid "Please check that the Postgres service has been started" msgstr "" -#: fpdb.pyw:930 +#: fpdb.pyw:936 msgid "Strong Warning - Invalid database version" msgstr "" -#: fpdb.pyw:932 +#: fpdb.pyw:938 msgid "An invalid DB version or missing tables have been detected." msgstr "" -#: fpdb.pyw:936 +#: fpdb.pyw:942 msgid "This error is not necessarily fatal but it is strongly recommended that you recreate the tables by using the Database menu." msgstr "" -#: fpdb.pyw:940 +#: fpdb.pyw:946 msgid "Not doing this will likely lead to misbehaviour including fpdb crashes, corrupt data etc." msgstr "" -#: fpdb.pyw:953 +#: fpdb.pyw:959 msgid "Status: Connected to %s database named %s on host %s" msgstr "" -#: fpdb.pyw:963 +#: fpdb.pyw:969 msgid "" "\n" "Global lock taken by" msgstr "" -#: fpdb.pyw:966 +#: fpdb.pyw:972 msgid "" "\n" "Failed to get global lock, it is currently held by" msgstr "" -#: fpdb.pyw:976 +#: fpdb.pyw:982 msgid "Quitting normally" msgstr "" -#: fpdb.pyw:1000 +#: fpdb.pyw:1006 msgid "" "Global lock released.\n" msgstr "" -#: fpdb.pyw:1007 +#: fpdb.pyw:1013 msgid "Auto Import" msgstr "" -#: fpdb.pyw:1014 +#: fpdb.pyw:1020 msgid "Bulk Import" msgstr "" -#: fpdb.pyw:1020 +#: fpdb.pyw:1026 msgid "eMail Import" msgstr "" -#: fpdb.pyw:1027 +#: fpdb.pyw:1033 msgid "Ring Player Stats" msgstr "" -#: fpdb.pyw:1033 +#: fpdb.pyw:1039 msgid "Tourney Player Stats" msgstr "" -#: fpdb.pyw:1039 +#: fpdb.pyw:1045 msgid "Tourney Viewer" msgstr "" -#: fpdb.pyw:1045 +#: fpdb.pyw:1051 msgid "Positional Stats" msgstr "" -#: fpdb.pyw:1055 +#: fpdb.pyw:1061 msgid "" "Fpdb needs translators!\n" "If you speak another language and have a few minutes or more to spare get in touch by emailing steffen@schaumburger.info\n" @@ -1942,40 +2064,60 @@ msgid "" "You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt and mit.txt in the fpdb installation directory." msgstr "" -#: fpdb.pyw:1072 +#: fpdb.pyw:1078 msgid "Help" msgstr "" -#: fpdb.pyw:1079 +#: fpdb.pyw:1085 msgid "Graphs" msgstr "" -#: fpdb.pyw:1129 +#: fpdb.pyw:1135 msgid "" "\n" "Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt in:\n" msgstr "" -#: fpdb.pyw:1158 +#: fpdb.pyw:1164 msgid "fpdb starting ..." msgstr "" -#: fpdb.pyw:1207 +#: fpdb.pyw:1213 msgid "FPDB WARNING" msgstr "" -#: fpdb.pyw:1226 +#: fpdb.pyw:1232 msgid "" "WARNING: Unable to find output hh directory %s\n" "\n" " Press YES to create this directory, or NO to select a new one." msgstr "" -#: fpdb.pyw:1234 +#: fpdb.pyw:1240 msgid "WARNING: Unable to create hand output directory. Importing is not likely to work until this is fixed." msgstr "" -#: fpdb.pyw:1239 +#: fpdb.pyw:1245 msgid "Select HH Output Directory" msgstr "" +#: test_Database.py:50 +msgid "DEBUG: Testing variance function" +msgstr "" + +#: test_Database.py:51 +msgid "DEBUG: result: %s expecting: 0.666666 (result-expecting ~= 0.0): %s" +msgstr "" + +#: windows_make_bats.py:31 +msgid "" +"\n" +"This script is only for windows\n" +msgstr "" + +#: windows_make_bats.py:58 +msgid "" +"\n" +"no gtk directories found in your path - install gtk or edit the path manually\n" +msgstr "" + diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index 0501c121..fe71281f 100644 --- a/pyfpdb/locale/fpdb-hu_HU.po +++ b/pyfpdb/locale/fpdb-hu_HU.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.904\n" -"POT-Creation-Date: 2010-08-15 06:01+CEST\n" +"POT-Creation-Date: 2010-08-15 20:33+CEST\n" "PO-Revision-Date: 2010-08-15 15:22+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" @@ -51,6 +51,20 @@ msgstr "feldolgozás eredményének helye" msgid "follow (tail -f) the input" msgstr "kövesse a kimenetet (tail -f)" +#: Card.py:159 +msgid "fpdb card encoding(same as pokersource)" +msgstr "" + +#: Charset.py:45 Charset.py:60 Charset.py:75 Charset.py:86 Charset.py:94 +#, fuzzy +msgid "Could not convert: \"%s\"\n" +msgstr "%s fájl nem található" + +#: Charset.py:48 Charset.py:63 Charset.py:78 +#, fuzzy +msgid "Could not encode: \"%s\"\n" +msgstr "%s fájl nem található" + #: Configuration.py:98 msgid "" "No %s found\n" @@ -253,11 +267,11 @@ msgstr "Nem található játék az adatbázisban" msgid " Clear Dates " msgstr "Dátumok törlése" -#: Filters.py:929 fpdb.pyw:713 +#: Filters.py:929 fpdb.pyw:719 msgid "Pick a date" msgstr "Válassz egy dátumot" -#: Filters.py:935 fpdb.pyw:719 +#: Filters.py:935 fpdb.pyw:725 msgid "Done" msgstr "Kész" @@ -499,6 +513,118 @@ msgstr "" "GuiBulkImport kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d \tHibák: %d %" "s másodperc alatt - %.0f/mp" +#: GuiDatabase.py:98 GuiLogView.py:88 +#, fuzzy +msgid "Refresh" +msgstr "Statisztikák f_rissítése" + +#: GuiDatabase.py:103 +msgid "Type" +msgstr "" + +#: GuiDatabase.py:104 +#, fuzzy +msgid "Name" +msgstr "Nincs név" + +#: GuiDatabase.py:105 +msgid "Description" +msgstr "" + +#: GuiDatabase.py:106 GuiImapFetcher.py:111 +msgid "Username" +msgstr "Felhasználónév" + +#: GuiDatabase.py:107 GuiImapFetcher.py:111 +msgid "Password" +msgstr "Jelszó" + +#: GuiDatabase.py:108 +msgid "Host" +msgstr "" + +#: GuiDatabase.py:109 +msgid "Default" +msgstr "" + +#: GuiDatabase.py:110 +msgid "Status" +msgstr "" + +#: GuiDatabase.py:243 +#, fuzzy +msgid "Testing database connections ... " +msgstr " Adatbázis tisztítása ... " + +#: GuiDatabase.py:273 +msgid "loaddbs: trying to connect to: %s/%s, %s, %s/%s" +msgstr "" + +#: GuiDatabase.py:276 +msgid " connected ok" +msgstr "" + +#: GuiDatabase.py:283 +msgid " not connected but no exception" +msgstr "" + +#: GuiDatabase.py:285 fpdb.pyw:904 +msgid "" +"MySQL Server reports: Access denied. Are your permissions set correctly?" +msgstr "" +"MySQL szerver jelenti: A hozzáférés megtagadva. Biztosan megfelelőek a " +"jogosultságaid?" + +#: GuiDatabase.py:289 +#, fuzzy +msgid "" +"MySQL client reports: 2002 or 2003 error. Unable to connect - Please check " +"that the MySQL service has been started" +msgstr "" +"MySQL kliens jelenti: 2002-es vagy 2003-as hiba. Nem sikerült a kapcsolódás " +"- " + +#: GuiDatabase.py:293 fpdb.pyw:909 +msgid "" +"Postgres Server reports: Access denied. Are your permissions set correctly?" +msgstr "" +"Postgres szerver jelenti: A hozzáférés megtagadva. Biztosan megfelelőek a " +"jogosultságaid?" + +#: GuiDatabase.py:296 +#, fuzzy +msgid "" +"Postgres client reports: Unable to connect - Please check that the Postgres " +"service has been started" +msgstr "Kérlek ellenőrizd, hogy a Postgres szolgáltatás el van-e indítva" + +#: GuiDatabase.py:313 +msgid "finished." +msgstr "" + +#: GuiDatabase.py:323 +msgid "loaddbs error: " +msgstr "" + +#: GuiDatabase.py:344 GuiLogView.py:192 GuiTourneyPlayerStats.py:454 +msgid "***sortCols error: " +msgstr "***sortCols hiba: " + +#: GuiDatabase.py:346 +#, fuzzy +msgid "sortCols error: " +msgstr "***sortCols hiba: " + +#: GuiDatabase.py:416 GuiLogView.py:205 +#, fuzzy +msgid "Test Log Viewer" +msgstr "Verseny nézet" + +#: GuiDatabase.py:421 GuiLogView.py:210 +#, fuzzy +msgid "Log Viewer" +msgstr "_Nézetek" + #: GuiGraphViewer.py:39 msgid "" "Failed to load libs for graphing, graphing will not function. Please\n" @@ -630,10 +756,6 @@ msgstr "Levelek mappája" msgid "Mailserver" msgstr "Levelezőkiszolgáló" -#: GuiImapFetcher.py:111 -msgid "Password" -msgstr "Jelszó" - #: GuiImapFetcher.py:111 msgid "Site" msgstr "Terem" @@ -642,10 +764,6 @@ msgstr "Terem" msgid "Use SSL" msgstr "SSL használata" -#: GuiImapFetcher.py:111 -msgid "Username" -msgstr "Felhasználónév" - #: GuiImapFetcher.py:142 msgid "Yes" msgstr "Igen" @@ -654,6 +772,11 @@ msgstr "Igen" msgid "No" msgstr "Nem" +#: GuiLogView.py:53 +#, fuzzy +msgid "Log Messages" +msgstr "Nap_lóbejegyzések" + #: GuiPositionalStats.py:135 msgid "DEBUG: activesite set to %s" msgstr "DEBUG: aktív terem: %s" @@ -674,7 +797,7 @@ msgstr "Érték (kattints duplán a módosításhoz)" msgid "Test Preferences Dialog" msgstr "Beállítási párbeszéd (teszt)" -#: GuiPrefs.py:181 fpdb.pyw:288 +#: GuiPrefs.py:181 fpdb.pyw:294 msgid "Preferences" msgstr "Beállítások" @@ -706,10 +829,6 @@ msgstr "Sessionök" msgid "_Refresh Stats" msgstr "Statisztikák f_rissítése" -#: GuiTourneyPlayerStats.py:454 -msgid "***sortCols error: " -msgstr "***sortCols hiba: " - #: GuiTourneyViewer.py:37 msgid "Enter the tourney number you want to display:" msgstr "Add meg a megjelenítendő verseny azonosítóját" @@ -754,7 +873,7 @@ msgstr "" "\n" "HUD_main: indítás ..." -#: HUD_main.pyw:80 fpdb.pyw:868 +#: HUD_main.pyw:80 fpdb.pyw:874 msgid "Logfile is " msgstr "A naplófájl " @@ -766,7 +885,7 @@ msgstr "HUD_main indítás: " msgid "Note: error output is being diverted to:\n" msgstr "Megjegyzés: a hibakimenet ide van átirányítva:\n" -#: HUD_main.pyw:87 fpdb.pyw:1130 +#: HUD_main.pyw:87 fpdb.pyw:1136 msgid "" "\n" "Any major error will be reported there _only_.\n" @@ -1501,6 +1620,18 @@ msgstr "Verzióinformáció kiírása, majd kilépés." msgid "press enter to end" msgstr "nyomj ENTER-t a befejezéshez" +#: P5sResultsParser.py:10 +msgid "You need to manually enter the playername" +msgstr "" + +#: PokerStarsSummary.py:72 +msgid "didn't recognise buyin currency in:" +msgstr "" + +#: PokerStarsSummary.py:112 +msgid "in not result starttime" +msgstr "" + #: PokerStarsToFpdb.py:172 msgid "determineGameType: Unable to recognise gametype from: '%s'" msgstr "determineGameType: Nem sikerült felismerni a játéktípust innen: '%s'" @@ -1529,11 +1660,33 @@ msgstr "readButton: nem található" msgid "reading antes" msgstr "antek olvasása" -#: fpdb.pyw:40 +#: Tables_Demo.py:64 +#, fuzzy +msgid "Fake HUD Main Window" +msgstr "HUD Főablak" + +#: Tables_Demo.py:87 +msgid "enter table name to find: " +msgstr "" + +#: Tables_Demo.py:112 +msgid "calling main" +msgstr "" + +#: WinTables.py:70 +#, fuzzy +msgid "Window %s not found. Skipping." +msgstr "HUD létrehozás: %s nevű asztal nincs meg, kihagyás." + +#: WinTables.py:73 +msgid "self.window doesn't exist? why?" +msgstr "" + +#: fpdb.pyw:46 msgid " - press return to continue\n" msgstr " - nyomj ENTER-t a folytatáshoz\n" -#: fpdb.pyw:47 +#: fpdb.pyw:53 msgid "" "\n" "python 2.5 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n" @@ -1542,11 +1695,11 @@ msgstr "" "Python 2.5 nincs meg, kérlek telepítsd a Python 2.5-öt, 2.6-ot, vagy 2.7-et " "az fpdb számára\n" -#: fpdb.pyw:48 fpdb.pyw:60 fpdb.pyw:82 +#: fpdb.pyw:54 fpdb.pyw:66 fpdb.pyw:88 msgid "Press ENTER to continue." msgstr "Nyomj ENTER-t a folytatáshoz." -#: fpdb.pyw:59 +#: fpdb.pyw:65 msgid "" "We appear to be running in Windows, but the Windows Python Extensions are " "not loading. Please install the PYWIN32 package from http://sourceforge.net/" @@ -1556,7 +1709,7 @@ msgstr "" "Bővítmények nem töltődnek be. Kérlek telepítsd a PYWIN32 csomagot innen: " "http://sourceforge.net/projects/pywin32/" -#: fpdb.pyw:81 +#: fpdb.pyw:87 msgid "" "Unable to load PYGTK modules required for GUI. Please install PyCairo, " "PyGObject, and PyGTK from www.pygtk.org." @@ -1564,7 +1717,7 @@ msgstr "" "Nem sikerült a GUI által igényelt PyGTK modulok betöltése. Kérlek telepítsd " "a PyCairo-t, a PyGObject-et és a PyGTK-t a www.pygtk.org címről." -#: fpdb.pyw:239 +#: fpdb.pyw:245 msgid "" "Copyright 2008-2010, Steffen, Eratosthenes, Carl Gherardi, Eric Blade, _mt, " "sqlcoder, Bostik, and others" @@ -1572,7 +1725,7 @@ msgstr "" "Copyright 2008-2010, Steffen, Eratosthenes, Carl Gherardi, Eric Blade, _mt, " "sqlcoder, Bostik, and others" -#: fpdb.pyw:240 +#: fpdb.pyw:246 msgid "" "You are free to change, and distribute original or changed versions of fpdb " "within the rules set out by the license" @@ -1580,31 +1733,31 @@ msgstr "" "Szabadon megváltoztathatod és terjesztheted az eredeti vagy már " "megváltoztatott fpdb verziókat a licenszben szabályozott feltételek mellett" -#: fpdb.pyw:241 +#: fpdb.pyw:247 msgid "Please see fpdb's start screen for license information" msgstr "Licensz információkért kérlek tekintsd meg az fpdb induló képernyőjét" -#: fpdb.pyw:245 +#: fpdb.pyw:251 msgid "and others" msgstr "és mások" -#: fpdb.pyw:251 +#: fpdb.pyw:257 msgid "Operating System" msgstr "Operációs rendszer" -#: fpdb.pyw:271 +#: fpdb.pyw:277 msgid "Your config file is: " msgstr "Konfigurációs fájl:" -#: fpdb.pyw:276 +#: fpdb.pyw:282 msgid "Version Information:" msgstr "Verzióinformáció:" -#: fpdb.pyw:283 +#: fpdb.pyw:289 msgid "Threads: " msgstr "Szálak:" -#: fpdb.pyw:306 +#: fpdb.pyw:312 msgid "" "Updated preferences have not been loaded because windows are open. Re-start " "fpdb to load them." @@ -1612,19 +1765,19 @@ msgstr "" "A megváltoztatott beállítások még nem léptek érvénybe, mert vannak nyitott " "ablakok. Indítsd újra az fpdb-t az érvénybe léptetésükhöz." -#: fpdb.pyw:316 +#: fpdb.pyw:322 msgid "Maintain Databases" msgstr "Adatbázisok karbantartása" -#: fpdb.pyw:326 +#: fpdb.pyw:332 msgid "saving updated db data" msgstr "frissített adatbázis adatok mentése" -#: fpdb.pyw:333 +#: fpdb.pyw:339 msgid "guidb response was " msgstr "a guidb válasza ez volt: " -#: fpdb.pyw:339 +#: fpdb.pyw:345 msgid "" "Cannot open Database Maintenance window because other windows have been " "opened. Re-start fpdb to use this option." @@ -1632,11 +1785,11 @@ msgstr "" "Nem tudom megnyitni az adatbázis karbantartó ablakot, mert más ablakok is " "nyitva vannak. Indítsd újra az fpdb-t ezen funkció használatához." -#: fpdb.pyw:342 +#: fpdb.pyw:348 msgid "Number of Hands: " msgstr "Leosztások száma:" -#: fpdb.pyw:343 +#: fpdb.pyw:349 msgid "" "\n" "Number of Tourneys: " @@ -1644,7 +1797,7 @@ msgstr "" "\n" "Versenyek száma: " -#: fpdb.pyw:344 +#: fpdb.pyw:350 msgid "" "\n" "Number of TourneyTypes: " @@ -1652,40 +1805,40 @@ msgstr "" "\n" "Versenytípusok száma: " -#: fpdb.pyw:345 +#: fpdb.pyw:351 msgid "Database Statistics" msgstr "Adatbázis statisztikák" -#: fpdb.pyw:354 +#: fpdb.pyw:360 msgid "HUD Configurator - choose category" msgstr "HUD beállító - válassz kategóriát" -#: fpdb.pyw:360 +#: fpdb.pyw:366 msgid "" "Please select the game category for which you want to configure HUD stats:" msgstr "Válassz játéktípust, amelyre vonatkozóan akarod beállítani a HUD-ot:" -#: fpdb.pyw:412 +#: fpdb.pyw:418 msgid "HUD Configurator - please choose your stats" msgstr "HUD beállító - válassz statisztikákat" -#: fpdb.pyw:418 +#: fpdb.pyw:424 msgid "Please choose the stats you wish to use in the below table." msgstr "Válaszd ki a lenti táblázatból a megjelenítendő statisztikákat." -#: fpdb.pyw:422 +#: fpdb.pyw:428 msgid "Note that you may not select any stat more than once or it will crash." msgstr "" "Vedd figyelembe, hogy egy statisztikát nem választhatsz ki többször, " "különben ki fog lépni." -#: fpdb.pyw:426 +#: fpdb.pyw:432 msgid "" "It is not currently possible to select \"empty\" or anything else to that " "end." msgstr "Jelenleg nem lehetséges olyat választani, hogy \"üres\" vagy hasonló." -#: fpdb.pyw:430 +#: fpdb.pyw:436 msgid "" "To configure things like colouring you will still have to manually edit your " "HUD_config.xml." @@ -1693,11 +1846,11 @@ msgstr "" "Bizonyos dolgok, mint pl. a színezés beállításához egyelőre még kézzel kell " "szerkesztened a HUD_config.xml fájlt." -#: fpdb.pyw:537 +#: fpdb.pyw:543 msgid "Confirm deleting and recreating tables" msgstr "Erősítsd meg a táblák törlését és újra létrehozását" -#: fpdb.pyw:538 +#: fpdb.pyw:544 msgid "" "Please confirm that you want to (re-)create the tables. If there already are " "tables in the database " @@ -1705,7 +1858,7 @@ msgstr "" "Kérlek erősítsd meg, hogy valóban (újra) létre akarod hozni a táblákat. Ha " "már vannak táblák az adatbázisban," -#: fpdb.pyw:539 +#: fpdb.pyw:545 msgid "" " they will be deleted.\n" "This may take a while." @@ -1713,72 +1866,72 @@ msgstr "" " akkor azok törölve lesznek.\n" "Ez eltarthat egy darabig." -#: fpdb.pyw:564 +#: fpdb.pyw:570 msgid "User cancelled recreating tables" msgstr "A felhasználó mégsem generálja újra a táblákat." -#: fpdb.pyw:571 +#: fpdb.pyw:577 msgid "Please confirm that you want to re-create the HUD cache." msgstr "" "Kérlek erősítsd meg, hogy valóban újra akarod generálni a HUD gyorstárat." -#: fpdb.pyw:579 +#: fpdb.pyw:585 msgid " Hero's cache starts: " msgstr " Saját gyorstár innentől: " -#: fpdb.pyw:593 +#: fpdb.pyw:599 msgid " Villains' cache starts: " msgstr " Ellenfelek gyorstár-e innentől: " -#: fpdb.pyw:606 +#: fpdb.pyw:612 msgid " Rebuilding HUD Cache ... " msgstr " HUD gyorstár újraépítése ... " -#: fpdb.pyw:614 +#: fpdb.pyw:620 msgid "User cancelled rebuilding hud cache" msgstr "A felhasználó megszakította a HUD gyorstár újraépítését." -#: fpdb.pyw:626 +#: fpdb.pyw:632 msgid "Confirm rebuilding database indexes" msgstr "Erősítsd meg az adatbázis indexeinek újraépítését" -#: fpdb.pyw:627 +#: fpdb.pyw:633 msgid "Please confirm that you want to rebuild the database indexes." msgstr "" "Kérlek erősítsd meg, hogy valóban újra akarod építeni az adatbázis indexeit." -#: fpdb.pyw:635 +#: fpdb.pyw:641 msgid " Rebuilding Indexes ... " msgstr " Indexek újraépítése ... " -#: fpdb.pyw:642 +#: fpdb.pyw:648 msgid " Cleaning Database ... " msgstr " Adatbázis tisztítása ... " -#: fpdb.pyw:647 +#: fpdb.pyw:653 msgid " Analyzing Database ... " msgstr " Adatbázis elemzése ... " -#: fpdb.pyw:652 +#: fpdb.pyw:658 msgid "User cancelled rebuilding db indexes" msgstr "A felhasználó megszakította az adatbázis indexeinek újraépítését." -#: fpdb.pyw:747 +#: fpdb.pyw:753 msgid "" "Unimplemented: Save Profile (try saving a HUD layout, that should do it)" msgstr "" "Még nincs kész: Profil mentése (próbáld meg addig is ehelyett elmenteni a " "HUD elrendezését)" -#: fpdb.pyw:750 +#: fpdb.pyw:756 msgid "Fatal Error - Config File Missing" msgstr "Végzetes hiba - Hiányzó konfigurációs fájl" -#: fpdb.pyw:752 +#: fpdb.pyw:758 msgid "Please copy the config file from the docs folder to:" msgstr "Kérlek másold át a konfigurációs fájlt a docs könyvtárból ide:" -#: fpdb.pyw:760 +#: fpdb.pyw:766 msgid "" "and edit it according to the install documentation at http://fpdb." "sourceforge.net" @@ -1786,167 +1939,167 @@ msgstr "" "majd szerkeszd a http://fpdb.sourceforge.net címen található telepítési " "útmutató szerint" -#: fpdb.pyw:817 +#: fpdb.pyw:823 msgid "_Main" msgstr "_Főmenü" -#: fpdb.pyw:818 fpdb.pyw:846 +#: fpdb.pyw:824 fpdb.pyw:852 msgid "_Quit" msgstr "_Kilépés" -#: fpdb.pyw:819 +#: fpdb.pyw:825 msgid "L" msgstr "L" -#: fpdb.pyw:819 +#: fpdb.pyw:825 msgid "_Load Profile (broken)" msgstr "Profil betö_ltése (hibás)" -#: fpdb.pyw:820 +#: fpdb.pyw:826 msgid "S" msgstr "S" -#: fpdb.pyw:820 +#: fpdb.pyw:826 msgid "_Save Profile (todo)" msgstr "Profil menté_se (todo)" -#: fpdb.pyw:821 +#: fpdb.pyw:827 msgid "F" msgstr "F" -#: fpdb.pyw:821 +#: fpdb.pyw:827 msgid "Pre_ferences" msgstr "_Beállítások" -#: fpdb.pyw:822 +#: fpdb.pyw:828 msgid "_Import" msgstr "_Importálás" -#: fpdb.pyw:823 +#: fpdb.pyw:829 msgid "_Set HandHistory Archive Directory" msgstr "Leo_sztástörténet archívumának könyvtára" -#: fpdb.pyw:824 +#: fpdb.pyw:830 msgid "B" msgstr "B" -#: fpdb.pyw:824 +#: fpdb.pyw:830 msgid "_Bulk Import" msgstr "_Tömeges importálás" -#: fpdb.pyw:825 +#: fpdb.pyw:831 msgid "I" msgstr "I" -#: fpdb.pyw:825 +#: fpdb.pyw:831 msgid "_Import through eMail/IMAP" msgstr "Email _import (IMAP)" -#: fpdb.pyw:826 +#: fpdb.pyw:832 msgid "_Viewers" msgstr "_Nézetek" -#: fpdb.pyw:827 +#: fpdb.pyw:833 msgid "A" msgstr "A" -#: fpdb.pyw:827 +#: fpdb.pyw:833 msgid "_Auto Import and HUD" msgstr "_AutoImport és HUD" -#: fpdb.pyw:828 +#: fpdb.pyw:834 msgid "H" msgstr "H" -#: fpdb.pyw:828 +#: fpdb.pyw:834 msgid "_HUD Configurator" msgstr "_HUD beállító" -#: fpdb.pyw:829 +#: fpdb.pyw:835 msgid "G" msgstr "G" -#: fpdb.pyw:829 +#: fpdb.pyw:835 msgid "_Graphs" msgstr "_Grafikonok" -#: fpdb.pyw:830 +#: fpdb.pyw:836 msgid "P" msgstr "P" -#: fpdb.pyw:830 +#: fpdb.pyw:836 msgid "Ring _Player Stats (tabulated view)" msgstr "Kész_pénzes játékos statisztikák (táblázatos nézet)" -#: fpdb.pyw:831 +#: fpdb.pyw:837 msgid "T" msgstr "T" -#: fpdb.pyw:831 +#: fpdb.pyw:837 msgid "_Tourney Player Stats (tabulated view)" msgstr "Versenyjá_tékos statisztikák (táblázatos nézet)" -#: fpdb.pyw:832 +#: fpdb.pyw:838 msgid "Tourney _Viewer" msgstr "_Verseny nézet" -#: fpdb.pyw:833 +#: fpdb.pyw:839 msgid "O" msgstr "O" -#: fpdb.pyw:833 +#: fpdb.pyw:839 msgid "P_ositional Stats (tabulated view, not on sqlite)" msgstr "P_ozíciós statisztikák (táblázatos nézet, SQLite-tal nem megy)" -#: fpdb.pyw:834 fpdb.pyw:1051 +#: fpdb.pyw:840 fpdb.pyw:1057 msgid "Session Stats" msgstr "Session statisztikák" -#: fpdb.pyw:835 +#: fpdb.pyw:841 msgid "_Database" msgstr "A_datbázis" -#: fpdb.pyw:836 +#: fpdb.pyw:842 msgid "_Maintain Databases" msgstr "_Karbantartás" -#: fpdb.pyw:837 +#: fpdb.pyw:843 msgid "Create or Recreate _Tables" msgstr "_Táblák létrehozása vagy újragenerálása" -#: fpdb.pyw:838 +#: fpdb.pyw:844 msgid "Rebuild HUD Cache" msgstr "HUD gyorstár újraépítése" -#: fpdb.pyw:839 +#: fpdb.pyw:845 msgid "Rebuild DB Indexes" msgstr "Adatbázis indexek újraépítése" -#: fpdb.pyw:840 +#: fpdb.pyw:846 msgid "_Statistics" msgstr "_Statisztikák" -#: fpdb.pyw:841 +#: fpdb.pyw:847 msgid "Dump Database to Textfile (takes ALOT of time)" msgstr "Adatbázis exportálása textfájlba (SOKÁIG tart)" -#: fpdb.pyw:842 +#: fpdb.pyw:848 msgid "_Help" msgstr "_Súgó" -#: fpdb.pyw:843 +#: fpdb.pyw:849 msgid "_Log Messages" msgstr "Nap_lóbejegyzések" -#: fpdb.pyw:844 +#: fpdb.pyw:850 msgid "A_bout, License, Copying" msgstr "_Névjegy, licensz, másolás" -#: fpdb.pyw:862 +#: fpdb.pyw:868 msgid "There is an error in your config file\n" msgstr "Hiba van a konfigurációs fájlodban\n" -#: fpdb.pyw:863 +#: fpdb.pyw:869 msgid "" "\n" "\n" @@ -1956,15 +2109,15 @@ msgstr "" "\n" "A hiba a következő: " -#: fpdb.pyw:864 +#: fpdb.pyw:870 msgid "CONFIG FILE ERROR" msgstr "KONFIGURÁCIÓS FÁJL HIBA" -#: fpdb.pyw:870 +#: fpdb.pyw:876 msgid "Config file" msgstr "Konfigurációs fájl" -#: fpdb.pyw:871 +#: fpdb.pyw:877 msgid "" "has been created at:\n" "%s.\n" @@ -1972,64 +2125,50 @@ msgstr "" "létrehozva itt:\n" "%s.\n" -#: fpdb.pyw:872 +#: fpdb.pyw:878 msgid "Edit your screen_name and hand history path in the supported_sites " msgstr "" "Állítsd be az asztalnál látható nevedet és a leosztástörténetek helyét a " "támogatott termek" -#: fpdb.pyw:873 +#: fpdb.pyw:879 msgid "" "section of the Preferences window (Main menu) before trying to import hands." msgstr "" "résznél a Beállítások ablakban (Főmenü) mielőtt megpróbálnál leosztásokat " "importálni." -#: fpdb.pyw:896 +#: fpdb.pyw:902 msgid "Connected to SQLite: %(database)s" msgstr "Kapcsolódva a %(database)s SQLite adatbázishoz" -#: fpdb.pyw:898 -msgid "" -"MySQL Server reports: Access denied. Are your permissions set correctly?" -msgstr "" -"MySQL szerver jelenti: A hozzáférés megtagadva. Biztosan megfelelőek a " -"jogosultságaid?" - -#: fpdb.pyw:900 +#: fpdb.pyw:906 msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " msgstr "" "MySQL kliens jelenti: 2002-es vagy 2003-as hiba. Nem sikerült a kapcsolódás " "- " -#: fpdb.pyw:901 +#: fpdb.pyw:907 msgid "Please check that the MySQL service has been started" msgstr "Kérlek ellenőrizd, hogy a MySQL szolgáltatás el van-e indítva" -#: fpdb.pyw:903 -msgid "" -"Postgres Server reports: Access denied. Are your permissions set correctly?" -msgstr "" -"Postgres szerver jelenti: A hozzáférés megtagadva. Biztosan megfelelőek a " -"jogosultságaid?" - -#: fpdb.pyw:905 +#: fpdb.pyw:911 msgid "Postgres client reports: Unable to connect - " msgstr "Postgres kliens jelenti: Nem sikerült a kapcsolódás - " -#: fpdb.pyw:906 +#: fpdb.pyw:912 msgid "Please check that the Postgres service has been started" msgstr "Kérlek ellenőrizd, hogy a Postgres szolgáltatás el van-e indítva" -#: fpdb.pyw:930 +#: fpdb.pyw:936 msgid "Strong Warning - Invalid database version" msgstr "Nyomatékos figyelmeztetés - Érvénytelen adatbázis verzió" -#: fpdb.pyw:932 +#: fpdb.pyw:938 msgid "An invalid DB version or missing tables have been detected." msgstr "Érvénytelen adatbázis verziót vagy hiányzó táblá(ka)t találtam." -#: fpdb.pyw:936 +#: fpdb.pyw:942 msgid "" "This error is not necessarily fatal but it is strongly recommended that you " "recreate the tables by using the Database menu." @@ -2037,7 +2176,7 @@ msgstr "" "Ez a hiba nem feltétlenül végzetes, de erősen javasolt a táblák " "újragenerálása az Adatbázis menü használatával." -#: fpdb.pyw:940 +#: fpdb.pyw:946 msgid "" "Not doing this will likely lead to misbehaviour including fpdb crashes, " "corrupt data etc." @@ -2046,61 +2185,61 @@ msgstr "" "kiléphet, tönkretehet adatokat, stb." # FIXME: would need a different word ordering in Hungarian -#: fpdb.pyw:953 +#: fpdb.pyw:959 msgid "Status: Connected to %s database named %s on host %s" msgstr "" "Állapot: Kapcsolódva a(z) %s adatbázis-kezelő %s nevű adatbázisához a(z) %s " "kiszolgálón" -#: fpdb.pyw:963 +#: fpdb.pyw:969 msgid "" "\n" "Global lock taken by" msgstr "Globális zárolást végzett:" -#: fpdb.pyw:966 +#: fpdb.pyw:972 msgid "" "\n" "Failed to get global lock, it is currently held by" msgstr "Globális zárolás meghiúsult, jelenleg már zárolta:" -#: fpdb.pyw:976 +#: fpdb.pyw:982 msgid "Quitting normally" msgstr "Normál kilépés" -#: fpdb.pyw:1000 +#: fpdb.pyw:1006 msgid "Global lock released.\n" msgstr "Globális zárolás feloldva.\n" -#: fpdb.pyw:1007 +#: fpdb.pyw:1013 msgid "Auto Import" msgstr "AutoImport" -#: fpdb.pyw:1014 +#: fpdb.pyw:1020 msgid "Bulk Import" msgstr "Tömeges import" -#: fpdb.pyw:1020 +#: fpdb.pyw:1026 msgid "eMail Import" msgstr "Email import" -#: fpdb.pyw:1027 +#: fpdb.pyw:1033 msgid "Ring Player Stats" msgstr "Készpénzes játékos statisztikák" -#: fpdb.pyw:1033 +#: fpdb.pyw:1039 msgid "Tourney Player Stats" msgstr "Versenyjátékos statisztikák" -#: fpdb.pyw:1039 +#: fpdb.pyw:1045 msgid "Tourney Viewer" msgstr "Verseny nézet" -#: fpdb.pyw:1045 +#: fpdb.pyw:1051 msgid "Positional Stats" msgstr "Pozíciós statisztikák" -#: fpdb.pyw:1055 +#: fpdb.pyw:1061 msgid "" "Fpdb needs translators!\n" "If you speak another language and have a few minutes or more to spare get in " @@ -2159,15 +2298,15 @@ msgstr "" "A licenszek szövegét megtalálod az fpdb főkönyvtárában az agpl-3.0.txt, gpl-" "2.0.txt, gpl-3.0.txt és mit.txt fájlokban." -#: fpdb.pyw:1072 +#: fpdb.pyw:1078 msgid "Help" msgstr "Súgó" -#: fpdb.pyw:1079 +#: fpdb.pyw:1085 msgid "Graphs" msgstr "Grafikonok" -#: fpdb.pyw:1129 +#: fpdb.pyw:1135 msgid "" "\n" "Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt " @@ -2177,15 +2316,15 @@ msgstr "" "Megjegyzés: a hibakimenet átirányítva az fpdb-errors.txt és HUD-errors.txt " "fájlokba itt:\n" -#: fpdb.pyw:1158 +#: fpdb.pyw:1164 msgid "fpdb starting ..." msgstr "fpdb indítása ..." -#: fpdb.pyw:1207 +#: fpdb.pyw:1213 msgid "FPDB WARNING" msgstr "FPDB FIGYELMEZTETÉS" -#: fpdb.pyw:1226 +#: fpdb.pyw:1232 msgid "" "WARNING: Unable to find output hh directory %s\n" "\n" @@ -2196,7 +2335,7 @@ msgstr "" " Kattints az IGEN gombra a könyvtár létrehozásához, vagy a NEM gombra egy " "másik könyvtár választásához." -#: fpdb.pyw:1234 +#: fpdb.pyw:1240 msgid "" "WARNING: Unable to create hand output directory. Importing is not likely to " "work until this is fixed." @@ -2204,6 +2343,27 @@ msgstr "" "FIGYELEM: Nem sikerült a leosztásarchívum könyvtárának létrehozása. Az " "importálás valószínűleg nem fog működni." -#: fpdb.pyw:1239 +#: fpdb.pyw:1245 msgid "Select HH Output Directory" msgstr "Válaszd ki a leosztásarchívum könyvtárát" + +#: test_Database.py:50 +msgid "DEBUG: Testing variance function" +msgstr "" + +#: test_Database.py:51 +msgid "DEBUG: result: %s expecting: 0.666666 (result-expecting ~= 0.0): %s" +msgstr "" + +#: windows_make_bats.py:31 +msgid "" +"\n" +"This script is only for windows\n" +msgstr "" + +#: windows_make_bats.py:58 +msgid "" +"\n" +"no gtk directories found in your path - install gtk or edit the path " +"manually\n" +msgstr "" From 3ec334e93c7e08ee3e5b8c1cdad627c555fb81b7 Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Sun, 15 Aug 2010 20:46:50 +0200 Subject: [PATCH 206/301] l10n: updated Hungarian translation --- pyfpdb/locale/fpdb-hu_HU.po | 83 +++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 44 deletions(-) diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index fe71281f..2dfd9f7c 100644 --- a/pyfpdb/locale/fpdb-hu_HU.po +++ b/pyfpdb/locale/fpdb-hu_HU.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.904\n" "POT-Creation-Date: 2010-08-15 20:33+CEST\n" -"PO-Revision-Date: 2010-08-15 15:22+0200\n" +"PO-Revision-Date: 2010-08-15 20:46+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" @@ -53,17 +53,15 @@ msgstr "kövesse a kimenetet (tail -f)" #: Card.py:159 msgid "fpdb card encoding(same as pokersource)" -msgstr "" +msgstr "fpdb kártyakódolás (ugyanaz, mint amit a pokersource használ)" #: Charset.py:45 Charset.py:60 Charset.py:75 Charset.py:86 Charset.py:94 -#, fuzzy msgid "Could not convert: \"%s\"\n" -msgstr "%s fájl nem található" +msgstr "Nem sikerült konvertálni: \"%s\"\n" #: Charset.py:48 Charset.py:63 Charset.py:78 -#, fuzzy msgid "Could not encode: \"%s\"\n" -msgstr "%s fájl nem található" +msgstr "Nem sikerült kódolni: \"%s\"\n" #: Configuration.py:98 msgid "" @@ -514,22 +512,20 @@ msgstr "" "s másodperc alatt - %.0f/mp" #: GuiDatabase.py:98 GuiLogView.py:88 -#, fuzzy msgid "Refresh" -msgstr "Statisztikák f_rissítése" +msgstr "Frissítés" #: GuiDatabase.py:103 msgid "Type" -msgstr "" +msgstr "Típus" #: GuiDatabase.py:104 -#, fuzzy msgid "Name" -msgstr "Nincs név" +msgstr "Név" #: GuiDatabase.py:105 msgid "Description" -msgstr "" +msgstr "Leírás" #: GuiDatabase.py:106 GuiImapFetcher.py:111 msgid "Username" @@ -541,32 +537,31 @@ msgstr "Jelszó" #: GuiDatabase.py:108 msgid "Host" -msgstr "" +msgstr "Kiszolgáló" #: GuiDatabase.py:109 msgid "Default" -msgstr "" +msgstr "Alapértelmezett" #: GuiDatabase.py:110 msgid "Status" -msgstr "" +msgstr "Állapot" #: GuiDatabase.py:243 -#, fuzzy msgid "Testing database connections ... " -msgstr " Adatbázis tisztítása ... " +msgstr "Adatbázis-kapcsolatok ellenőrzése ..." #: GuiDatabase.py:273 msgid "loaddbs: trying to connect to: %s/%s, %s, %s/%s" -msgstr "" +msgstr "loaddbs: kapcolódási próbálkozás: %s/%s, %s, %s/%s" #: GuiDatabase.py:276 msgid " connected ok" -msgstr "" +msgstr " kapcsolódás OK" #: GuiDatabase.py:283 msgid " not connected but no exception" -msgstr "" +msgstr " nem kapcsolódott, de nincs hibaüzenet" #: GuiDatabase.py:285 fpdb.pyw:904 msgid "" @@ -576,13 +571,12 @@ msgstr "" "jogosultságaid?" #: GuiDatabase.py:289 -#, fuzzy msgid "" "MySQL client reports: 2002 or 2003 error. Unable to connect - Please check " "that the MySQL service has been started" msgstr "" "MySQL kliens jelenti: 2002-es vagy 2003-as hiba. Nem sikerült a kapcsolódás " -"- " +"- Kérlek ellenőrizd, hogy a MySQL szolgáltatás el van-e indítva" #: GuiDatabase.py:293 fpdb.pyw:909 msgid "" @@ -592,38 +586,36 @@ msgstr "" "jogosultságaid?" #: GuiDatabase.py:296 -#, fuzzy msgid "" "Postgres client reports: Unable to connect - Please check that the Postgres " "service has been started" -msgstr "Kérlek ellenőrizd, hogy a Postgres szolgáltatás el van-e indítva" +msgstr "" +"Postgres kliens jelenti: Nem sikerült a kapcsolódás. .Kérlek ellenőrizd, " +"hogy a Postgres szolgáltatás el van-e indítva" #: GuiDatabase.py:313 msgid "finished." -msgstr "" +msgstr "befejezve." #: GuiDatabase.py:323 msgid "loaddbs error: " -msgstr "" +msgstr "loaddbs hiba: " #: GuiDatabase.py:344 GuiLogView.py:192 GuiTourneyPlayerStats.py:454 msgid "***sortCols error: " msgstr "***sortCols hiba: " #: GuiDatabase.py:346 -#, fuzzy msgid "sortCols error: " -msgstr "***sortCols hiba: " +msgstr "sortCols hiba: " #: GuiDatabase.py:416 GuiLogView.py:205 -#, fuzzy msgid "Test Log Viewer" -msgstr "Verseny nézet" +msgstr "Napló böngésző (teszt)" #: GuiDatabase.py:421 GuiLogView.py:210 -#, fuzzy msgid "Log Viewer" -msgstr "_Nézetek" +msgstr "Napló böngésző" #: GuiGraphViewer.py:39 msgid "" @@ -773,7 +765,6 @@ msgid "No" msgstr "Nem" #: GuiLogView.py:53 -#, fuzzy msgid "Log Messages" msgstr "Nap_lóbejegyzések" @@ -1622,15 +1613,15 @@ msgstr "nyomj ENTER-t a befejezéshez" #: P5sResultsParser.py:10 msgid "You need to manually enter the playername" -msgstr "" +msgstr "Meg kell adnod a játékos nevét" #: PokerStarsSummary.py:72 msgid "didn't recognise buyin currency in:" -msgstr "" +msgstr "nem sikerült felismerni a beülő pénznemét ebben:" #: PokerStarsSummary.py:112 msgid "in not result starttime" -msgstr "" +msgstr "a starttime nem található részében" #: PokerStarsToFpdb.py:172 msgid "determineGameType: Unable to recognise gametype from: '%s'" @@ -1661,26 +1652,24 @@ msgid "reading antes" msgstr "antek olvasása" #: Tables_Demo.py:64 -#, fuzzy msgid "Fake HUD Main Window" -msgstr "HUD Főablak" +msgstr "Kamu HUD Főablak" #: Tables_Demo.py:87 msgid "enter table name to find: " -msgstr "" +msgstr "add meg a keresendő asztalnevet: " #: Tables_Demo.py:112 msgid "calling main" -msgstr "" +msgstr "main hívása" #: WinTables.py:70 -#, fuzzy msgid "Window %s not found. Skipping." -msgstr "HUD létrehozás: %s nevű asztal nincs meg, kihagyás." +msgstr "A(z) %s nevű ablak nincs meg. Kihagyás." #: WinTables.py:73 msgid "self.window doesn't exist? why?" -msgstr "" +msgstr "self.window nem létezik? miért?" #: fpdb.pyw:46 msgid " - press return to continue\n" @@ -2349,17 +2338,20 @@ msgstr "Válaszd ki a leosztásarchívum könyvtárát" #: test_Database.py:50 msgid "DEBUG: Testing variance function" -msgstr "" +msgstr "DEBUG: Varianciafügvény tesztelésa" #: test_Database.py:51 msgid "DEBUG: result: %s expecting: 0.666666 (result-expecting ~= 0.0): %s" msgstr "" +"DEBUG: eredmény: %s várt érték: 0.666666. (eredmény - várt érték ~= 0.0): %s" #: windows_make_bats.py:31 msgid "" "\n" "This script is only for windows\n" msgstr "" +"\n" +"Ez a szkript csak windowson használható\n" #: windows_make_bats.py:58 msgid "" @@ -2367,3 +2359,6 @@ msgid "" "no gtk directories found in your path - install gtk or edit the path " "manually\n" msgstr "" +"\n" +"Nem találhatóak a GTK könyvtárak az útvonaladban - telepítsd a GTK-t, vagy " +"állítsd be kézzel az útvonalat\n" From b4317bba2ad2a216d4b82739ff9e799e0aa26cfe Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 15 Aug 2010 20:50:49 +0200 Subject: [PATCH 207/301] auto-detect language --- pyfpdb/Anonymise.py | 15 ++++++++++++--- pyfpdb/BetfairToFpdb.py | 15 ++++++++++++--- pyfpdb/Card.py | 15 ++++++++++++--- pyfpdb/GuiBulkImport.py | 15 ++++++++++++--- pyfpdb/GuiDatabase.py | 15 ++++++++++++--- pyfpdb/GuiLogView.py | 15 ++++++++++++--- pyfpdb/HUD_main.pyw | 15 ++++++++++++--- pyfpdb/HandHistoryConverter.py | 15 ++++++++++++--- pyfpdb/ImapFetcher.py | 15 ++++++++++++--- pyfpdb/Options.py | 15 ++++++++++++--- pyfpdb/Tables_Demo.py | 15 ++++++++++++--- pyfpdb/fpdb.pyw | 15 ++++++++++++--- pyfpdb/locale/{de_DE => de}/LC_MESSAGES/fpdb.mo | Bin pyfpdb/windows_make_bats.py | 15 ++++++++++++--- 14 files changed, 156 insertions(+), 39 deletions(-) rename pyfpdb/locale/{de_DE => de}/LC_MESSAGES/fpdb.mo (100%) diff --git a/pyfpdb/Anonymise.py b/pyfpdb/Anonymise.py index a4d72339..32878900 100755 --- a/pyfpdb/Anonymise.py +++ b/pyfpdb/Anonymise.py @@ -23,9 +23,18 @@ import HandHistoryConverter import Configuration import sys -import gettext -trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) -trans.install() +import locale +lang=locale.getdefaultlocale()[0][0:2] +print "lang:", lang +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string (options, argv) = Options.fpdb_options() config = Configuration.Config() diff --git a/pyfpdb/BetfairToFpdb.py b/pyfpdb/BetfairToFpdb.py index 34316de2..4a5f8b5c 100755 --- a/pyfpdb/BetfairToFpdb.py +++ b/pyfpdb/BetfairToFpdb.py @@ -22,9 +22,18 @@ import sys import logging from HandHistoryConverter import * -import gettext -trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) -trans.install() +import locale +lang=locale.getdefaultlocale()[0][0:2] +print "lang:", lang +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string # Betfair HH format diff --git a/pyfpdb/Card.py b/pyfpdb/Card.py index 81edfb9c..6bdf3e8b 100755 --- a/pyfpdb/Card.py +++ b/pyfpdb/Card.py @@ -15,9 +15,18 @@ #along with this program. If not, see . #In the "official" distribution you can find the license in agpl-3.0.txt. -import gettext -trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) -trans.install() +import locale +lang=locale.getdefaultlocale()[0][0:2] +print "lang:", lang +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string # From fpdb_simple card_map = { "0": 0, "2": 2, "3" : 3, "4" : 4, "5" : 5, "6" : 6, "7" : 7, "8" : 8, diff --git a/pyfpdb/GuiBulkImport.py b/pyfpdb/GuiBulkImport.py index a40f8929..e7132018 100755 --- a/pyfpdb/GuiBulkImport.py +++ b/pyfpdb/GuiBulkImport.py @@ -33,9 +33,18 @@ import fpdb_import import Configuration import Exceptions -import gettext -trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) -trans.install() +import locale +lang=locale.getdefaultlocale()[0][0:2] +print "lang:", lang +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string class GuiBulkImport(): diff --git a/pyfpdb/GuiDatabase.py b/pyfpdb/GuiDatabase.py index 2529643b..c6cf926e 100755 --- a/pyfpdb/GuiDatabase.py +++ b/pyfpdb/GuiDatabase.py @@ -35,9 +35,18 @@ import Exceptions import Database import SQL -import gettext -trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) -trans.install() +import locale +lang=locale.getdefaultlocale()[0][0:2] +print "lang:", lang +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string class GuiDatabase: diff --git a/pyfpdb/GuiLogView.py b/pyfpdb/GuiLogView.py index af8c3d34..cd901eef 100755 --- a/pyfpdb/GuiLogView.py +++ b/pyfpdb/GuiLogView.py @@ -30,9 +30,18 @@ import logging # logging has been set up in fpdb.py or HUD_main.py, use their settings: log = logging.getLogger("logview") -import gettext -trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) -trans.install() +import locale +lang=locale.getdefaultlocale()[0][0:2] +print "lang:", lang +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string MAX_LINES = 100000 # max lines to display in window EST_CHARS_PER_LINE = 150 # used to guesstimate number of lines in log file diff --git a/pyfpdb/HUD_main.pyw b/pyfpdb/HUD_main.pyw index cc90a641..590f9291 100755 --- a/pyfpdb/HUD_main.pyw +++ b/pyfpdb/HUD_main.pyw @@ -60,9 +60,18 @@ elif os.name == 'nt': #import Tables import Hud -import gettext -trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) -trans.install() +import locale +lang=locale.getdefaultlocale()[0][0:2] +print "lang:", lang +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string # get config and set up logger c = Configuration.Config(file=options.config, dbname=options.dbname) diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index 8265dbfd..91ac373d 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -41,9 +41,18 @@ import Hand from Exceptions import FpdbParseError import Configuration -#import gettext -#trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) -#trans.install() +import locale +lang=locale.getdefaultlocale()[0][0:2] +print "lang:", lang +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string import pygtk import gtk diff --git a/pyfpdb/ImapFetcher.py b/pyfpdb/ImapFetcher.py index ee267cf9..e43f799b 100755 --- a/pyfpdb/ImapFetcher.py +++ b/pyfpdb/ImapFetcher.py @@ -22,9 +22,18 @@ from imaplib import IMAP4, IMAP4_SSL import PokerStarsSummary -import gettext -trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) -trans.install() +import locale +lang=locale.getdefaultlocale()[0][0:2] +print "lang:", lang +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string def splitPokerStarsSummaries(emailText): splitSummaries=emailText.split("\nPokerStars Tournament #")[1:] diff --git a/pyfpdb/Options.py b/pyfpdb/Options.py index 23656ff2..268009c1 100644 --- a/pyfpdb/Options.py +++ b/pyfpdb/Options.py @@ -19,9 +19,18 @@ import sys from optparse import OptionParser # http://docs.python.org/library/optparse.html -import gettext -trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) -trans.install() +import locale +lang=locale.getdefaultlocale()[0][0:2] +print "lang:", lang +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string def fpdb_options(): diff --git a/pyfpdb/Tables_Demo.py b/pyfpdb/Tables_Demo.py index 33a586aa..45013120 100755 --- a/pyfpdb/Tables_Demo.py +++ b/pyfpdb/Tables_Demo.py @@ -36,9 +36,18 @@ import gobject import Configuration from HandHistoryConverter import getTableTitleRe -import gettext -trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) -trans.install() +import locale +lang=locale.getdefaultlocale()[0][0:2] +print "lang:", lang +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string # get the correct module for the current os if os.name == 'posix': diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index 4860dee1..e04d6af6 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -20,9 +20,18 @@ import sys import re import Queue -import gettext -trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) -trans.install() +import locale +lang=locale.getdefaultlocale()[0][0:2] +print "lang:", lang +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string # if path is set to use an old version of python look for a new one: # (does this work in linux?) diff --git a/pyfpdb/locale/de_DE/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/de/LC_MESSAGES/fpdb.mo similarity index 100% rename from pyfpdb/locale/de_DE/LC_MESSAGES/fpdb.mo rename to pyfpdb/locale/de/LC_MESSAGES/fpdb.mo diff --git a/pyfpdb/windows_make_bats.py b/pyfpdb/windows_make_bats.py index 976040c1..de6a970b 100755 --- a/pyfpdb/windows_make_bats.py +++ b/pyfpdb/windows_make_bats.py @@ -17,9 +17,18 @@ # create .bat scripts in windows to try out different gtk dirs -import gettext -trans = gettext.translation("fpdb", localedir="locale", languages=["de_DE"]) -trans.install() +import locale +lang=locale.getdefaultlocale()[0][0:2] +print "lang:", lang +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string try: From b08cb18c0e60d025453e798a90f8ff5973885fbc Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 15 Aug 2010 21:09:18 +0200 Subject: [PATCH 208/301] remove debug print; add import to Config; gettextify tables --- pyfpdb/Anonymise.py | 1 - pyfpdb/BetfairToFpdb.py | 1 - pyfpdb/Card.py | 1 - pyfpdb/Configuration.py | 12 ++++++++++++ pyfpdb/GuiBulkImport.py | 1 - pyfpdb/GuiDatabase.py | 1 - pyfpdb/GuiLogView.py | 1 - pyfpdb/HandHistoryConverter.py | 1 - pyfpdb/ImapFetcher.py | 1 - pyfpdb/Options.py | 1 - pyfpdb/Tables.py | 19 +++++++++++++++---- pyfpdb/Tables_Demo.py | 1 - pyfpdb/TourneyFilters.py | 8 ++++---- pyfpdb/fpdb.pyw | 1 - pyfpdb/windows_make_bats.py | 1 - 15 files changed, 31 insertions(+), 20 deletions(-) diff --git a/pyfpdb/Anonymise.py b/pyfpdb/Anonymise.py index 32878900..3281fa3f 100755 --- a/pyfpdb/Anonymise.py +++ b/pyfpdb/Anonymise.py @@ -25,7 +25,6 @@ import sys import locale lang=locale.getdefaultlocale()[0][0:2] -print "lang:", lang if lang=="en": def _(string): return string else: diff --git a/pyfpdb/BetfairToFpdb.py b/pyfpdb/BetfairToFpdb.py index 4a5f8b5c..07ee2612 100755 --- a/pyfpdb/BetfairToFpdb.py +++ b/pyfpdb/BetfairToFpdb.py @@ -24,7 +24,6 @@ from HandHistoryConverter import * import locale lang=locale.getdefaultlocale()[0][0:2] -print "lang:", lang if lang=="en": def _(string): return string else: diff --git a/pyfpdb/Card.py b/pyfpdb/Card.py index 6bdf3e8b..576a7b38 100755 --- a/pyfpdb/Card.py +++ b/pyfpdb/Card.py @@ -17,7 +17,6 @@ import locale lang=locale.getdefaultlocale()[0][0:2] -print "lang:", lang if lang=="en": def _(string): return string else: diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index 38b4544d..53ccaa56 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -36,6 +36,18 @@ import re import xml.dom.minidom from xml.dom.minidom import Node +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + import logging, logging.config import ConfigParser diff --git a/pyfpdb/GuiBulkImport.py b/pyfpdb/GuiBulkImport.py index e7132018..9b88a12f 100755 --- a/pyfpdb/GuiBulkImport.py +++ b/pyfpdb/GuiBulkImport.py @@ -35,7 +35,6 @@ import Exceptions import locale lang=locale.getdefaultlocale()[0][0:2] -print "lang:", lang if lang=="en": def _(string): return string else: diff --git a/pyfpdb/GuiDatabase.py b/pyfpdb/GuiDatabase.py index c6cf926e..0f7cdab1 100755 --- a/pyfpdb/GuiDatabase.py +++ b/pyfpdb/GuiDatabase.py @@ -37,7 +37,6 @@ import SQL import locale lang=locale.getdefaultlocale()[0][0:2] -print "lang:", lang if lang=="en": def _(string): return string else: diff --git a/pyfpdb/GuiLogView.py b/pyfpdb/GuiLogView.py index cd901eef..f42db9e2 100755 --- a/pyfpdb/GuiLogView.py +++ b/pyfpdb/GuiLogView.py @@ -32,7 +32,6 @@ log = logging.getLogger("logview") import locale lang=locale.getdefaultlocale()[0][0:2] -print "lang:", lang if lang=="en": def _(string): return string else: diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index 91ac373d..eb1d7de8 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -43,7 +43,6 @@ import Configuration import locale lang=locale.getdefaultlocale()[0][0:2] -print "lang:", lang if lang=="en": def _(string): return string else: diff --git a/pyfpdb/ImapFetcher.py b/pyfpdb/ImapFetcher.py index e43f799b..006f9894 100755 --- a/pyfpdb/ImapFetcher.py +++ b/pyfpdb/ImapFetcher.py @@ -24,7 +24,6 @@ import PokerStarsSummary import locale lang=locale.getdefaultlocale()[0][0:2] -print "lang:", lang if lang=="en": def _(string): return string else: diff --git a/pyfpdb/Options.py b/pyfpdb/Options.py index 268009c1..11ef9d43 100644 --- a/pyfpdb/Options.py +++ b/pyfpdb/Options.py @@ -21,7 +21,6 @@ from optparse import OptionParser import locale lang=locale.getdefaultlocale()[0][0:2] -print "lang:", lang if lang=="en": def _(string): return string else: diff --git a/pyfpdb/Tables.py b/pyfpdb/Tables.py index c33b1828..3ffc7d1a 100755 --- a/pyfpdb/Tables.py +++ b/pyfpdb/Tables.py @@ -29,8 +29,19 @@ import os import sys import re -# Win32 modules +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string +# Win32 modules if os.name == 'nt': import win32gui import win32process @@ -220,7 +231,7 @@ def discover_nt(c): tw.site = "Full Tilt" else: tw.site = "Unknown" - sys.stderr.write("Found unknown table = %s" % tw.title) + sys.stderr.write(_("Found unknown table = %s") % tw.title) if tw.site != "Unknown": eval("%s(tw)" % c.supported_sites[tw.site].decoder) else: @@ -247,7 +258,7 @@ def discover_nt_by_name(c, tablename): if 'Chat:' in titles[hwnd]: continue # Some sites (FTP? PS? Others?) have seperable or seperately constructed chat windows if ' - Table ' in titles[hwnd]: continue # Absolute table Chat window.. sigh. TODO: Can we tell what site we're trying to discover for somehow in here, so i can limit this check just to AP searches? temp = decode_windows(c, titles[hwnd], hwnd) - print "attach to window", temp + print _("attach to window"), temp return temp return None @@ -434,5 +445,5 @@ if __name__=="__main__": for t in tables.keys(): print tables[t] - print "press enter to continue" + print _("press enter to continue") sys.stdin.readline() diff --git a/pyfpdb/Tables_Demo.py b/pyfpdb/Tables_Demo.py index 45013120..f583ae48 100755 --- a/pyfpdb/Tables_Demo.py +++ b/pyfpdb/Tables_Demo.py @@ -38,7 +38,6 @@ from HandHistoryConverter import getTableTitleRe import locale lang=locale.getdefaultlocale()[0][0:2] -print "lang:", lang if lang=="en": def _(string): return string else: diff --git a/pyfpdb/TourneyFilters.py b/pyfpdb/TourneyFilters.py index 774c64c7..92b86ef3 100644 --- a/pyfpdb/TourneyFilters.py +++ b/pyfpdb/TourneyFilters.py @@ -45,9 +45,9 @@ class TourneyFilters(Filters.Filters): self.conf = db.config self.display = display - self.filterText = {'playerstitle':'Hero:', 'sitestitle':'Sites:', 'seatstitle':'Number of Players:', - 'seatsbetween':'Between:', 'seatsand':'And:', 'datestitle':'Date:', - 'tourneyTypesTitle':'Tourney Type'} + self.filterText = {'playerstitle':_('Hero:'), 'sitestitle':_('Sites:'), 'seatstitle':_('Number of Players:'), + 'seatsbetween':_('Between:'), 'seatsand':_('And:'), 'datestitle':_('Date:'), + 'tourneyTypesTitle':_('Tourney Type')} gen = self.conf.get_general_params() self.day_start = 0 @@ -102,7 +102,7 @@ class TourneyFilters(Filters.Filters): if len(result) == 1: self.siteid[site] = result[0][0] else: - print "Either 0 or more than one site matched (%s) - EEK" % site + print _("Either 0 or more than one site matched (%s) - EEK") % site # For use in date ranges. self.start_date = gtk.Entry(max=12) diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index e04d6af6..f0d73b8f 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -22,7 +22,6 @@ import Queue import locale lang=locale.getdefaultlocale()[0][0:2] -print "lang:", lang if lang=="en": def _(string): return string else: diff --git a/pyfpdb/windows_make_bats.py b/pyfpdb/windows_make_bats.py index de6a970b..39449fc7 100755 --- a/pyfpdb/windows_make_bats.py +++ b/pyfpdb/windows_make_bats.py @@ -19,7 +19,6 @@ import locale lang=locale.getdefaultlocale()[0][0:2] -print "lang:", lang if lang=="en": def _(string): return string else: From aacfb61d3b20ebe0858177e87a6e2f7562f3b2a9 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 15 Aug 2010 23:23:17 +0200 Subject: [PATCH 209/301] add missing gettext imports, gettextify TournamentTracker.py --- pyfpdb/Hand.py | 12 +++++++++++ pyfpdb/PokerStarsToFpdb.py | 12 +++++++++++ pyfpdb/TournamentTracker.py | 42 ++++++++++++++++++++++++------------- 3 files changed, 51 insertions(+), 15 deletions(-) diff --git a/pyfpdb/Hand.py b/pyfpdb/Hand.py index a5f73560..1d390378 100644 --- a/pyfpdb/Hand.py +++ b/pyfpdb/Hand.py @@ -28,6 +28,18 @@ import time,datetime from copy import deepcopy import pprint +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + import logging # logging has been set up in fpdb.py or HUD_main.py, use their settings: log = logging.getLogger("parser") diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index f2978c89..58f47517 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -24,6 +24,18 @@ import sys from HandHistoryConverter import * from decimal import Decimal +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + # PokerStars HH Format class PokerStars(HandHistoryConverter): diff --git a/pyfpdb/TournamentTracker.py b/pyfpdb/TournamentTracker.py index 1c8ee207..da7135b9 100644 --- a/pyfpdb/TournamentTracker.py +++ b/pyfpdb/TournamentTracker.py @@ -34,8 +34,20 @@ import traceback (options, argv) = Options.fpdb_options() +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + if not options.errorsToConsole: - print "Note: error output is being diverted to fpdb-error-log.txt and HUD-error.txt. Any major error will be reported there _only_." + print _("Note: error output is being diverted to fpdb-error-log.txt and HUD-error.txt. Any major error will be reported there _only_.") errorFile = open('tourneyerror.txt', 'w', 0) sys.stderr = errorFile @@ -96,10 +108,10 @@ class Tournament: self.window.show() # isn't there a better way to bring something to the front? not that GTK focus works right anyway, ever else: self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) - print "tournament edit window=", self.window + print _("tournament edit window="), self.window self.window.connect("delete_event", self.delete_event) self.window.connect("destroy", self.destroy) - self.window.set_title("FPDB Tournament Entry") + self.window.set_title(_("FPDB Tournament Entry")) self.window.set_border_width(1) self.window.set_default_size(480,640) self.window.set_resizable(True) @@ -139,14 +151,14 @@ class ttracker_main(object): self.main_window = gtk.Window() self.main_window.connect("destroy", self.destroy) self.vb = gtk.VBox() - self.label = gtk.Label('Closing this window will stop the Tournament Tracker') + self.label = gtk.Label(_('Closing this window will stop the Tournament Tracker')) self.vb.add(self.label) - self.addbutton = gtk.Button(label="Enter Tournament") + self.addbutton = gtk.Button(label=_("Enter Tournament")) self.addbutton.connect("clicked", self.addClicked, "add tournament") self.vb.add(self.addbutton) self.main_window.add(self.vb) - self.main_window.set_title("FPDB Tournament Tracker") + self.main_window.set_title(_("FPDB Tournament Tracker")) self.main_window.show_all() def addClicked(self, widget, data): # what is "data"? i'm guessing anything i pass in after the function name in connect() but unsure because the documentation sucks @@ -157,10 +169,10 @@ class ttracker_main(object): self.tourney_list.append(t) mylabel = gtk.Label("%s - %s - %s - %s - %s %s - %s - %s - %s - %s - %s" % (t.site, t.id, t.starttime, t.endtime, t.structure, t.game, t.buyin, t.fee, t.numrebuys, t.numplayers, t.prizepool)) print "new label=", mylabel - editbutton = gtk.Button(label="Edit") + editbutton = gtk.Button(label=_("Edit")) print "new button=", editbutton editbutton.connect("clicked", t.openwindow) - rebuybutton = gtk.Button(label="Rebuy") + rebuybutton = gtk.Button(label=_("Rebuy")) rebuybutton.connect("clicked", t.addrebuy) self.vb.add(rebuybutton) self.vb.add(editbutton) # These should probably be put in.. a.. h-box? i don't know.. @@ -259,9 +271,9 @@ class ttracker_main(object): cards['common'] = comm_cards['common'] 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]) + 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))) + sys.stderr.write(_("Database error %s in hand %d. Skipping.\n") % (err, int(new_hand_id))) continue if type == "tour": # hand is from a tournament @@ -270,8 +282,8 @@ class ttracker_main(object): (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))) + 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 else: @@ -294,15 +306,15 @@ class ttracker_main(object): # If no client window is found on the screen, complain and continue if type == "tour": table_name = "%s %s" % (tour_number, tab_number) - sys.stderr.write("table name "+table_name+" not found, skipping.\n") + sys.stderr.write(_("table name %s not found, skipping.\n")% table_name) else: self.create_HUD(new_hand_id, tablewindow, temp_key, max, poker_game, stat_dict, cards) self.db_connection.connection.rollback() if __name__== "__main__": - sys.stderr.write("tournament tracker starting\n") - sys.stderr.write("Using db name = %s\n" % (options.dbname)) + sys.stderr.write(_("tournament tracker starting\n")) + sys.stderr.write(_("Using db name = %s\n") % (options.dbname)) # start the HUD_main object hm = ttracker_main(db_name = options.dbname) From 027afaa5e10aca022755fa4232a371440c974979 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 15 Aug 2010 23:28:22 +0200 Subject: [PATCH 210/301] change mo file creation script, add hungarian mo file --- pyfpdb/create-mo-files.sh | 2 +- pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo | Bin 0 -> 42792 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo diff --git a/pyfpdb/create-mo-files.sh b/pyfpdb/create-mo-files.sh index 85937036..2e76648b 100755 --- a/pyfpdb/create-mo-files.sh +++ b/pyfpdb/create-mo-files.sh @@ -1 +1 @@ -python /usr/share/doc/python-2.7/examples/Tools/i18n/msgfmt.py --output-file=locale/de_DE/LC_MESSAGES/fpdb.mo locale/fpdb-de_DE.po +python /usr/share/doc/python-2.7/examples/Tools/i18n/msgfmt.py --output-file=locale/hu/LC_MESSAGES/fpdb.mo locale/fpdb-hu_HU.po diff --git a/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo new file mode 100644 index 0000000000000000000000000000000000000000..07bd06e6654306c6c441100c50bb7facad3a1a1b GIT binary patch literal 42792 zcmc(|3z%J3dEdPQ!PsN4!RBU+VOvJFWY0O0C0}4{gO6s;NaMMQnIjvC%dlt8o|&U_ z8=s4$85|N3AUFwN114z#NkjtFv`+CS>K5Y`%83HBG--(&lJsfPq)8eAEhHf!BsBE* zf7jak>@ynKCi(JxJVyVsZ)>l;)_Z^7wdQv(`N0PQ{`X&gAP8Op{>nu<>i@5HMG!oj z!#a2!_-61L@MGX^@Ylh;VDQo)cmZ$&I1EmL&j(L{F9hEW9t1xMUIu>KUw`h)f`I>m zYxqac?FZFv2OI}K0$u=q9aR7R3gpq?(l7{kb+89~7I+XG0^i_|SHbf+?t;$*-vX+g zcYx~Gecf;xZRm9GCU12qmegZj=Q_+s$&pzb>k>bvd(bKu88 z-TzylhV+j?_46;mOTedX3xW&5=YzU_C3rQs8+U(|% zY=PedHI7SHx##W!pTqGlf|KAU!5L7EtADfLrQjPtz4vbLV(>>nz4v{f#`UA1?t2)# z3p@jAp03#LuFrTp?6K^z>2bs3+dbar@n=1L)Z@b*9|O;${m+9MpI-wtUjGf$cz+eV z9ef&t_H=L*)b;(~E#N%(gW!9>JotWpy$9+$e;s@p`1_#l`$O;<;8#J>$v6D*cR;oK zJy89)5aJhIy%^LuT?Oj?y`b*94b*r|fO=2K<1(o6J^|hhz5^7!{55zTc*zd;{Hs8Q zHn;=49&CcVIyeO~b-@=vNGSL^I0jy{GYI$@%!Aj0_kgS5$G|s%&*7x#^=?q~`c8lR zi=f8wQBdFg8{p;OZ-cwQzXU^YJDuZaFbe7#uYnq;KLa(+{|9^__*^;#sRlbiU7rU<4-254D}zPwC@8-Egg^c|sDA9>WDa~S zsPBIVsOR1T>iZt>=YJkl`~MW=zu=Sn^D6M0AVU)Dy48*E3aIaIfER&p@yG81HEtgQ z?*KmziVpq~d=VJj76enkWuV@>4E{2>25KB%#><`w=0NrDMo@Hdi$DJcQ0>Q{`q={Y zp0|Mdt}lXm?#rO);I}~C_j{oF@ikEM^H-qSx!~1~?q2{N;P^I>OTjxp(f=7x^6!h_ zOTaIIJHW4kmxGtw?)sYtpTqG@;LE`MpvHRz)Hpo=YCb;#4uhWpHSd26>ik6oH=oZ>zn=r22R;sp&c6z({l5aw1J7g7)t_gB zx_$|$^DhHMzgL4Ak8yB2SO#t0z?~d_2Gsn26&wPuWRleWFn9rYE2#dD`|~AG_m%x| z6I6eH7}R{d57fMW0#twg9jJNuHBjI8hv3!VcfmJ8zRRYa9=-~EDaT{r z>%k>(4*V>r@w#-zjmzbr=6yG)e!m*j_s@bk@J_G^z74zv{1(U*1}~Wnf;WOOsPX+3 zQ0@LU_;T>~LD9i^2VH-z1vPJzpuV>RYJ68gJ^xNH20sKg!Kc5*jZ+)^7{_k`F9NUT zBc2Z42)4mjf*PNPz#G9HsP?`CYWyymcjIz7sP}IN)z3UA`nU-cT^{h~XTS?Nz7rJv zErO!+9|E5Zz8}>69|kW4|EWKI3{?L<=a2t0sD69}+y;IfRJ#|K-27b*sz3Wcjl(3! zCk9ne^zm;%(d8FFjpu&^cY%Kn>i%tqoIKeFYM$Q=>is_hiY^}nQF*~{fNJleJDohb z3{<;^K#k84Q2kl~MSpEje0CqG@BcWcaXJHD3Vy|3{~9QH@{GHf1Mo^P1YZXp2k!y* zfZqc3+%>Ot{k#QyKF3Eu$*VQ+67XJs{)3>#`Tqf52!0lP0r*=WBp!SNd=Yr-Vb{+? zppKg!-|6ubC^~)=ybk<#p!)H@z}Npk5d6Rq_xu}Q=j8nfaG2{K2X6+y0=@#g80OJ9 z902!%OQ6R4r$D{;5%5jmuY;F?yWim6a|b9seIxiv@a^EM!Owt;;P*iFXAve+`^P-q z4_?mkKL<6RUjX$TUja2=zYB_Pz6Oflzvc1oK(%xJf|FNQfoi|tj}L)Ya@+=W-vj>q zCqRw=uleKO2gSGF^T$`c$sHF!jYkZMzJ3n87W@MEQt&T8jq@dud;hDz9UQ+NlpJ|G z_&o45sB!rMC_4Ct$7e7oI=&p#eb<8*gX3Teyc4_u{359D`a4kfU9yDj2VMiNfj0}J4P2gNtr5K6+F$5(h9^*H14u*b5; zrpFDBZ})f~sQLU^Q2qQcDE|8dcm?G;Z&;1c7y82U4b>6pHU1YiTtBY>pTY4vK(+gmpss%e z+zb9IkSPwn2Hpm~rs=-(J>YhZKL?J1e*)eC<{<9tz!RY8_m{w1z)ypsmv4ib-;ui= zU%c953CwZ60R>&xOu%Al$^g2RDbFo z-wN*G_@_Wbbnx#%&Hs)ca`NnUQ1e#-^}Y{*8n*|*7lWSyuK*thUjhC(sPVY&Esh^w z395g$gU7&0@O9wlJihdY9bIjJl6U_c6dnCOsOSDCDEjAPeHZ+O;G*1;71+(Tmq`ymxJ#E_kw!v^Wb^lz0VOxS16~eZ z{5Chf*MT>2JPvByeh5^*e;a%{c-`9_?gEE7-V16R-vnyj9su!7~# z#qV(MT?93sCqU7|`#kfpsz5pEK{1xChxClNId=S*QJq$8s!RNt! z;KYwR`uIukT8_UAUI+dkP|xrD2`3-cz=ItBDOdt;`AIh}_kq(K{}wn2Ui~ijTnp5E ze+ra7`ZD-N@cef>xxNDGdryIy|A)bsf}aIL@b^G{r-W-BxDm{OW$?M+d%^R;UjlXC zL*QlLAAm0hzw7bJ`<$IU4vPOO{`kkh=W+aTQ1a|Epq~3p@D}iILCwR>5cLJ%2&ngs zfzJS^{qa2bY>ri3U>8uw56^S=%bar`Hs`ui8)v%qJ+*M0wsLG|O6 z;5FbIK|TKtQ1AaBcro}9fBY{&_2=J$>c_8un(r@zSAxF-s-5qGn%|ehWN!jz!B>Hw z0B;4q0bU3Wzu(d2D?qh35 z9lrqBQ{2M`iPZtz@o%F}=1fRq4`$5h3M?lTjL!kQkY4CaAe*|9w{sDL?_&receCf}- z{#^m8U&G+#;LV`sVIF)T_`*a7uDzXaY0o(9#WgFFWPr%q%Fnc{8Z~{Q`I;_(|{p_?w{GdD(}Zytxik|JtDV<{t1x;Jx4# z;D^B-;Ag>?f?oyI?)ksy=Itfm^Etj5)b~w;(_jpS;AyZ8J`U>r2Y$)jcR#3h9|YCE zFMIqJsQ13$BX0a|07XX!{qdVX(fd8%BKV8ocJRE9y7R-Jj^{nDgI96<^PuLn2fiBo z51{7p!jJLK&``0}YPP~kdn62lq43&pzSCR_3*An$QeSJfIwRqMLt|l7YsFD{J?zA- zdZiI{;&L!_?X}m2`@0q0I$^hluBql)+^95G!nMj;JVKj=#(G$fj`EV&UUj@utA&ek z*oxJDTn;;{aVriNnvL4}LVhS18jmV9oo#To`y@^Rx56F zYU|-@Tq}o*>%q|e{#{`ws>Y2lpU^9UgpTAI#Dvgn_ty}eF z*7QuX!{@nAYIZwoUF+IntQ*ReW3l_RX1KgoUd-8T?R@7%CyW|p4Qciijr01MZhbLs zh0W!#)awzC+O~lO?;&$a^YHwmoN_pn2{+o zqT2d~=5H+OM2pOm=#HmG8Dnd9i}Nkr9JjgaK-_9x1FJ+!tFfb85luK3FLo<6qZ{${ zs9kpLW-d)M%JB)BaTo4{VPSywHD|R3=dOndKbN5<sC#RFXYhjhCwFwPqc1($}Q7FE?vYgKMZ2RTvU?X=ycTtRONfjb=Fx8^%cO zaJkj2huck%Y%lAn<58PIURjZJ;lUk?o#VrjK4Dd#!A0&7dqTV&8nYKm%I%#S3+GF7 z#bPPsFwm(RN(VNdy7BB&H=TWItXPZm}}7eN_f0g z>BRe^dOTHW#Ef%iHS9Lx6KnC3#O8ddFjp!~Oc%prQLP&fhwh3VEJFkxXgseUVRP{) zPYgq5OEH3p{H4CYUO5sTnknp?Du$)maCEL%C>6umL#2a@r&0a?2+D8%)eL6Tu8zaH~X0t66(hq5pGV|L1uB=l=fB1O1;9{hw3)pR@g+2m3$g z`#(!TVYDr6Q6JF~Ad1 zLwa4tTweiAqXs&0BWf&395u?#@cmzWcNOt{t&lWUmU zT78v^ICh$xv6F(;Jq;(#8Ik$dOd;=?)E&uvJME5yUNP;kzr!8Zj(5$5sdd7G&1&2l zb|5PSawu{;7Q*sy${IWM8gY^Oy4+bSw3b%U12V(vi~?__=VdeNGB;|r+D~}v+Ip+9 zvf2sv?B4x~+@9Un?;b`U#LLTZgI-{cHrvcfBc@NIQL7g2hd`oMxuT1eB}}`h49_pr zkpS(xYfETuzGNQ{RWS55q()L2fi6bAh;hk{mU@guUTeoKz6y0|3ZZ|-9u|4c&rc=l z#wm7DFP3%MQsr2svz~duGV_vH(1A%|2)hOCI-&^|N+u`#r80It(=H7cUbDS@jXSMD zPS20H3sU-}V63?B(EgDS>ypuLGu7&xJ_Zi<*QEKG%}zdUly~feV3{N7Mmnx`*BFFO z6Vp1qU!U%zT=4|T)=ZdX#wNL;+rX%=#dX{zXkPPN;Pp*JhkERLH!(koB$^M#67qzU zIKkUWIcQozTEsKw{VP>04{q zbudSzQR!3=^hgqOGtR!g>2jsqxTXU+b(U5co&{Mg6OH9&Fji@=VOxX?ZghjOrdf)u z`0g%~UiON~^oZOUW4>?`yX>gMc^M^i_E@FNLyPMeNNbX6wAYA(F^rz@K(}mWIHRmX zFB&-N*4O%?mjNrqCpzZd?T}&J4hvJWCAo{T^mYctGP2MtuQt>gHx^_E7%Q0Zfao+r zU5l_HD>xf+3tV5~@`9)luc3&E$sq1F)hNpA@N7s=LnBukB|c-v_V!MU)nainD2k)3 zv5s?Ez4fi0U{W`XXv%IZM*_2$5}htGFt$1CY`a^pM=+IrtkLO?PP17Jx99gRLsf`@ za+?pfXu^`S8Nz&gA`+$BL&KQRroNWNPm9q~HIG{dWi(ch`0hdRy1D>6c8M>v(F*A` z5tFXf+sG>d^~RP zAie_ebL7oxHVe}v4Z3ol*6uDMger@1J{gBZ6yU+vuo}x^tmc~3lKbK%8GpEKf8W;|?dU@?uO6}) zL-<0T^})CyV~SvlYHO>J%+d~qNV^%zZB0zC#5$74+7aip8B!^k*> zQ09r`rc>5Y?Ktr)LJIMk6UPJMS0arTrA#orBqWhkD4sO-wk&zdsqPv*p<8ep79vq1 z1Y&+@Nc386E_F3>F5m~TDmHYif{3;+I36!bTJJhusa9m=YA%^d&C*#jna+$ZOAvH@YNMr$|>Z4tc!ukMEYiF%E1-#nems5z)`5k4_D#gQq4yWBZ0 z=HWx+SC&IqNm?KBB1q}gRbl_ZslCq5+=l=n{&T|WUkiZ)l)YB@rk3K%27IUusx zKk!$KaqE?ig_R{G)SkqV@1>)U)D}h9anXrQ?oN%$17aH&BeFXVqUU0}Z3L0rsuJUg z6|~dLFsv3&lZiQk%xw{SxPJF;u|$jbqN($~cams&8R=Vl@7ww}n=7*|%<9Aah3R7H z@WEoBSd*+W7==I&=C$(&%pS3eNbhX)J`HRS1^dmFboP7MAFbe(;Ggg*&WCoV+d#9c zh&hdABMmTI1GkI-E?#i|rG{Hyfm@yNDxdR(JcY$%EzD%)WMUbeJ_=D*TV0>eos@s4Pz&8TBZ znRn$FktRl6%x=fd5t+3TOh!K<2n|m0#8Pbjd{}R<+wPr~@!{Cqj!QA5U5BUb$kES; zixY)rSu?L@Ou58IyIQei3q$SmMT#Pu%RO}VsS#wLw75(MS?RaQ1xy~y%S&5mcd$-J zkcUi;A84odU89zRI`$^BFTO%u*+?^zB|Ni{joriU$bCy$Lzz>yla_K*}7=DNT0u4b!N*6%g` zX*Fq>bV6L8tw*bo^>|@H?&HG32*EF$!l>Pj>v)-N5-iNbge3-KWTz`Mc&=7vV&_gl z|EBlG_FboLF&Ip!IfOiW9D9tAnv5>{T*e1!lf%e^0o^cozjw#(aEJGxcZPLxKoB5i zRBLB2F*80p63!4egP4+Z664^y?4A1lU5TgGQGOATs^rtzch84~u`vR;6Z7HZtp1%Y zl;$R0t6y^jG7jqpQS;dn34;J@cTK}p_Az@eScnABOY2Ly2y&PV+eTG_jd?s;NZ&W`2r;83C*>6GRi1VV2P8C&1U51h7S;&<_SQ z(Wr1+Twm*~Z<7VXC^57M8d9Hji&>q-mh!>mY`9MW-^0OVyl&qoThYY6dT((B*%PvZ zniiJuCaF5L+AUj7JRgdHZT4i<_|A})H!Dt4Y0)Y^cQIZ^1%`F}Rz|uNGoy-~U{c1onSwkOOcmx!1k;15;+@5*V5(AI za4BQD;H}SQwYz4YVa5q}Kv5&X6yCDQQ!Hf;RwRAYU;X9-d4C;^<|2$?qTEsiq6Ad` z`mik8RvK;*^&W4w%E5HuwJw%EJ@MM&STKEPbW%XO;kaZ*%YM6e=qKhjuTFw+?O>Xt zt3pX8Iy~Jhcj=+DY zY4V?>z7+=$W#D^|)}bgBJL? zL$0GOL~PbQYkYe-SC3Bk=QPR|_VRtL8R_&}H)TV_5yQ?}&>MBXhEj|ObLSF=NTkL9 znTCEk7jAE>a$DE_0 z`^`sKYDI)ah|O!xyKA(i5hiYuSIZKl-ai#zO6GX!BEc)YSa8HYfE%FN)=#_3iG$1An4o(#g7w6^!GIwOnfKqU9p$P#X)(B5A%V;hl zwToT(k!2k8m}&!!Bt{7d4=814AirVVs6x!+c=%ktQs&;QlXNf#lL|)Mv~1x9=M@-{=oTk-B+Br)P4+G- z*X9-BIUYJlu4e^p$=janIkW9;F4ByP)cbKld*UmXDdg8k|5fQDrgT$sP6AOXc=DgU z#WSMtwpkF#D-`CGV&G#J30f9mIBa`t*?=w#SGdo7JPbx1_Yr zye>;GCGQbOTHVi+zJzyVULkF2bw5wuJD;0$WS+dvXCN|969iV@AyFAtrYqB|E72$k zKQffUQ+fcFjfEF0jAo-$h5hMv)2^-@re!bjrm%8()5HLaK!!pf-X+m z+N_SZRJ{jDW0}2)&JQ@q{>BI>lH{Kg(=c`g=*IHN{%|S%p1i-w>#h zW5V1KJ5jrO1c7B4u*^i7_)uP6&B|Nz$$ZVb^s`g0!D}$=Eu~37ur4Dnm@7;cgE?ug z?cROEU&V*9z`{-&;EXTp?radLmU)!7L$#g|go}L{rDC+zTJLA)cTdReg+DkyD zqH;c}M4AcaCrZVD3a`=0dBI#MRHYX`RfWbWxiljADKlY$d1v|);qfYMERmC3vNA^Z z=JW`2y-XyU6mQi{P;#Zs50pDrkTPO+qS<20fnP#Uz!qss{5dTHe41nn!{XJyVrdEj+3Sh-KGYYkUhWS;sB)B1@mS zQ2>t=>{7GFU~8_Nd4*5mvR@WnLuu5b2HA4PGEU145JTBK4UH2|f-w*WDN*1F{X>jS zYm#-H9tY)Xa?+=glfwmnd}zL~zc>rQ)b}07Dx}EJ$W+<3Eh_qKsGxXA)tXmFoM<+- z4G!^9lw=9vXCqHlVrT2)l)G}8_}n)Ud~)XP*$o*d>$OlhGi5iJv*t_qGU4{2;7(Od zBVo(UE;r{~-cxoFCdCTA*`40Fkul`0)RDkfW>7cXk9s(Ik|C00R8peC&QAi4iKO!N z$-IalQI(7&*=5I?2$ki^3Dul#@fOP%dYWBb9U$AGA&F8H{#g-2qEKHaHRI(`iUa@gBBRADGWhh+07ple$TQapkC zEPK#Vi6}`Vp@!jDa~l&5(bESH-!(C_cMq!0Wm1hVe6o6T#Q`!1(K`op6SGY9_v@^p_6=dFrGg6vGAd)!68c`E0Mdz>Zlg-R zo0us~s{H8ob}+DZ#H)p1AzRVAkm#ad!Pln+3zp#IVOfJ1Dn6f1V0^(c9Se>C1CLt% zlKv(>((JBKXsejyu8HZw!C+xZWkjh+S#04SHFoOsN;nOTVKMP81uNaZn?jZgvg?C| zxtKY?HFxIVg2Yr{|Mpw%G|Nrem9cq%Z%rbZNd;Zser4ed#=I*=Tu6j_*0|gpWT90j z`r84+E+ex+{VBtafY%({2BN}%K!a?GOks~DtS|Etm@iFnLaT%27D&=3D5$U&ech@e z48bC!*>Eu`$ms-?i7O3Ljmi}8TPfv$5K%QP0C@_FuPpfDhQL*Q`f5(+E9C=)*ljIN z%Dofyh{{3}MMV6lwULli*d;dVRn%5axRcg-mmepa&G_j?2Fx;)sd%-_Tc8?wEeEtE zDk`=b3FlapqbF2pa8M?!Wfr!&voAlNSmTiuClyzwGBR*K+m@bK=~iwbFo*h50)~=A zvvXEd)=Zq3V7|n@^Yn7d+*6@bm@CHfJn=$cjH0S@O%xxk$pP-VlMDSQKgyX9i zAu(&{v*)_qq_Kvk zqIM@&N=rAXYErItiTYB?=WdPp*UiW6D|OhM%C`Eec*fOn=1Or?XN7dPu@bc^q(aVd z|1`0i{M<50#ALPi$g#LnjW^ER zpDg~?!X;-gKyNF(Q?**}p-%5qJ0gc@E=9d}O0|4-3fDSYEdf8^nqF$3xj$^ISM1rU zt&$ts$D?)pb6nO&w6fk@Tyz~-SZYVrg=RTgplGtyd#n~#E4_zWytNfkk*&HeI)c2| zpn+zM^Xl7brT1u?V%_2JD6y|bEnW$&Z|!iQnJ{VdY^sC*1KkgAl8aQ z2H@B^`auA+_u$F~BhK68216kT2KSKqY44hjSB}Oj>l?iXnE~V-BUGi1RLf9$r#clr zw6Sh438M`QnP-=V^N_|pduq9N>S(Q5WeN$QYT>w;Bqr0}duXlOrcA!g7}S}u^h%sP zhiI&NGqHDSsnR=*J*pOAzV=3gK_T2hqnTl-#hgtD0WrU_#f&VI6RDLMsDUS$r}jov zbzhe=x`}JO2V1Lg2l|M%YAG1<-h{0zCkSY>Jq)ov$g-v?HIlV>jRxD)8YPYgx8{0} zKnkoe&o#kg(3e)4=NMx@sBToCAU=+j-y4)f)O(MzsD<&M5;`cPbX3tw^c*6ky@4cX z$D1zg-J9FXrDm(yj?~h?b2sMpq>qJ^qvOm<(ou83tvUpZ58?*g!9j6_f+hVJg$crV zgJ1o1=jIT2c1(#Xvc>1wOM~;nB5$`U-9HGUKKT>O&3dzb)FlUU3>u-3+B$|eRJ_{U z&~o&0)PWB-;6rAhE^1B|q-QQ+sBb`r#`eZd!5B2&twWWa-XksMp7A7Xag?(mGJyI~ z36u(T0}V(5larO}I5Pc9y+@C>qTYj=^2{qIEJ{!fx4v4WLbm}$LM~}TIT`esw?tLM z62#$q)_bIe=}63AqY+p0Lq*Yt3{6E&U|v*pD_X1&sexR&ou%kYCsoT39_2?T{?f^6 zQ-*>BUbxzO=$P43PkJZZ5viWkR#Whm98_k-3=UJDl6-4xdaQj2H zoIxuGlcu)nU%9#HTiWVsjHyqZP@VNIz8SiA494#?H=qM*17IY#zTV_Zv&zV9FNe3i zYP+qi=WB5}I$B)tw5AD&^RW^k4B2^pp5W6}ED~Z`~EULmZi?JrTZ9|43v9U!ebab9qQ=3^7T`N z4adW_qF=hX!F}5lo#rvJSO5R5>7N{(=)Er}7>HSWCntmHiJ7tDjInO8Fhfse?F{<} z*~YLw6@kD%LAq9-uZU`97xYe_tK22MS$X+n5L6RawtpZuDG?KtLGRucmKY|GOhKX+ zsj4Erv4M#LbIKyXX2jNlAy7uA7U|NCYP1s%393cTMZ~Rp_mW!tdl{;kb^e*3jw)=) ze+m9(!DIoMRG13(&ra_PW+++|(N2V8y?5OaOcsxf!S_ezi);umJGtp{c(8Zx%n?LJ zF(_`J*~D}hJ(!;RVrWPT<@f&c|IKPoxEczJTS4Z5X>Lxot&PXDuw*Gcaraz!3XGc%j~d1 z>r#9T78`A3$G#f17V(Htq6|3kc*F*#S)DpXBME=1YLNh*KNc}bjYd=@W^Pt@yX@3^ zV!>gS#2ZZSGNDu1tr>&0cM2ngQI2K(A43Kb89?c{vLMZ^a@@-m>|Tu>6r$cB!gRYy zFw2)V-UMQakk z7^ZX#L#dkiLV8ndow>j5EMH0cC?Vp$X+;-89`wVO_J}WpQ_gyRV6tE<3LuE(ZMLas zGnjNb9Yw;&MFaa2_)QBk^Ue@xh&<~#yow2p-q!b> zW-KX;Otqw3o-OaQS%>?y;lX0oTdTlv)Jw-5#YJVm5fa4l^hR1lb+%cw&H>y+k-)^*7$A zRM}I&J)`lcv`t_skhR6e3A6iTp&-=z8b{`>oS;gzcdF{WpOHXPAX+=h_bOy&gf(yTaemUSztGA32{(C%kn4Y!3t#&Zv;tjE;rbn*wBDa!^5@`96F z+9+h_`Xmmug-_&8%W{oWt$=2H&>0#7B1wI~Q-&<1K{dRI$pdl4tE(}z%C0*ZA@-D> z$ZWb`(;#wfZ&dLQs=yGQm_cgo-rup zPhXSS$f>ts5=h^g!Qw+3jY>Xb zF^OUe4@y_NrkDi$Ic5M$0DJyH3@t^0jH>+W{k;h<$Te!SQJ+?-S#R{=F#K8mQ9i^v z-q>KSsn&oyjh8%SWOk2W1S1rK4d=Ox<03;(Mt#|q%cjP$S&_DZ1Y0{DE>2AskCcko zo%60^IDjG;%_iT+4q5u8FbS;82d-37Rb%D{VOoaFl9ig&84j}gE3v4WRkW0b>anUC ziB(Co$VNZwlwk3`M{2y2y{QO04?Zyv$RkU&wvK`4XuO_o6@lntA;G3M+s(RlmuaGi zqNH?lip(n+;-vNw$|p)IqMMBB-EjHL{bm7D$xy=)meb5X+G4_f1b4cqE}ych31wTp z)Nz0yEyF$#I%VewA~`TShVAL{(a5h7bBfUonmONW=Mx`|H;z$pQB<(V6BuK63W{wZ zRxs8Hi{oJ%LA5A=ba6on@cEqn`JmuJ#S(0aQ1?zN9AlJveN^ zwd5-7yC5(bXH2h@mndH2Y$3+VK!^VxJ8LMZfH3hLP-v1M+6JpekpXG&nTiJXvas+@ z#4b_2N2&UXSK(W3PIN!NGjgH40JeG)(n+`&hz2>gy+`}hV&9-hUBT^sksjNY z7l~aT!TL2@qJctYX*kCB-pRMC8B1pnm$v}IR zh5jli+d>i^!ggT}5Di4Kp}2U(xx`H-A(3#hGZXItvBXet=_&4zAu>a5*$x?|X_Yr? zWOu?4Q65kokaoaOBsb$ih|{Gs2CG>Hcg09O5&E9wBuCUkmfZ5$+8l#Gh#BtQ+39b2 z@l-VZ);naRD*uk&Nfi8KsrRmfhvql$lOg?`vFd`vny$LtGMFNa9K}FfRuzfra(K3D zhJ{N8oVfiyhLSxgLx*k3Fj(-lk{g;;)K*h#Pn}hGilExyjvD4UjD$Ftyj#JNWKRve zCdGE#nK`i>>L}S|1M>=}%C70P5O=dI_2gcUp0@2Z>T829bGvK&BfoK~=#vc$vdswl zd7ic32D-x~ek-PI7qu-Pxdg}K#MGS~9aYI94EX$638B2pxwqjMAVQbu?>$Du3+e0G zj4YAWgUf?Wi2vUl$h^PKwqKF#E~pk#XkeqfJ|-su)b6`w-r{2ccU zxYGJ+ZXNfgn;lSrf<%_hWru0N0m4w&K%Uc?hrLtfMKIq*F1fObOT=C543X^Cfh?9< z!nw=r*O8vYvrX@Dc9K_qR_++D$7sn2a}Y z&ZOIA_AH{wENaKLoRFI3qT?#sl9l~6&FG-Gkfq!?=+jp zp=Ma3)O!@NN~IjHJ%Bvha)S?ZZED0yWIbeF=A2M<-wfPMA#LSwviEz272TXBqozTv z65V@(*UHaE#UB`DzcKwpk)LA%$s|se zc9%=k0ia0zo+ADUhRsDRd|bd4q@+(-@qiw3`-)6X^gbxxl--HR^V!xSZeNjfQxWrH z%uMqWqR76_+Ygk{AXl3Wf~Ev_WPXR4ni^ryX#1@Z;iuE3-Lh8A9o9j-~fo0n0+52yPJR(C5QIB=u#L3hBD&~<7(N{!-0b&hG- zIm(=W0!AqpVJ zEN{+nTP>TiQY{9_=r7r+#8ORCTB4{&2u`-+;81CHYMyMrvVkPkCRmF%m2O%>r@Wf# z?^P0Gtd%72Ag(l;Lg*$FJtFGLMGMWTnveJJrCa6+AQXtUZ>B;@R#Y`;ZkVW1{BX-Q zMAXuDi8IqXjhaovlk@^Z<1|qlc0b9d*}_ROopU8Jn$w|W?-lHy;xU!zP?}DlfvAZ) zu_*;Y_e){ckI~zyQ1OjLPX)2-f5V8#*(m_gCs@0xtA`BJg93> zE>=;M>W#j(+1!bkzenBDq8( zdhNAYJel4SbrM+*>t`Our!7mWIxU9*M4$-w8dH&Yk<1|`)~T*`hn1ptT3oL}fPtdF zMYaQUG7=%2wa&Hvww|g~C`491u^&Y<<#$jQCBumKDEPn?bw-hQV(`JVkDEMR1SJ!;bxacT712pT zCft(l9Gwi{u;C|gw)zFB{-sS{Yv3Y#DT z@2oK6rfQgB3sMg7Emk8{F3B(r)R*}2H*q4nWQT=zcly{5LMLir4ABkM{UonddqmT0 znlzMD^Q4zjftUCJ!%y+eE~e~Xm{c6tTV-3N1-?)HQwADzrNt~I8tk7ucooEC#>e7K zZ1v1MX==7g1nGk9htr=`n+9Y9KCp#URfOTP(PCl|K4jr%fJ`nnJlS9-P2I5sjfE0= zr*#vtt_BsKM+ueona*>WbGBrhQNp{f@ODNOC)1S%S}?5Xs#&xUT}FjHC3!HoXHFW6 zJa`V#MEmEESsCJ_hJdIC8|Wla5S~i5hx$jc#?t0D8)P$2W_2y>%aqs<2ibHu^F)>O zeq$21%?^~n#AXJ;T!iU9$4ZQo#6i25X`v$X#Qo1w5kz{YD|F1BMTEFzG9!&YN(P zcJ49DRT+Z@>2Q~?_iLeN*w_isqa&uxUu`1sN*}y}(-iItP14?`K$>u;z%nsca}pL_%$g zaoqZ}qBz-dA$xXV^CWD#YfDXUTL|?&IOX&GsguQCPsQnAN>u==K2?C$3Qi}eG{qUU z0$z#HtSPNfgbl%F1>+5Tftxl* z&)7jPky)9CM_321wLH|+s4HqP*^-fj9A2+7`0~}=zrOO(&QXVBW-IF)k5k5(4;TqPfVBLA@vv5z-*#=NnerFFH$h=JvoZ?tn%H-X9bZ+ z>vDTVC2Tt=BID2diG}=1Mc$%&Ln@(38qm1*go#85&+&^NDJ=t)fr-e z&1ml*!Gpr8P=TLn2;Hw#?hZ=Nv}fX{eR-Nx zG?-fP`!?k)#F_5hr1DwGGA%b{|0b%`_>;ET?VGH^M8!axOV#MR)eoDoJ!q#R+*yq1 zbFtG_gJsb&=CMs3Elc3p!~&{xnmF9CMrjiX2;2`S6~U~+oC@Zkul7ZM>t1tXWY%Z( zIjp?XQ8>!OFXvNqH%p@okCCMaOGct>prmcct1kmw zQ#O$2G7uTnEm~kAmDfvzAn_jWY^H9o+|=>xYb`zsOJus8^a*2kNNbxIGvYfw#e?YK z?SbhcUtDR{V*81|p4o?ZE4^Vk?t+-Kqm}BicLJ-D=V$w=8Blv7fbOE6qA3rVKzv zd}KRnBG(r=M_32b$rG}@pW(UAnTH$t)07r@ z^40s=LBvO6VF>y5-efan8Ks3&eogznGxs0Eq_cn_9A;u%6|yYh)XE$FURG-84GJc| zRhBEd(lR9{J)ZJzS%r|l>?|v3ESP{eQH`n;qxaB!Un(GaiRnnz5l>@L#Rl6TX>%Pu zOmR+?s#q$)44Hu^B@ZlGam@Ll&?>XzipXqfs7liq<@KgA`H6*rZz#hXvz_805;A93 z){dlGX-&GS2K0$f#aPKFl@?l{5zAQV#~Yzm^Ut!2huMlEU?SPw_1nD(HsklMOz zY-LLgw6m5KLE+-t?pl3;d76!@T(N=QR?D}d)rn|}h16sTid1jbk`v($?XgAt)k$|# zNDHn$I^5v`^*e)^Xl((WQbNyd8iDp*pzOu0r(j{Szp9RIFHEK`IbLyp;Yql>&@Z%% ziI+={ENI)_j9y`fBMe2`hYM$S!7)HW&PoL&ejdUGNziAQh|kZyEm8ldxCO~7t4_%F zW~y&XA#m{eK%0QuUHxV8M*UW|F=11RHYs>dygdDPb*0f9CXZo?{&rqDxhOfdx^eCgISwr+$9ndK zMghYL!^FudOh+#nje}S76!*tCYbBF2BKp)n;9}rXLUPG2L1_Ux`Iw|io1`hS-IhU~ zwf`4`u8qG2IL`kuovgTxw%XupuxN6tI|jAUQ#F>@KZ;d2Xx6wE@Y_jTd<~50NV{?7 zI=Aqfq$9&mB4QVLk z-&f4SjqtUmK?*?;iX`Rcbj;?R#l)01`I2dJBdIF@`ASJi0T7_$ibi@BClxW#|J!vs zDGv;%8$RoY_6CMQ1C4P?9Wu1YPmRq6!JL83jF>Ei%~3G{jBzeMMmDl@WEky$=F(c2 ze#Q{n8ue!ee2^Mq8S$HaDhf95&*E8`4zuuXa9=XMHDhJ5C84bOB*q#Ao_6?Og}7P<9vvKS1h z)>Kw_(@tiKu`=m3a_6dM)G`#~#Le59J<)BJ<+mNnp6IT2O!oT8?;;48+=VPxwP3be zt~TJd0QXgYS128OBhJ174n;zb_=s#*i>rvz@GCppxUtIlr(|IdT5VfwC5B}-)cn7T C25Xc6 literal 0 HcmV?d00001 From 4696c7afaf2cec4e64a0a7442ddd9dc11f9963f9 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 15 Aug 2010 23:38:13 +0200 Subject: [PATCH 211/301] add missing gettext import --- pyfpdb/GuiAutoImport.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pyfpdb/GuiAutoImport.py b/pyfpdb/GuiAutoImport.py index 6282063f..1d4c2053 100755 --- a/pyfpdb/GuiAutoImport.py +++ b/pyfpdb/GuiAutoImport.py @@ -31,6 +31,18 @@ from optparse import OptionParser import Configuration import string +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + class GuiAutoImport (threading.Thread): def __init__(self, settings, config, sql, parent): self.importtimer = 0 From 270657aeb098ee1274a32f9206cd38763f35025b Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 15 Aug 2010 23:49:22 +0200 Subject: [PATCH 212/301] Revert "gettext-ify Hud.py" as it breaks HUD -> err32, broken pipe This reverts commit 908936fc258b7affe41f9730b615eb67ac98d352. --- pyfpdb/Hud.py | 152 +++++++++++++++++++++++++------------------------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index 0c608b52..a92682e7 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -134,153 +134,153 @@ class Hud: # A popup menu for the main window menu = gtk.Menu() - killitem = gtk.MenuItem(_('Kill This HUD')) + killitem = gtk.MenuItem('Kill This HUD') menu.append(killitem) if self.parent is not None: killitem.connect("activate", self.parent.kill_hud, self.table_name) - saveitem = gtk.MenuItem(_('Save HUD Layout')) + saveitem = gtk.MenuItem('Save HUD Layout') menu.append(saveitem) saveitem.connect("activate", self.save_layout) - repositem = gtk.MenuItem(_('Reposition StatWindows')) + repositem = gtk.MenuItem('Reposition StatWindows') menu.append(repositem) repositem.connect("activate", self.reposition_windows) - aggitem = gtk.MenuItem(_('Show Player Stats')) + aggitem = gtk.MenuItem('Show Player Stats') menu.append(aggitem) self.aggMenu = gtk.Menu() aggitem.set_submenu(self.aggMenu) # set agg_bb_mult to 1 to stop aggregation - item = gtk.CheckMenuItem(_('For This Blind Level Only')) + item = gtk.CheckMenuItem('For This Blind Level Only') self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('P',1)) setattr(self, 'h_aggBBmultItem1', item) - - item = gtk.MenuItem(_('For Multiple Blind Levels:')) + # + item = gtk.MenuItem('For Multiple Blind Levels:') self.aggMenu.append(item) - - item = gtk.CheckMenuItem(_(' 0.5 to 2.0 x Current Blinds')) + # + item = gtk.CheckMenuItem(' 0.5 to 2.0 x Current Blinds') self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('P',2)) setattr(self, 'h_aggBBmultItem2', item) - - item = gtk.CheckMenuItem(_(' 0.33 to 3.0 x Current Blinds')) + # + item = gtk.CheckMenuItem(' 0.33 to 3.0 x Current Blinds') self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('P',3)) setattr(self, 'h_aggBBmultItem3', item) - - item = gtk.CheckMenuItem(_(' 0.1 to 10 x Current Blinds')) + # + item = gtk.CheckMenuItem(' 0.1 to 10 x Current Blinds') self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('P',10)) setattr(self, 'h_aggBBmultItem10', item) - - item = gtk.CheckMenuItem(_(' All Levels')) + # + item = gtk.CheckMenuItem(' All Levels') self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('P',10000)) setattr(self, 'h_aggBBmultItem10000', item) - - item = gtk.MenuItem('For #Seats:')) + # + item = gtk.MenuItem('For #Seats:') self.aggMenu.append(item) - - item = gtk.CheckMenuItem(_(' Any Number')) + # + item = gtk.CheckMenuItem(' Any Number') self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('P','A')) setattr(self, 'h_seatsStyleOptionA', item) - - item = gtk.CheckMenuItem(_(' Custom')) + # + item = gtk.CheckMenuItem(' Custom') self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('P','C')) setattr(self, 'h_seatsStyleOptionC', item) - - item = gtk.CheckMenuItem(_(' Exact')) + # + item = gtk.CheckMenuItem(' Exact') self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('P','E')) setattr(self, 'h_seatsStyleOptionE', item) - - item = gtk.MenuItem(_('Since:')) + # + item = gtk.MenuItem('Since:') self.aggMenu.append(item) - - item = gtk.CheckMenuItem(_(' All Time')) + # + item = gtk.CheckMenuItem(' All Time') self.aggMenu.append(item) item.connect("activate", self.set_hud_style, ('P','A')) setattr(self, 'h_hudStyleOptionA', item) - - item = gtk.CheckMenuItem(_(' Session')) + # + item = gtk.CheckMenuItem(' Session') self.aggMenu.append(item) item.connect("activate", self.set_hud_style, ('P','S')) setattr(self, 'h_hudStyleOptionS', item) - - item = gtk.CheckMenuItem(_(' %s Days') % (self.hud_params['h_hud_days'])) + # + item = gtk.CheckMenuItem(' %s Days' % (self.hud_params['h_hud_days'])) self.aggMenu.append(item) item.connect("activate", self.set_hud_style, ('P','T')) setattr(self, 'h_hudStyleOptionT', item) - aggitem = gtk.MenuItem(_('Show Opponent Stats')) + aggitem = gtk.MenuItem('Show Opponent Stats') menu.append(aggitem) self.aggMenu = gtk.Menu() aggitem.set_submenu(self.aggMenu) # set agg_bb_mult to 1 to stop aggregation - item = gtk.CheckMenuItem(_('For This Blind Level Only')) + item = gtk.CheckMenuItem('For This Blind Level Only') self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('O',1)) setattr(self, 'aggBBmultItem1', item) - - item = gtk.MenuItem(_('For Multiple Blind Levels:')) + # + item = gtk.MenuItem('For Multiple Blind Levels:') self.aggMenu.append(item) - - item = gtk.CheckMenuItem(_(' 0.5 to 2.0 x Current Blinds')) + # + item = gtk.CheckMenuItem(' 0.5 to 2.0 x Current Blinds') self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('O',2)) setattr(self, 'aggBBmultItem2', item) - - item = gtk.CheckMenuItem(_(' 0.33 to 3.0 x Current Blinds')) + # + item = gtk.CheckMenuItem(' 0.33 to 3.0 x Current Blinds') self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('O',3)) setattr(self, 'aggBBmultItem3', item) - - item = gtk.CheckMenuItem(_(' 0.1 to 10 x Current Blinds')) + # + item = gtk.CheckMenuItem(' 0.1 to 10 x Current Blinds') self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('O',10)) setattr(self, 'aggBBmultItem10', item) - - item = gtk.CheckMenuItem(_(' All Levels')) + # + item = gtk.CheckMenuItem(' All Levels') self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('O',10000)) setattr(self, 'aggBBmultItem10000', item) - - item = gtk.MenuItem(_('For #Seats:')) + # + item = gtk.MenuItem('For #Seats:') self.aggMenu.append(item) - - item = gtk.CheckMenuItem(_(' Any Number')) + # + item = gtk.CheckMenuItem(' Any Number') self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('O','A')) setattr(self, 'seatsStyleOptionA', item) - - item = gtk.CheckMenuItem(_(' Custom')) + # + item = gtk.CheckMenuItem(' Custom') self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('O','C')) setattr(self, 'seatsStyleOptionC', item) - - item = gtk.CheckMenuItem(_(' Exact')) + # + item = gtk.CheckMenuItem(' Exact') self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('O','E')) setattr(self, 'seatsStyleOptionE', item) - - item = gtk.MenuItem(_('Since:')) + # + item = gtk.MenuItem('Since:') self.aggMenu.append(item) - - item = gtk.CheckMenuItem(_(' All Time')) + # + item = gtk.CheckMenuItem(' All Time') self.aggMenu.append(item) item.connect("activate", self.set_hud_style, ('O','A')) setattr(self, 'hudStyleOptionA', item) - - item = gtk.CheckMenuItem(_(' Session')) + # + item = gtk.CheckMenuItem(' Session') self.aggMenu.append(item) item.connect("activate", self.set_hud_style, ('O','S')) setattr(self, 'hudStyleOptionS', item) - - item = gtk.CheckMenuItem(_(' %s Days') % (self.hud_params['h_hud_days'])) + # + item = gtk.CheckMenuItem(' %s Days' % (self.hud_params['h_hud_days'])) self.aggMenu.append(item) item.connect("activate", self.set_hud_style, ('O','T')) setattr(self, 'hudStyleOptionT', item) @@ -296,7 +296,7 @@ class Hud: getattr(self, 'h_aggBBmultItem10').set_active(True) elif self.hud_params['h_agg_bb_mult'] > 9000: getattr(self, 'h_aggBBmultItem10000').set_active(True) - + # if self.hud_params['agg_bb_mult'] == 1: getattr(self, 'aggBBmultItem1').set_active(True) elif self.hud_params['agg_bb_mult'] == 2: @@ -307,28 +307,28 @@ class Hud: getattr(self, 'aggBBmultItem10').set_active(True) elif self.hud_params['agg_bb_mult'] > 9000: getattr(self, 'aggBBmultItem10000').set_active(True) - + # if self.hud_params['h_seats_style'] == 'A': getattr(self, 'h_seatsStyleOptionA').set_active(True) elif self.hud_params['h_seats_style'] == 'C': getattr(self, 'h_seatsStyleOptionC').set_active(True) elif self.hud_params['h_seats_style'] == 'E': getattr(self, 'h_seatsStyleOptionE').set_active(True) - + # if self.hud_params['seats_style'] == 'A': getattr(self, 'seatsStyleOptionA').set_active(True) elif self.hud_params['seats_style'] == 'C': getattr(self, 'seatsStyleOptionC').set_active(True) elif self.hud_params['seats_style'] == 'E': getattr(self, 'seatsStyleOptionE').set_active(True) - + # if self.hud_params['h_hud_style'] == 'A': getattr(self, 'h_hudStyleOptionA').set_active(True) elif self.hud_params['h_hud_style'] == 'S': getattr(self, 'h_hudStyleOptionS').set_active(True) elif self.hud_params['h_hud_style'] == 'T': getattr(self, 'h_hudStyleOptionT').set_active(True) - + # if self.hud_params['hud_style'] == 'A': getattr(self, 'hudStyleOptionA').set_active(True) elif self.hud_params['hud_style'] == 'S': @@ -338,11 +338,11 @@ class Hud: eventbox.connect_object("button-press-event", self.on_button_press, menu) - debugitem = gtk.MenuItem(_('Debug StatWindows')) + debugitem = gtk.MenuItem('Debug StatWindows') menu.append(debugitem) debugitem.connect("activate", self.debug_stat_windows) - item5 = gtk.MenuItem(_('Set max seats')) + item5 = gtk.MenuItem('Set max seats') menu.append(item5) maxSeatsMenu = gtk.Menu() item5.set_submenu(maxSeatsMenu) @@ -525,7 +525,7 @@ class Hud: # ask each aux to save its layout back to the config object [aux.save_layout() for aux in self.aux_windows] # save the config object back to the file - print _("Updating config file") + print "Updating config file" self.config.save() def adj_seats(self, hand, config): @@ -534,7 +534,7 @@ class Hud: adj = range(0, self.max + 1) # default seat adjustments = no adjustment # does the user have a fav_seat? if self.max not in config.supported_sites[self.table.site].layout: - sys.stderr.write(_("No layout found for %d-max games for site %s\n") % (self.max, self.table.site) ) + sys.stderr.write("No layout found for %d-max games for site %s\n" % (self.max, self.table.site) ) return adj if self.table.site != None and int(config.supported_sites[self.table.site].layout[self.max].fav_seat) > 0: try: @@ -548,15 +548,15 @@ class Hud: if adj[j] > self.max: adj[j] = adj[j] - self.max except Exception, inst: - sys.stderr.write(_("exception in Hud.adj_seats\n\n")) - sys.stderr.write(_("error is %s") % inst) # __str__ allows args to printed directly + sys.stderr.write("exception in adj!!!\n\n") + sys.stderr.write("error is %s" % inst) # __str__ allows args to printed directly return adj def get_actual_seat(self, name): for key in self.stat_dict: if self.stat_dict[key]['screen_name'] == name: return self.stat_dict[key]['seat'] - sys.stderr.write(_("Error finding actual seat.\n")) + sys.stderr.write("Error finding actual seat.\n") def create(self, hand, config, stat_dict, cards): # update this hud, to the stats and players as of "hand" @@ -572,7 +572,7 @@ class Hud: self.stat_dict = stat_dict self.cards = cards - sys.stderr.write(_("------------------------------------------------------------\nCreating hud from hand %s\n") % hand) + sys.stderr.write("------------------------------------------------------------\nCreating hud from hand %s\n" % hand) adj = self.adj_seats(hand, config) loc = self.config.get_locations(self.table.site, self.max) if loc is None and self.max != 10: @@ -621,8 +621,8 @@ class Hud: try: statd = self.stat_dict[s] except KeyError: - log.error(_("KeyError at the start of the for loop in update in hud_main. How this can possibly happen is totally beyond my comprehension. Your HUD may be about to get really weird. -Eric")) - log.error(_("(btw, the key was %s and statd is %s") % (s, statd)) + log.error("KeyError at the start of the for loop in update in hud_main. How this can possibly happen is totally beyond my comprehension. Your HUD may be about to get really weird. -Eric") + log.error("(btw, the key was ", s, " and statd is...", statd) continue try: self.stat_windows[statd['seat']].player_id = statd['player_id'] @@ -929,7 +929,7 @@ class Popup_window: if __name__== "__main__": main_window = gtk.Window() main_window.connect("destroy", destroy) - label = gtk.Label(_('Fake main window, blah blah, blah\nblah, blah')) + label = gtk.Label('Fake main window, blah blah, blah\nblah, blah') main_window.add(label) main_window.show_all() @@ -937,7 +937,7 @@ if __name__== "__main__": #tables = Tables.discover(c) t = Tables.discover_table_by_name(c, "Corona") if t is None: - print _("Table not found.") + print "Table not found." db = Database.Database(c, 'fpdb', 'holdem') stat_dict = db.get_stats_from_hand(1) From 54805e8771109638c891c6a2520712e83f0112e2 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 00:31:17 +0200 Subject: [PATCH 213/301] add 8$ limit support, make list look nicer --- pyfpdb/PokerStarsToFpdb.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index 58f47517..39347f73 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -56,15 +56,20 @@ class PokerStars(HandHistoryConverter): # translations from captured groups to fpdb info strings Lim_Blinds = { '0.04': ('0.01', '0.02'), '0.10': ('0.02', '0.05'), '0.20': ('0.05', '0.10'), - '0.40': ('0.10', '0.20'), '0.50': ('0.10', '0.25'), '1.00': ('0.25', '0.50'), - '2.00': ('0.50', '1.00'), '2': ('0.50', '1.00'), '4' : ('1.00', '2.00'), - '4.00': ('1.00', '2.00'), '6': ('1.00', '3.00'), '6.00': ('1.00', '3.00'), - '10.00': ('2.00', '5.00'), '10': ('2.00', '5.00'), '20.00': ('5.00', '10.00'), - '20': ('5.00', '10.00'), '30.00': ('10.00', '15.00'), '30': ('10.00', '15.00'), - '60.00': ('15.00', '30.00'), '60': ('15.00', '30.00'), '100.00': ('25.00', '50.00'), - '100': ('25.00', '50.00'),'200.00': ('50.00', '100.00'), '200': ('50.00', '100.00'), - '400.00': ('100.00', '200.00'), '400': ('100.00', '200.00'),'1000.00': ('250.00', '500.00'), - '1000': ('250.00', '500.00') + '0.40': ('0.10', '0.20'), '0.50': ('0.10', '0.25'), + '1.00': ('0.25', '0.50'), '1': ('0.25', '0.50'), + '2.00': ('0.50', '1.00'), '2': ('0.50', '1.00'), + '4.00': ('1.00', '2.00'), '4': ('1.00', '2.00'), + '6.00': ('1.00', '3.00'), '6': ('1.00', '3.00'), + '8.00': ('2.00', '4.00'), '8': ('2.00', '4.00'), + '10.00': ('2.00', '5.00'), '10': ('2.00', '5.00'), + '20.00': ('5.00', '10.00'), '20': ('5.00', '10.00'), + '30.00': ('10.00', '15.00'), '30': ('10.00', '15.00'), + '60.00': ('15.00', '30.00'), '60': ('15.00', '30.00'), + '100.00': ('25.00', '50.00'), '100': ('25.00', '50.00'), + '200.00': ('50.00', '100.00'), '200': ('50.00', '100.00'), + '400.00': ('100.00', '200.00'), '400': ('100.00', '200.00'), + '1000.00': ('250.00', '500.00'),'1000': ('250.00', '500.00') } limits = { 'No Limit':'nl', 'Pot Limit':'pl', 'Limit':'fl', 'LIMIT':'fl' } From 969fb8c7aeb02207b2cdaabbfd4b2e554df2ca7f Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Mon, 16 Aug 2010 00:49:42 +0200 Subject: [PATCH 214/301] l10n: fixed plural form settings and fixed some Hungarian translations --- pyfpdb/locale/fpdb-hu_HU.po | 60 +++++++++++++++------------ pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo | Bin 42792 -> 48356 bytes 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index 2dfd9f7c..c39a5987 100644 --- a/pyfpdb/locale/fpdb-hu_HU.po +++ b/pyfpdb/locale/fpdb-hu_HU.po @@ -6,18 +6,18 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.904\n" "POT-Creation-Date: 2010-08-15 20:33+CEST\n" -"PO-Revision-Date: 2010-08-15 20:46+0200\n" +"PO-Revision-Date: 2010-08-16 00:47+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: UTF-8\n" "Generated-By: pygettext.py 1.5\n" -"Plural-Forms: k\n" +"Plural-Forms: nplurals=2; plural=n !=1;\n" #: Anonymise.py:47 msgid "Could not find file %s" -msgstr "%s fájl nem található" +msgstr "%s fájl nem találhatópd" #: Anonymise.py:53 msgid "Output being written to" @@ -151,15 +151,15 @@ msgstr "_Limitek" #: Filters.py:52 msgid "And:" -msgstr "És:" +msgstr "Max:" #: Filters.py:52 msgid "Between:" -msgstr "Ezek között:" +msgstr "Min:" #: Filters.py:52 msgid "Show Number of _Players" -msgstr "Mutasd a _játékosok számát" +msgstr "_Játékosok száma" #: Filters.py:53 msgid "Games:" @@ -187,7 +187,7 @@ msgstr "Csoportosítás:" #: Filters.py:55 msgid "Show Position Stats:" -msgstr "Pozíciók mutatása:" +msgstr "Pozíció" #: Filters.py:56 msgid "Date:" @@ -243,7 +243,7 @@ msgstr "self.groups[%s] beállítva erre: %s" #: Filters.py:571 msgid "Min # Hands:" -msgstr "Legalább ennyi leosztás:" +msgstr "Minimum ennyi leosztással:" #: Filters.py:637 msgid "INFO: No tourney types returned from database" @@ -673,11 +673,11 @@ msgstr "" #: GuiGraphViewer.py:211 GuiGraphViewer.py:230 msgid "Showdown: $%.2f" -msgstr "Mutatás: $%.2f" +msgstr "Mutatással: $%.2f" #: GuiGraphViewer.py:212 GuiGraphViewer.py:231 msgid "Non-showdown: $%.2f" -msgstr "Non-showdown: $%.2f" +msgstr "Mutatás nélkül: $%.2f" #: GuiGraphViewer.py:220 msgid "Profit graph for ring games" @@ -685,7 +685,7 @@ msgstr "Bevételgrafikon a készpénzes játékokról" #: GuiGraphViewer.py:340 msgid "Please choose the directory you wish to export to:" -msgstr "Választ ki az exportálás könyvtárát:" +msgstr "Válaszd ki az exportálás könyvtárát:" #: GuiGraphViewer.py:353 msgid "Closed, no graph exported" @@ -766,7 +766,7 @@ msgstr "Nem" #: GuiLogView.py:53 msgid "Log Messages" -msgstr "Nap_lóbejegyzések" +msgstr "Naplóbejegyzések" #: GuiPositionalStats.py:135 msgid "DEBUG: activesite set to %s" @@ -894,7 +894,7 @@ msgstr "Bármilyen nagyobb hiba _csak_oda_ kerül kiírásra." #: HUD_main.pyw:92 msgid "HUD_main: starting ...\n" -msgstr "HUD_main: indítás ..." +msgstr "HUD_main: indítás ...\n" #: HUD_main.pyw:105 HUD_run_me.py:62 msgid "Closing this window will exit from the HUD." @@ -922,7 +922,7 @@ msgstr "hud_dict[%s] nincs meg\n" #: HUD_main.pyw:267 msgid "will not send hand\n" -msgstr "leosztás nem lesz elküldve" +msgstr "leosztás nem lesz elküldve\n" #: HUD_main.pyw:301 msgid "HUD create: table name %s not found, skipping." @@ -1845,15 +1845,15 @@ msgid "" "tables in the database " msgstr "" "Kérlek erősítsd meg, hogy valóban (újra) létre akarod hozni a táblákat. Ha " -"már vannak táblák az adatbázisban," +"már vannak táblák az adatbázisban (" #: fpdb.pyw:545 msgid "" " they will be deleted.\n" "This may take a while." msgstr "" -" akkor azok törölve lesznek.\n" -"Ez eltarthat egy darabig." +"), akkor azok törölve lesznek.\n" +"Ja, és ez eltarthat egy darabig:)" #: fpdb.pyw:570 msgid "User cancelled recreating tables" @@ -1870,7 +1870,7 @@ msgstr " Saját gyorstár innentől: " #: fpdb.pyw:599 msgid " Villains' cache starts: " -msgstr " Ellenfelek gyorstár-e innentől: " +msgstr " Ellenfelek gyorstára innentől: " #: fpdb.pyw:612 msgid " Rebuilding HUD Cache ... " @@ -1909,8 +1909,8 @@ msgstr "A felhasználó megszakította az adatbázis indexeinek újraépítésé msgid "" "Unimplemented: Save Profile (try saving a HUD layout, that should do it)" msgstr "" -"Még nincs kész: Profil mentése (próbáld meg addig is ehelyett elmenteni a " -"HUD elrendezését)" +"Még nincs kész: Profil mentése (addig használd a HUD elrendezésének " +"mentését, az jó)" #: fpdb.pyw:756 msgid "Fatal Error - Config File Missing" @@ -2002,7 +2002,7 @@ msgstr "H" #: fpdb.pyw:834 msgid "_HUD Configurator" -msgstr "_HUD beállító" +msgstr "_HUD beállítása" #: fpdb.pyw:835 msgid "G" @@ -2184,13 +2184,17 @@ msgstr "" msgid "" "\n" "Global lock taken by" -msgstr "Globális zárolást végzett:" +msgstr "" +"\n" +"Globális zárolást végzett:" #: fpdb.pyw:972 msgid "" "\n" "Failed to get global lock, it is currently held by" -msgstr "Globális zárolás meghiúsult, jelenleg már zárolta:" +msgstr "" +"\n" +"Globális zárolás meghiúsult, jelenleg már zárolta:" #: fpdb.pyw:982 msgid "Quitting normally" @@ -2214,11 +2218,11 @@ msgstr "Email import" #: fpdb.pyw:1033 msgid "Ring Player Stats" -msgstr "Készpénzes játékos statisztikák" +msgstr "Készpénzes statisztikák" #: fpdb.pyw:1039 msgid "Tourney Player Stats" -msgstr "Versenyjátékos statisztikák" +msgstr "Versenystatisztikák" #: fpdb.pyw:1045 msgid "Tourney Viewer" @@ -2259,8 +2263,10 @@ msgid "" msgstr "" "Az fpdb fordítókat keres!\n" "Ha beszélsz egy olyan nyelvet, amit az fpdb még nem, és van legalább pár " -"perced, amit erre fordítanál, akkor vedd fel a kapcsolatot velünk a " -"következő emailcímen: steffen@schaumburger.info\n" +"perced,\n" +"amit erre fordítanál, akkor vedd fel a kapcsolatot velünk a következő " +"emailcímen:\n" +"steffen@schaumburger.info\n" "\n" "Üdvözöl az fpdb!\n" "Iratkozz fel az új kiadásokról való értesítésekre a https://lists." diff --git a/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo index 07bd06e6654306c6c441100c50bb7facad3a1a1b..469ce97516d606e4b4c46094fabbea688b987c55 100644 GIT binary patch delta 13290 zcmZwM34B!LxySL75FmtI_WiI22w~q6Vr0ia00F})FiB35A(NRfGXWBoaYbZ@fg(k* z0TdB|>Zm9#RY$CKt6GZ-y;?0Uh*pc@g135q|C~2U@4e^aGvD`p&zW=H^SsN1_TE<$ z&;F1YdGCs(T^7f836|9n-)w4G)rpq1sf$`It65*mYK+aXA9lgsI0Xk{2#4T7Y>jVY z8h(kbup?h;gM)Df=3qPAi=2;G4^z;yUP68GJa)ylRP=xhoQ|b95g$k0II+Lmk+#@? z`cVFJW73n(o$9Q4h*O zwa-VrVF(-JMpP#DV0-*M>bjRuZ+;fJrS%gw=J{6I0LyBE8K|CKjaOhEHbk#EUxB@- z-;B-i2=>4yQP+QHyl6}&eQNK3dZBa-;&>#9)(MR0g0mEw;deL%lLuMWG@OlkqXXCi zAHe2#3Y+3vsPBJ*O6?`ob#(_@)*Nhy+|pWxI=|m|)cELN@~;zd)9|YC9phQ!m&QxR zy39CzuNl_E4yX)vLuG6bD&<*t73N_b+-=V9#Z2mlhLHax3jd&i;jlh67ql7bzG-)4 zF<8S;*Nw!wn1z}v<4ipl_25~kjx5Gx^rJGh0(JeZsOz?)Uf|9Mh2|9QHJ(JJ{AFB* z@1iEn)M4)OD?;612Wss1Az8QLsJU?wyJN@U?kc(p$5YS8R6K-z@ii>L$d443P$(SX zrtB1IHou3h@mtg^ZamVhr=n7ujmpGav~dx3zz8z`ti7iFB^*cnbJT+ej&d`z09$DN z7gErTR-!Vo*0>F|Ecast-iO*J>r15bRMH|l{6 zvfNeC1~*ghhq~Wm*i!5N0tKzd`d7MRHWW2E@=!aO2lb}cV|(0$?eGvD;T4}j?U-fc zS*hO2$JO{3)FkZ01n7vpP^)DeYG`vXq8@roL%>|H4mDdh;}YDB4t|fi;i3s{YKw6! zbssWMt>Z{`t+S{MbeZVhCk?w%ACCQS9%`s=nMnTCfn79cOb*}`_y+dGk5EI?aFS(R zi&?128AVN|BiI{HV_p0Sm8qo3ZpxdXuJ3_;a5UnD5L9cq^T z#?|OnU`3q8?de z3L8)l*o_TwKkC89P;dGJ>PCsVZqJiZ*EL0buLEl6dSN3Rg}rbhl0>Tvm4Qbvh!?Sr z)_=(~cPxCUt#%n|wuUhkw_^u9iF%{cs2{8MQ2W7`*dLp+=#|MVWMi>%F%3P~8@HJD zM^Iz`BF@wL|1$;Vnbl{8`@nMSLwyfwLyDu`?61a8k)B&WqB{IDHp9eg+{xAgyHoFn z>hN^bSkFOyZxIf{d>pIwzmtMe{1z&uf5&4Ede1K1NNh_OsZ& zF%Pw|JdSKB);Fl{51#FAWW}f<-G^GX=P;t4r?IvMViq!gEI%rxCs8;46g8%~d2R>i zqqf{4Y=sfjknKXf`Gcq-JB`ip0xIQ6bKJ}}z$Vm(%pw1sD2$~+H(G*M;BwR#Z^IV2 z7nRE6*cwluZulzdy1$?v{1IwM8q9UCZ-kn(Em7CEM-4?6)THe-m;CF-gJ@`qqflGy z)z}ydQCn>gHAI_C`!3Y?4qzKRg6e1-)uFerC7wfN?kCj!8#1oyKnGNZxL}g|H_QXna{w^F!{T|dLJ%b~#?tJ%+vQQ72jM^9GqFyB5w3nma{CZQ5Y@|?= zV$>KON6m?sQ62j))X;o}y0NvuedA`R4J8$OVGgdsWmt({pgK^z(Ea;h8Fr?=1NqN- zfDh(x#Al)~M5S&&YH}XN0KSF2and4pqX{7YS&#Ce`?Xo@ z-aid{P#=n#EA!CS`d>pqW4jNPi9^^0A4lEb3_AD~>VbJn+!Q{Khp4}fow3s6cKmkK zIzNOVJc1gkF8OXIuf}227h}!u|1Jtj^?j(6oj`Ty8Pp_u5jCmaK+Wc}ru{S2esKZY z<4>s7(XPN9^MR=AuSC7rcvGK?%J3qL=z=l|deabg!}X{eA3=@n2~>yPLuKX@yawwR zx|x`V8lpn%fnFSdTTn0d6zY2~;Yd7>%2*Fa<4<9n8;^-SGr!ww}RE{1}t4 zTaj5cs5c*q>hN^zhzqbCu0&;Y2kN>zP;=!3Dx>cgMcmZP4tj??JucQPk>r8QbEAs15E%)7~WFb;qg)>Vbn%W0-?e z(S!QpF;oZtXzCvrFBw}bbyJ*%^|)>-Y8lVMepra=*ftC&@ULOi{UYsr?yu1hOrya; zZ74fXZ~h`GbxCFJk4_iVSk6LqEQCvN6Y7RvpdM7;@6MeLsQZjXb!0VWDvF%vt`o`+2^hH2jQRInimEdto-}!uhB%TWRVWQIqqqslS3+HRo|0HVK-^jD4xEM$Lsos0=)h zy6*){<@r{#kh`OeLM_8$?1igQljnf(G2@?6*L{SVgqM(eSt()nw_y#op#C80y615* zo#HQMjGS})D8EbCf7bxijQJjd=hp3v}r$s>fm`({{hv}29@sj zTcIXh4^#)UF^V%#bLeb@f+j_Bl{?l$QS}_0g3B=*pT$v_xXN7}qj4hjGE;vD2UGtD z*;}l(t1atxya6?-+plpmHyYbhpO5Jnsi4q-!a>w5eH!cI``8md!8X`oC-ficuXaM~&Gg z)SK)}P_d$(O=X;?#HWK-nuzZ+>Z=f>M>_+#6#^HGCUd++@KSn_*{{dTL&ztBi zj>fUL5;f+JV@rJ6_*d*t{WD|~t+qG2L$(9eq4%%{euV?E)h+H^nuuMg=V5D}Z>^-D zFKkr8^zP?PRy?2NCXX7?AS{ynOrZ8o_-T4|{Bxv137 zMIU-GvW&uM3R>rrH@nWndDIu8GVlma#viaDj@{zka2jgt=V4#G0UP1{*aRQL5%>bC zLmF_|3N<8sx03(sC|pN_Ce7oRif^LE^53Wj4%+6XE(wYUTW2nkdFw{h4c4P(an!W$#boN$I05g&Jp2k5 z<0KZhGH?j5z=u#T_D5`re>Z-G*HE`2JKa>x#O~BRI0J1Gv)0?#0+;S`AFvkH z(T%7FY)5tMK5ULLR0mEO-$o6|dF0vFB~(WvTYlrFY%i)|KQ_bT*b1LUEyL5s3pkv5 zlih9#C!pS>8g=8Zu@2sPySr*OqUzf)4R_*DdZBTU4L#_zEu z^&e3~)9enn=R;AG(ueJnq(_clWqg*x+u287f?IjhsOE`-M^61 zuoLamO}*?O@16$(**dAZNO#BBXVwbz!G46(Xa2jeA3^Vmi)IKmCH8e9( znV5%qfgoxwRh#w`cawijzSn3_&(EM%!9~<0Nxa8>lh)XqdM0X;6`(p$hFWIJP5m~k zOMM5bBe$dGz&+R%kD>1K8fwVDk5JH!x*u}?j84NVsc**7_%bR(4eoV2)CzUuKE@HI zeFCZ@^H4A1L#28h_P~RvjQ$BVK}G{*bP%TF&=wi8Lq~iI2W7W=XQ80 z+SEhXN9S=BK84FLc=Bf8NH3jJ|DF2?n!8-9xF`PZn)_%mLOqaSuVx(;>Yo!AebLru1?um!ey#LZA2 zoJ@TR4#Sx~-Yp{Vsc2Q{0^QIm5Es)Hv`8`iU^vHt+| z;O>vQV?F{~QJ;xzumm-!ug6?G^eFkaDO{u>gsmTQQ?vm`P~U^<`Rk|~v_I)~U@&Uz z7Z}%|I(Qdq2%f~I_>QTcLp`|e z|0}3yjNigAK8525O{B|@Khd`EvWCy8|DJgBvbIXX(ImGXXQsO8vpKypKgpSoN)~$FaZB2<~l=W+> z<5uc>iFYU`;#EXALHXy{Ph}9HqZscoW$gjA$64BZwH4zV=DL?^uSfley?@ztpU~zf zMw@H?Zq8*%J^w?3Wnc3z6%QA^LY$$#8ygYJ2px|R>xi3)dx&19eIsT4UL+EW2^}AC zj-Qp9V-BCKsQ(2gn(w?y`8Pz(`xnp{BuZ&GiP!5Qg*mb**D>YKaT@jG#1LYQY0sp5 zFL5`agB`u**ve-g)24=VmzDc!{a;JtTROvW(41s9w&oM*)T^>TGpraE$M!aq6YWq87{oweCGnCt? zk)ti;*2K+3+-L z;}dSt`i$~blwZY%i9b`m63dATgbw{ZQG47++w(*RB0${8iO3=fITWT4NkjpmVB9-fO=pQ0c%8T$CVkR+=&@qdcO+3l@yNIF0HN;J{y-n!Ir~Vbz#S)GG9tt`- z5%*Ibhm(j=gpO@4HJ?+>wb|6_P+m#wAeK_UXwIE8*WXCpL-}P>ujL4Z`ow+2DR=%e z*}3@l=8A9eLF)QT=LD`d?VIpJ>YIq;l&2B{h-ZlZCf=oeFfpC-0{ksDAZm}D6tZad z;$r++Cp2pxBJL!*(fBl8jjeGrv4Z%H_!qI7b{+Nc80rs*F>2uWFWP=Xlu^#BY2odt z52gGLeuQu0A-qjNxf~*E4B(a`2 zVA@+!&ZPXQsXvQ9n(|5PLd@3q|APzPCmtd?6Ymi^j^MLILn281CVUU;5^aggj~6(1 zyJJ$p2|d3u(B)G~Pn}3d)19ziGRR@(aXSVmNL4 zP{$$4e;_&%?c64-E9Deox2Z3s93rlxUWgwPn+YGWO5;D#TqwS!@lRMp45R#t8ae8@ z)cm_WMtM2s{(voTJMkLj^SF=D@eMJM^6NFV|NkSG^Z7dU1ce4fKg#zKHc@-LNc-H{ zit&$lJMDiXbo`s>Mf9WIo9Isbj(PVs37Pq58IRieqW_s6bRZY zy#B(#icm^4)Mdytf50vdm)eEipi>YI1iem(YbyMOw%2c01}cJfxhGs=_oo^Pdwjl{ zi@AqW=ndQ9630DV=J8i>vN9!luuD#+?H&aIzn^)-%*C#Tpl=@D_2ZnhH&d;P`s za!=6f@fSFDQH8%icZ$BM86X$j+;XD&X=~iPSeTPj<<6?q-Rb|9%Ek*_%S6h6po$G*ifgXo$G`` zo?<6tO$`*=d0uCQ6O1jpa&|&=UG|mHedC5DPa81Cn&v5UVlQM@){nNBltydo=(%y- zV`C;2B-AaUPbIPH$zLYKZp&GcF#gxuSbA4`M$jp8f+T{08t?V^0>w4$%0Zzg?8*0p zoZ9@-q~jhf+3w`Y}l%gebKS%8NZ*R}Y%?b*YVZg245fjBV(jZVFC;|E=OqnxmyTT+a6)=XXQek3 z&bC*SRAyTtZ`iT3tWY2r9vATa@~r67^Y+&tZVw!oF?2-KJO4sEf4Q$B=<$WJ24~uC zG0Sgv%^H*$UAQ2YkP>aWaD75bZ1=)G34JG2*&aJoRa&!x3qqdK+NB%t+a;b*l|NqX zEAfQmv6Sdj*Nu%#bINSiXl)~xd+bTGr`V%Hv1Fp+ffy{ljUjr{YSRJNex9e22RnuBvi;|8awGij^{>GF(D`2B$|GELt$x ztn*S&c|j=Pi^mG%)ggQOl*`sXo&5D|Ak4E0nE_sZLC7xg=6m8#R5^Yp9P=!?n9$6_ zZ1FSkPHp!wYJJk8&XO+Oay)5v{4fcwvK^m>nH1O#-7WM4J^9|^j6ShDm%LxMPOfKV zG*Wb+POjG<8&EtZDO>pod6_ivCwyVM)ZJuwN58jrr}ZgpV>7zJSJiBc&r_~DIKDEc$_a;~mwXqKr#kVYL6RK%XIVI@k@lvEr?#`I zJf*RP!HfhZ)b7w6Ce)Xq84VzN&HD+Brg%eD0ben%9*@O3Md~N@oaQN~obN0pk5#;a zQ_3EtCOeXn8=52}+NsgN#@?}J zo3wRozxjI~&5)jm*NJG$e(*tF>1659XY*RoSVF?!GL{`F?ZkCs=2VsGpomoSQ5##{W$($sR& zfH*#OzCuUeWj;8ib{SK;ro!ZBJuYPwX6;E#N=>cmQ?n^M%TGOE*NmZA7-ddzx;@2P z!lERB>Cstt9_*Uy6x*fr%k~ud1A5fb+I+BgGbO{(yGmL|8|~X&r#j?`9o)Anv9Y#j zyCi;;X~rb&dTqPti0aRxPu0%zj z>TyE64cD>(vD@%0hhJDLx@1A?=w17BQu6tITIy6SchaMu?(dmds)=9eDXm#c8vWFY z;!2O-Qwf@T$O$O` delta 8263 zcmYM&30#&{+Q;$pfTDtef*UIOAmR${HK~);ypvO7O{VXwnJre6@9*!q-_P5pkKc37y`1Y@=Q=m&#hYQz zy&o3(EVfRS;lIE6jA?`KMyvP#{}m+|(}->{cEc6e3HM`9`~dr)X=_Y#=!+?siOp~s zw!lp|3HM<<{%Egb<7lQ0tJ zc>P6KpZ+~q4_BeyQ;7;}3pO<&BBIfffwylD7;_Fa(IwP)M50|mJ5(n6p;kH?Tj6Zf zefObOwgpr10P6maQAzy@73lXEi(&1JiDG`!jD~JV#E#e#o8S!WfCZ=rHhETizUp}b zwW3e446mUwxgg0tw*?#1e-<UsAL_n?I0KKP zwkjdnUeEH(_RRAv^{nt*>$xSF{OiR}dIS4B4|*QP2(F(%W$1m3!hfJrehG(R7-_G(Pukyohz_UqThjRj+>&_2OHoK%zJTDy~+j zOeLZ2?}NH;Flu3AQ4>w|T!_l}GF*z4AsQ;0pRgOocD64Vf@If>!(Ld5%x$WX?K3Bl zIx<&q6h?P3hNhWcO8#Ab)U5YB&^pEDfddE!4`-Vr%>ad*Juz$7G_T zX)>@rE=AQs1?ss?sFiN>+=utje-qnbcPdiHHVZXhF_O8EsiZNHfyYsM^%W|`mr<$u z8MSxyQ`ukahswwb`Tr8JW8_2G%b2<(Z?u^%e1EU!Nsbv=j;umb1f8Vul|vl*R=Bj{&iUwjG& z;)fX0${Vsgy(k{rV-m7$CIe%z3>CnGNRrGJ)OX=Uf#i;ZBir2q_3ZyrKsW=mr zflAbKn^6m_^2T?e-v3-W`KN7O<&PnF4ath>G03JkAC-X;jK)=7eKyK-I$c z*b>cPW5z=~YT||X5-veyvK^Dv!_*KBMVN*vj&$$B9Ml8>RHS97iB_Rjb_(^}8B{HN zjJodvDv-;lE&2iVo(4m0^*6^c^amrCOsJAZIE~||FX1U{gQu}GUc%NGJIqGh9UIfX z1KZ)9sFdfUGF64z(!H31hfsU}6>2BbQ6H4nl&)5i z>NyM*@DvQg8K{6}p=ziQlkg!_iua>3^fKzX*HOj#7LL&Qzd}PP?J?4(us;%+8HGA7 zPorw$EcV8zQT8{UAxOEHGR(u5kON@iM&I6kGamK)2INGVBd9I>0h!VaXVs0F->jj* zx4~3lCccMCY3!YL?}nlFb^@xnvauPKp|)y0CgEPxR-Hm+?n|tLKcX`FE2@Y)QUD2< zh9SLZ3Js;W0QKNX)Lw1E=C~X6qC?*GcTf}l6~pib*25pMF5W`jUw5oceI%+Vo1pG% zgQ}GdW66Ij8hshiv6zVQI0x(Fect#3s0TNp_V{sBfG?o}K88*49IDzcp(gkNBQS!z zE1*WG>#?ZucH_vus<cZRwA~*|-4j z!lS5+#bw#dv_|cHPgLMTQ5gtLq>)NvI+o%Z?1VRvZ8U8r8Z#FIs1(18dhsXN0Y698 zLc}B+P*>E}WujI*6_w#dsOQ&X0C!@k&VTr1o2nr0=fWzC#*Qo_9Mdp}15g=y5!0|1 z^}?H|3`S3}nQ4s*AQ=^CcT|nsfhx{1-gp*9>HJTpp(4yhRr~$e2)Cgg*o|@coYy~$ z3h6Pd^wO(8}yzxe|VRp&`mO8YqVB8m z#$Q2g!TVl6^f?Wk-&@{5(tO(=j><>?Rb)?NS3HSr@jFziV{>c(L$EXb*{JWyT5O6g zDl;chwQ$w5E@`13GOcOo#$FhM8CZtXu`ixNt?W0{eX$GpeGoh05?qI>p`TE-6Om^> ztqG{-x}(NNpfZ?^%D@6FV19Eijo}RZ6Loyr^Ldh~p8Y*XdS-cMd**qTdRBO@_1uEm z(kD@Y?nWKMS1^J3&0!iN@KdaV2@CBC+T$4deNf{oF%4Iv0(=8?T#sQGp2G+{@A(<( zxi3+*^$jY+H&MmhAfNo}LVFsz&N4c7T8lVQ~B@7z*Yt_uol&iTx>rm>Buvt1b5(hROCwv?O#M5MxCBF zQAK$U>*05(@5wJX5aWvMan8a{^dH3fc%X><>xC`@dhj%ArRPvD_!n-*U$7TGQf&PL zYT~P?Er=?yfhJ&G`jx2nK8m`&7yIBF$S#}9I2b2~O6^KFV=@EBa1?%x<1m#H?}p1z zRlEn&@oiMi{D|7)flKY_80t9{QyDM7<+vR)u?a`31J1#o7xE06aKd}*}GMly{9V2m;*AJkM?;7;u@9g!Ed5cD4296_H zHXk9unvoUuyuRjn1hW}Gg<5&i3VS*hVif(CQ4_w6+T-`IEB+5Q#Q2qVYdfMo`Du9j z-~WnlHz*41&4umA=i2-URRf*xw_mnls68w|O}G=4xf*PRhcE%pVSl`i%1F0W_E-); z1vm`v#Z1)CA9G9%Y)hvXR-nFoFQAI)bJTBT0`W;b$55R6#9KonVgT>x+>H{PNBB;+*(qYO5+LxT4}3FJ8>>*PnV%;!ts0$wep*& zA0~~~*?;9~fw}ZIqVB(jnlNd-y?=&hAu8h`48zU;*VxK{jz<+H;Q>_S@1u$>{9#)} zF`mtF6yph)fw@=@Yfzaxi0qmk8|`yts69V~`r&j2=VJX$_8Xs%T5&b11`c9dJc@qiHy3DVrTWfx zhcryZJZyqnu|DoW-S;BK;}_TgfAvh zv={v-?FKjyHQ^|%ixa&56l_F)Hb&rL)XJBl0^fj2{ULAs1B|5qH7elmupu_uYBSIZ zJ21Z)K%*1RMZKUB6~I#%gL}RHYp8(UK?U+IYR}JLB7TZ`&#$OG?!Z}_j}vhSzJi1B zDn?<-Hu4`wqdyJ3aJ=U%)c7Kd#g(WPY(}NF29?4Ss8ezU6==OGdw&a5KwYsTjz>PG zCWtff8ft-KA1D8Q8h1Tzf5{9YpKG%dmty>OyCsjHilz#q@m17>wWyVx#nE^HdDJBD zu*G;7bu6zVbDC+tvo&%V^?dXb~4acE#jjbNmt0F*@|LP4zg`g}JB|-GeH!)n0!+Hm1J~ zwdZ?LTlOL<(6_NE{sr6M7pN_~g(~W}T{gf3RA4FC8bkePXfLK<3!IHTupG6bJ(z|r z>P43@6~DuInD~r+;c8UikK!QQfn)J+sQ0z2wjZ2{sM=Y91Q;^U&`4z9RUCsKpM>_D7M8*sFl}$)^1%JY(~EyYJn4Q0tV2p^Y79KGH?zR zz?ePu#>Y@Eu0aKO#`6Yh;^up83j3mpX_D8UkE;5Wn2XP1GDhsP<0+{A6sg8?8cDbd zwYRl66#tCc%c%Wsbl0dbCq1Q?b2w#;J0f*srVY%H65OU3^YW$uMVLX`UOsW0@o9CZ3Dd$!T&ia?>i zu=e$e+Skj=-A|ScuhTL)=wDb{y|~C<5-9eU=M>de7x9i-*D1fh!fCo{opWtfnG+1% zaF;v~tmA&armxTEce+;2@cG>bDbhOWx;#BYI z>#o_gCd^&8yFr-q)Sdy(JA3LoH}}N2U+nSw+D^EqJSUjv&+*S&Tw7gUTT@sXEG_g0 zD{8BY={wE#&1hTbFXkpqnlsSM8(&aNo(qj0ydB8ueFxmW`_KBE_BHL@;+jce&bND7 zIDdNH?|%FI2;Yz;WwmZDS;+Gj2lD+nd3go-{(_)CuqaTpJWx({i;Bs8prn8p#!MSU zzbsIa7pSPM3D(w>yG1XC)p2$l-0jPBdaZ5hEdBj Date: Mon, 16 Aug 2010 01:01:37 +0200 Subject: [PATCH 215/301] update compiled hungarian file --- pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo | Bin 48356 -> 45664 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo index 469ce97516d606e4b4c46094fabbea688b987c55..273fe9abd185d8eea3b3e189666c0dae4c9b03ca 100644 GIT binary patch delta 8131 zcmYkXdFX-=A~-m|m`Y&VAnJJbHk_Vc>P5GE7#y^&Rn zXK0(%{Llo4u?K#K9k5YV`^DL)g{;N^`~aWFB8GhPWo``MooMUwU8_5kM~fS`Vj-LREm8r1eLLhsClY6 z8)69an~pT{upg>uKF3tNfto0kKxZF=buj}uEt7}Tp;?c*MIT^0yoMyfByjKyVY=cd zoQ64g9hI@xRHmnD?oUJac_ONc7rS@|>cQivOq|Dfyo{CbSFDZEGhE{)DXEB-M5Izc0NF=@^5JaT{ufS5WVTpHV3fu4juZ9ZL~U#$bE} zHQ@r(PFLYFd>b`hgLFI2I3)XK9_q*nJsN>DicvegirVRKsH5<&Z)+j}-(!m{P+z>u zsM=9b6Jt7I4^*n(M7^-Kp>E3w)X^597I@Xg-@DH}pQg5212BgNA~6>yqXxW;O6^T- zgLjZMm{jf*O_PJlzy?&+7a(tAa{#GBa{+Z!&o#FTh(H}l9G0d2Om`a9=@^1!*(}7q zcnnpXVJ&PiB_Zz?lZ7gx8K_Ln!AQ(UJ--FHf##_D{03?R4^ZFx5!>TaY{vX1qosXd zChCJZSRIQ{MRFgNiI@yKKmux~HBkNOsD(5~HfuT}UorEs5q^R?ieFKg@M&d>v@C{s zhV!JM6xPMg*b-F}i&53S8oS~i)WpBwUi58kQ+g0}dp<(#@HAGzbFTj(YW%0pGMuBv zk3>%^kENlBQ&2maf*NQxYUT4$&n-oLaUF7YW*chYL#W&FF?Phes0`GjLMLJ#mcm=8 zqqu`U_(NOr|2&O<(~*oJ?d-K{h}uyWhGTz>!!f8MS&B;KG1S?g#+rB)RU?6%qx$Qi zFLuBeu?u#fJnm8A=@B*xZ$FK`}_h=}k4T&`HaMYQe#vr_iD#9D6KP-Ml9a%(I zyYpIDi8u?D!EvaR&%qkF0QE}Vhn4X|)Hq)wnfA;h8v0`CZuZQg(T_M4_2x=P4cHm= zTn|*rhoFvR0qXfhSQ?k3o?nYPiVYZu+fdK#LDkM7jM4o+MI(fc>sS#Vpg;O|cW*4z z7voT8o`fo{4Ag>pV>!&lV4Q)PU?FM&>re~YRQP2J6V!xg)!>A)nMK7F2M;coBi>R|1fnhic zwc~u$3uOl;ViC^7A8&n)4GGIMM6tz5u(e2O~S7=FP-VnSc? zA4j7R9px|^b8#$c!eUek+w|j(V>i^!enKt0T(-UE2{?&333XH(FbYp$1H6J7KjHo^W$a0cpjtU;amZq)OCLGA3Mi_fDLdfCNy zQ41--s_6Oh_R+vesIyH+EvP>#GsBSMH1klIxPYqW>!=jp#@ZOz-|nm_>U){k7)PQq zwgt726Q~TG#iqLdPiW|j(g)ZHvauQQP<(c6P{p|&W3Ujl;4`QyzJwL=F)F2@RGglx zfU1>rR7MA&GV?O(`MFq0_kRP8XgZEy6Fi6U7%-6cKBl0Ga~o=>2e2OAKn)m01!{*i zP-or|E8rk3i_={H64X&`LCv=p%QL?zqQOhhTt$5`Ww2dgTU0#IIo0_F#?fDZx+R}u zIG)2)ypCE}a1MXQJ;!EHJ6)KYQycH^}~@N%w^PqTI7=dIyADma~fz7Y5^OaN3arc zF{*eTpmzK_swR9#*kX-9oqde68fu(cSQ$H^#vke8nOKGR%@Lk`@VNWnBI?W@yV!4} zEzaurY#^+vfv_zu!DrQsDa21O786F<475RgZyY9LKI(;b2z3o_dNdMgJV6yt+-Pe9 zXBX6iLr_IH6({0rSRbFFc2?_8_PI95@tbU%fJab8mpsP4FB+n1r5oyd-XQnEL=2!~ zF)9PAkg?4!Y>nY#?e)xZ4s?!kPIAt6E_SYVZg#%wJY@CENg8FC;0$V|#TbOwQK`F+ zZ7}d<`#$J~+Cdg}#9^*~H|kZp9|Q3_)V+U%KIl8n&g16{MPJ?jC>o(W5Q9o_4OF!^ zLA`*oTz@u(5RY{66x2c&U?{FY72Oup0*~V=`~nj&XS}V6`KY5VRLuOQh(;HDgc;b9 zgVQydjdk!ScEGzXu9Ih9KtqtSF{^Ps{*J2ZwG@alcNDdti&zUEqHa_CBwM7-(etBY z0FCN64E1JOj7@PXrsLPx2g4`ZS86W$6E8z$YAtGp#I4vBOHf7Ee6BsS&Zz1h?c&K;j(8Qu zV*%>()2P&+M=p@Ljd_^$s=el)I=!}}QG^#i& zV|z@*emE8f<0q&I5*FJxW*yYd+M+h_l5;HfBA$i19cM8CuVN(3u-}rOYH<9=ue!85m+0`Vryp~)I=k36;4Hs6PRx^7LAHy@!8-1sWkLPYL1mK z%Q+4k5-&le^dr}*3MGY238?A&b))VRjHhVYG@p$ z;QN@0-*_}MK+tObrpGMoiGRaB7`w)1W)gNIK8{^5V6FXLUsOgmVgo#c{26J!$0pc$ z9lu9#K5FNs*4x^MME#-SRizP6qczsYp;!yop^l~qBk(b*=*qllp9{l^#O<&e4sy=J zs>B7TYkS7UcTt%Pe#>UM0+wfflSU(k587cf9E>`W4X88TgqpYjbqn^p_y~p&pF|za zS*(B;P#buFQCN9{?N3J)UstS%*%++*pGPB-j@hW4ti&Wdf?B{gs0G}`viQiwr8n9I zg`yTx4*jqyR>2h1I9*X^J{dL6X3W6?Y^nPn@Mo?bc0{FU0ct@jPy_FD9(4U5p%!uh zwUawo8GSa{4a8#%aeLI6=b)aS;QHsG7Ptw$WEv-FB;sA1h2fixc>$N9R{Sl-V+q#4 z@GbWL|C?eS@nKY^lDFEkt%sq+nWzQyLmklw)CONh-G=E~$v=f^PSBz1?YGVTlE}w3 z#P_f&&e?7U+K!!x4`OTl0~=zi9kxiPp?1C)^#a;~Gb}+JRce9l&p_?4A8N-#T|63f1XIut7om=J zxkp3SYZGdvh4?(4LJfQamD>NHQfl6@3k<_bgfZxk4N_9{ohVQXIzN7zh9!N`93CN;2yicbc`i#i8}j%sEIeD&io)o;aOBBZeb$+ zhTSk>uPx#{oJ715Lv{bl?6ZHlM4?vR4K=`8)B^URc6Q166t%!gh4u)VU>I><7w4iT yo{K}V0IOrre%oIc6~7>rqS-VOa0hCl&rwBk4>j;3%s`(5cH%Y%4u+;&T=_o-ubdF7PV2@3o}7 zXRVhp3&Ks|7FgSu0J0#ggW(vBov=P;U_;!174dtF#hX|GEAydXjKgl2f|YPJYX5H3 zrH-LKcfF4Bm}(>;RJuS@?26A}JKTr*pjTbnkr4E!Zi$sK1*_t4tb%i}6mGy0xWm;S zp&#{^=!>UO=Q&r`V=quZLwOn=U{Z6yHM~cMNss z1;{DQKd9qlA2+5nHbr%`qlcs{Ng9^Kk?w$r7)3oBgD@8(aX;$#3(h-EKZZ~3VW<(S zhZC?3GKeP6?JvMU>buwpJ$?<0=|b`(s)y^b9PYp%{2a^R8Po+XqlWeY>NuY`V|rmF z{k2&ia3Y<5c51c-%IGr#Mi(?pS2&KydOUy<1`R|@wt|H1M0PHP|!gGoRg*aUqr8MRniyE+wh;hw0D3`8xiF{qJx z0d@SVsNS?$`7VQcE&P#3PBXh)_WmZKhuI?rU(NX$s&`B$=p20fSSa3XF-y(l7@+UL6^ zY9t0?2tJ1z>e<*8vrto3fSQu4sKtB_HP^*i0P0u*Y6PdC9?RS$_xzuwfzdHHkT&dKZl^5XL!!lz zhI*3?M&0R548;Xl33D))TRez*W2SREx}(MX=!oB-7GV_@KxK?VJuR(KQ=5Y7;9yse zb^ASYNVHlP;vigs&*DAQ2?w;bLpvN>QIAH}so9Qr`KzKWQo>;6--3aSoAJkO6 zg6hC>)Re5pvMeEUnxrNT7g2Llvb`}+VKQoQE<-J*T#Uwi^ud2nBjw$}4tXHz_(-gU z%~1P?p*K!IeeMOM&t^I%aeZ^h9q_N);mvreLn&An$Dto)qfU^6{4e zHKdK%>5FYq9ZW^7k)E!7B9@|_?wp4@{|fY!Bw0tI3vWZ+>3!6Ryi#q?{ZPl1L47a` znL87Or7#hrupKgpCLJ{bAK(PMgT-(}7dsWBQE%GuT^N6@*5_%6!KE06dr^0kkNURy z5%oT}iFL6I550ym8TDdG#aJAS(YVO9e}J0%qu2+(LYA4S)y-aSTsOwQ77eRt(2M90 z>dwA%UP1NzA*#p!Vjy~Tw~MVD)}XF~>Tp-oT=znKZU8pGA*iP(3pK)LP$T-YheSR5 z4fR;H>tPqoRE(qEg?v$&OQ^*a+LPBPrlDRe`;d2v`4jc|xF_w4Y&dF4vr!kmit2bQ zk5+w5MwXB9j3LpG?nRyW3TjSM(`*m>qF%YfumXBeQ??v+=Q~kTmXASr8#UzKz3j;P zV`=J!SOr_5&NB$haym1KL?3(&%i(I&P;SSHn1?#yNz`%Qpe}q7H6{MN?eV2hi?%%K z_)yeTgrgR16zaSUunZ<*sGk3hBmp!GMZIb#pyp_SYhRA~;Cc+kTvSI7p*nO1%i~ql z$o+%5KuP9R9SB2ps5)wYv}=#Ya6SJ?BpRB2SQDqX1Kz@T>W!#HdLA32PhWdS$*2o; zK)n}wqi$q~YafTY^O>%mkA)+Qn!@eq(V{p`qMrQ+H8cH@)?e7QUu_|>Y^3Uwx2kY0A?r%qOFlxj`_GkRHIA+kG3ob+r)f&{$twSx& zcX2G9!Dwthz`kh4BLB>X{Ll%52ign7VkC7uYOVCa2%L_Z+HBNF!o!$DeG04Ml)-jYuS7lPIhcXDsHqAcVn?zgCQuJVoqsuMq&K5REYCxt z9vwt2vZJU)bsDvr3tam()C=P_hT=b{r=!v{cFyagj&F{-vo@~ojT+$ru1-gFBm=9X zXD*3OoQs;}uDH@8AI1(SnMW{Rb81=bh*aWYmMl6zHRYzK* zMyLli)$>1%qy`OnsMUHNlkgIHWA$O~u|eH=JgUQ8u`>3@kacSY@M!7t2gfr0`ZhXGgHBXxob5n_GYP|JPs7qU z0d>c-uoTWkKU|LfnC;wzx{;k&1y7*Pf8EvpVm0b2;~9S)*kZgrurF%PCcAn*YH_~n z>JzBP<~p{<(i7Zj#@f`=P-`IvH3ElG9k`7#7?@#SXo;xDaJYvgiewsU@vL|5aejq5 z@FHpvK0wZ8N<44B8>VA9>Yb?L4&y*PkKCk5V%!683+jEb7X$GW>T{k8ZpUA!Aq<#g zM<5tkZ>Barfmv7r^PRsqe{Wj#`#e_^VW+l!-t?JO}cI292D0N?~hZ8XjH=q{j0rdEi z{6ta{FJmwU%&>pk)x?I>gYZer!f3pTdhCMeeF%o4&eISzlKQJ!=Se}0#1LGJ8Q1`e z&9o-WWc+oa;WVgc<4|+90Ci{C=!3qq?1chQ`=d}DYl3`Dn9-Pwr%@vl_>#S$*4T!6 zB&Ogt)D+yuidgeydXz-c>}9*iCZpzjAC|`h&hM};^)+M~O~`CJWtpfB{fLox3+rQr zSL|A9ht;UlP#2txI)1UM*Lp~r`|ukK>H>G?@vAr1oNvDqGEj@|09M75sMUSL)%Q>x z4PIcsv|>^FQ&B_T8%N_v9FO^^$GpQrtEUG^9~z#yS!24JdTP?CD?1Gy6K3E%P zVJX~#rEw27#v`Z>X~Ja%)Rff5{@5S2X7*tW>(6{kqPhGVb-@Np?9e5nR&Od+!4cR5 z=U@PSf_k1$pziovx)OK(us{RBUU|6PobEcw?p8uCfbb`64RlKZl2Y-m5 zAN5*ni<>bGZ{a{}&%><|$icGsKI+cCz%ux=^A>ieHd%J0dSDI8!PuVbn^#EGffGn4 z&G%RiM=iG(n1L)2Gaq$cHpD?@?279l5r7fa>U?*X@X{M%C-E@b~}i zBo$~lfO-t`owuijLj|Z_K{)M{H+NBcUzdhd8rtJjR7Vb>=Kd_k;h)avH|z-XMXlltoQTtL2>yXOK5ezV;A^On-0wVv znwpE~g?Cmn{z~rAP#zzm<|gn>+w*wTq8y1@Y!jW+unqOgs8{n5)Y>Vt#@;|M@-8xU zQBT!&)Ec^twXsRIeGxt5A<+pIam!JCvgV)t+RLjDr#-4z^drkND@KvIclyhVLc36Z(m3$s6{pzwdm%dj$4M6 z@CfS7cfskq!TyF6i&bdv>gsgVNG?H*^qW{w&;JgRP#TV468?%_82*l(8!ARVI8qqINtGxhq{GYDf_g&k;>gb7KM;nqTOvh=M zg}pIov+eOHjG)fITH23O@nam1O>^x?Z9&cL2dG7M4Ap^iSRAimN&Fq#;@`Q9KkpdR zdW&7X=deF@;8uR8$1zwPy|>vDMPmweV|)T%LcO3qLoL#Ws5=kXZeKt#s17}adJ0D2 zF1(7Ram{;-{{fOM@7X&`-(eTY3iPIZ9cE$P zmt1`V%TnJ*Uo1s0G_~bDBtazAQ9X^v%GeRh;V|^a7g0T)jU{jyhG91P;a&{JL-;tJ zM;%}CeLJ$DsPlBgy4V*7qGv9NPIv{?^FL6F@n7tS&349urNXIgUp?zr9eac^qnSE<$xM5B0|S6gBt1 zpe|hFLp$ey4u48{?tMLiQ!F$W{?4rXA*JsKhAe;!F=8djltehPJh(7m<;aj3cP z=bVn};9ICE*pFrKtgEl0F6^_{T(^ov6nv787bp5Pdd`}`21AnD8cwwwWY-h*;W|5O0!yg_Q`N$inS2a&5m7n%AQ37ZNSB|FZu!>S=g^TvL1o zpU00MWBglFXdykieM#HXk2L&7{T}h{BW+WtwIyOxVjX!aq8s@fw{M~jaNB*aE$gygw;o8NY?0cN3`N%PWg#IT?+d6FE^5L5Qjjqr;plB#mSb?R8@r1TL#2jKav5|;!?eod?ec?q6B(z;*AKxp5TQ7cA zp#BEixzC&=f4y)ozs%4!fq0I3FM4L`AcfmnkQa0LZ`g%;JJFDs?%I>cHxcg;+IXcG zZj1R@%eATD>LYn=@~3D!qaAD;>^_g-b!_?)^=Md&!-+4*d)fo2>=r>C?Q*T!o76A5 zTI`~}L3~GqQh$g`F$iapU^gy11e)WYU_$0+0o+S3O|1Bb(=uW&$+xLXFA=J0f2S*UA2yIn}E#$3r{q_`zYGqqu zDg4>l9o&Md82Mx(lNd#P$L+i7j(>@IF!^y;7m-WiOKc`Sca4v6?0YW%OZUH%2K}a! zhjZPI1$cpa0kNIDGx0cakoX^Qj`ldBD|tVB1O17jEsG?X_K`Rc|8+aw$2CNC+74hx zJ^vL+77{NIcZuJLX|!we#cf!VctQ!P1GRX Prk;om&8~Uj`I-L*MT%Tb From 2a69e927d224274ed7d6421fdaceb5cd0d14574d Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 01:41:25 +0200 Subject: [PATCH 216/301] add more missing imports and one _() --- pyfpdb/Filters.py | 11 +++++++++++ pyfpdb/GuiGraphViewer.py | 12 ++++++++++++ pyfpdb/GuiImapFetcher.py | 12 ++++++++++++ pyfpdb/GuiPositionalStats.py | 12 ++++++++++++ pyfpdb/GuiSessionViewer.py | 12 ++++++++++++ pyfpdb/GuiTourneyPlayerStats.py | 12 ++++++++++++ pyfpdb/GuiTourneyViewer.py | 12 ++++++++++++ pyfpdb/TourneyFilters.py | 13 ++++++++++++- 8 files changed, 95 insertions(+), 1 deletion(-) diff --git a/pyfpdb/Filters.py b/pyfpdb/Filters.py index 565b79f3..4bbc6057 100644 --- a/pyfpdb/Filters.py +++ b/pyfpdb/Filters.py @@ -30,6 +30,17 @@ import logging # logging has been set up in fpdb.py or HUD_main.py, use their settings: log = logging.getLogger("filter") +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string import Configuration import Database diff --git a/pyfpdb/GuiGraphViewer.py b/pyfpdb/GuiGraphViewer.py index dcef9712..fe82aa44 100644 --- a/pyfpdb/GuiGraphViewer.py +++ b/pyfpdb/GuiGraphViewer.py @@ -42,6 +42,18 @@ except ImportError, inst: and HUD are NOT affected by this problem.""") print "ImportError: %s" % inst.args +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + import fpdb_import import Database import Filters diff --git a/pyfpdb/GuiImapFetcher.py b/pyfpdb/GuiImapFetcher.py index a4e9ff4e..b9391daa 100644 --- a/pyfpdb/GuiImapFetcher.py +++ b/pyfpdb/GuiImapFetcher.py @@ -22,6 +22,18 @@ import gtk from imaplib import IMAP4 from socket import gaierror +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + import ImapFetcher class GuiImapFetcher (threading.Thread): diff --git a/pyfpdb/GuiPositionalStats.py b/pyfpdb/GuiPositionalStats.py index bc758923..4963a88f 100644 --- a/pyfpdb/GuiPositionalStats.py +++ b/pyfpdb/GuiPositionalStats.py @@ -22,6 +22,18 @@ import gtk import os from time import time, strftime +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + import fpdb_import import Database import Filters diff --git a/pyfpdb/GuiSessionViewer.py b/pyfpdb/GuiSessionViewer.py index 00b7631d..56df5e78 100755 --- a/pyfpdb/GuiSessionViewer.py +++ b/pyfpdb/GuiSessionViewer.py @@ -41,6 +41,18 @@ except ImportError, inst: print _("""Failed to load numpy and/or matplotlib in Session Viewer""") print _("ImportError: %s") % inst.args +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + import Card import fpdb_import import Database diff --git a/pyfpdb/GuiTourneyPlayerStats.py b/pyfpdb/GuiTourneyPlayerStats.py index 7f65888f..0b90c9b3 100644 --- a/pyfpdb/GuiTourneyPlayerStats.py +++ b/pyfpdb/GuiTourneyPlayerStats.py @@ -24,6 +24,18 @@ import gtk #import sys from time import time, strftime +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + #import Card #import fpdb_import #import Database diff --git a/pyfpdb/GuiTourneyViewer.py b/pyfpdb/GuiTourneyViewer.py index 83781b53..3c1dd53b 100644 --- a/pyfpdb/GuiTourneyViewer.py +++ b/pyfpdb/GuiTourneyViewer.py @@ -20,6 +20,18 @@ import pygtk pygtk.require('2.0') import gtk +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + class GuiTourneyViewer (threading.Thread): def __init__(self, config, db, sql, mainwin, debug=True): self.db = db diff --git a/pyfpdb/TourneyFilters.py b/pyfpdb/TourneyFilters.py index 92b86ef3..ddb98166 100644 --- a/pyfpdb/TourneyFilters.py +++ b/pyfpdb/TourneyFilters.py @@ -29,6 +29,17 @@ from time import gmtime, mktime, strftime, strptime import logging #logging has been set up in fpdb.py or HUD_main.py, use their settings: log = logging.getLogger("filter") +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string #import Configuration #import Database @@ -74,7 +85,7 @@ class TourneyFilters(Filters.Filters): self.numTourneys = int(w.get_text()) except: self.numTourneys = 0 - print "setting numTourneys:", self.numTourneys + print _("setting numTourneys:"), self.numTourneys #end def __set_num_tourneys def __toggle_box(self, widget, entry): #identical with Filters From cff0206e4d3b9b3c809b21e29c6024f90e6d7d86 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 01:58:05 +0200 Subject: [PATCH 217/301] gettext-ify tournesummary and interlocks --- pyfpdb/TourneySummary.py | 121 ++++++++++++++++++++++----------------- pyfpdb/interlocks.py | 2 +- 2 files changed, 68 insertions(+), 55 deletions(-) diff --git a/pyfpdb/TourneySummary.py b/pyfpdb/TourneySummary.py index 737f6aca..7b3aa5be 100644 --- a/pyfpdb/TourneySummary.py +++ b/pyfpdb/TourneySummary.py @@ -30,6 +30,19 @@ import operator import time,datetime from copy import deepcopy from Exceptions import * + +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + import pprint import DerivedStats import Card @@ -118,59 +131,59 @@ class TourneySummary(object): def __str__(self): #TODO : Update - vars = ( ("SITE", self.siteName), - ("START TIME", self.startTime), - ("END TIME", self.endTime), - ("TOURNEY NAME", self.tourneyName), - ("TOURNEY NO", self.tourNo), - ("TOURNEY TYPE ID", self.tourneyTypeId), - ("TOURNEY ID", self.tourneyId), - ("BUYIN", self.buyin), - ("FEE", self.fee), - ("CURRENCY", self.currency), - ("HERO", self.hero), - ("MAXSEATS", self.maxseats), - ("ENTRIES", self.entries), - ("SPEED", self.speed), - ("PRIZE POOL", self.prizepool), - ("STARTING CHIP COUNT", self.buyInChips), - ("MIXED", self.mixed), - ("REBUY", self.isRebuy), - ("ADDON", self.isAddOn), - ("KO", self.isKO), - ("MATRIX", self.isMatrix), - ("MATRIX ID PROCESSED", self.matrixIdProcessed), - ("SHOOTOUT", self.isShootout), - ("MATRIX MATCH ID", self.matrixMatchId), - ("SUB TOURNEY BUY IN", self.subTourneyBuyin), - ("SUB TOURNEY FEE", self.subTourneyFee), - ("REBUY CHIPS", self.rebuyChips), - ("ADDON CHIPS", self.addOnChips), - ("REBUY COST", self.rebuyCost), - ("ADDON COST", self.addOnCost), - ("TOTAL REBUYS", self.totalRebuyCount), - ("TOTAL ADDONS", self.totalAddOnCount), - ("KO BOUNTY", self.koBounty), - ("TOURNEY COMMENT", self.tourneyComment), - ("SNG", self.isSng), - ("SATELLITE", self.isSatellite), - ("DOUBLE OR NOTHING", self.isDoubleOrNothing), - ("GUARANTEE", self.guarantee), - ("ADDED", self.added), - ("ADDED CURRENCY", self.addedCurrency), - ("COMMENT", self.comment), - ("COMMENT TIMESTAMP", self.commentTs) + vars = ( (_("SITE"), self.siteName), + (_("START TIME"), self.startTime), + (_("END TIME"), self.endTime), + (_("TOURNEY NAME"), self.tourneyName), + (_("TOURNEY NO"), self.tourNo), + (_("TOURNEY TYPE ID"), self.tourneyTypeId), + (_("TOURNEY ID"), self.tourneyId), + (_("BUYIN"), self.buyin), + (_("FEE"), self.fee), + (_("CURRENCY"), self.currency), + (_("HERO"), self.hero), + (_("MAXSEATS"), self.maxseats), + (_("ENTRIES"), self.entries), + (_("SPEED"), self.speed), + (_("PRIZE POOL"), self.prizepool), + (_("STARTING CHIP COUNT"), self.buyInChips), + (_("MIXED"), self.mixed), + (_("REBUY"), self.isRebuy), + (_("ADDON"), self.isAddOn), + (_("KO"), self.isKO), + (_("MATRIX"), self.isMatrix), + (_("MATRIX ID PROCESSED"), self.matrixIdProcessed), + (_("SHOOTOUT"), self.isShootout), + (_("MATRIX MATCH ID"), self.matrixMatchId), + (_("SUB TOURNEY BUY IN"), self.subTourneyBuyin), + (_("SUB TOURNEY FEE"), self.subTourneyFee), + (_("REBUY CHIPS"), self.rebuyChips), + (_("ADDON CHIPS"), self.addOnChips), + (_("REBUY COST"), self.rebuyCost), + (_("ADDON COST"), self.addOnCost), + (_("TOTAL REBUYS"), self.totalRebuyCount), + (_("TOTAL ADDONS"), self.totalAddOnCount), + (_("KO BOUNTY"), self.koBounty), + (_("TOURNEY COMMENT"), self.tourneyComment), + (_("SNG"), self.isSng), + (_("SATELLITE"), self.isSatellite), + (_("DOUBLE OR NOTHING"), self.isDoubleOrNothing), + (_("GUARANTEE"), self.guarantee), + (_("ADDED"), self.added), + (_("ADDED CURRENCY"), self.addedCurrency), + (_("COMMENT"), self.comment), + (_("COMMENT TIMESTAMP"), self.commentTs) ) - structs = ( ("PLAYER IDS", self.playerIds), - ("PLAYERS", self.players), - ("TOURNEYS PLAYERS IDS", self.tourneysPlayersIds), - ("RANKS", self.ranks), - ("WINNINGS", self.winnings), - ("WINNINGS CURRENCY", self.winningsCurrency), - ("COUNT REBUYS", self.rebuyCounts), - ("COUNT ADDONS", self.addOnCounts), - ("NB OF KO", self.koCounts) + structs = ( (_("PLAYER IDS"), self.playerIds), + (_("PLAYERS"), self.players), + (_("TOURNEYS PLAYERS IDS"), self.tourneysPlayersIds), + (_("RANKS"), self.ranks), + (_("WINNINGS"), self.winnings), + (_("WINNINGS CURRENCY"), self.winningsCurrency), + (_("COUNT REBUYS"), self.rebuyCounts), + (_("COUNT ADDONS"), self.addOnCounts), + (_("NB OF KO"), self.koCounts) ) str = '' for (name, var) in vars: @@ -217,7 +230,7 @@ class TourneySummary(object): self.tourneysPlayersIds = self.db.createOrUpdateTourneysPlayers(self, "TS") self.db.commit() - logging.debug("Tourney Insert/Update done") + logging.debug(_("Tourney Insert/Update done")) # TO DO : Return what has been done (tourney created, updated, nothing) # ?? stored = 1 if tourney is fully created / duplicates = 1, if everything was already here and correct / partial=1 if some things were already here (between tourney, tourneysPlayers and handsPlayers) @@ -237,7 +250,7 @@ rank (int) indicating the finishing rank (can be -1 if unknown) name (string) player name winnings (decimal) the money the player ended the tourney with (can be 0, or -1 if unknown) """ - log.debug("addPlayer: rank:%s - name : '%s' - Winnings (%s)" % (rank, name, winnings)) + log.debug(_("addPlayer: rank:%s - name : '%s' - Winnings (%s)") % (rank, name, winnings)) self.players.append(name) if rank: self.ranks.update( { name : Decimal(rank) } ) @@ -264,7 +277,7 @@ winnings (decimal) the money the player ended the tourney with (can be 0, or #end def addPlayer def incrementPlayerWinnings(self, name, additionnalWinnings): - log.debug("incrementPlayerWinnings: name : '%s' - Add Winnings (%s)" % (name, additionnalWinnings)) + log.debug(_("incrementPlayerWinnings: name : '%s' - Add Winnings (%s)") % (name, additionnalWinnings)) oldWins = 0 if self.winnings.has_key(name): oldWins = self.winnings[name] diff --git a/pyfpdb/interlocks.py b/pyfpdb/interlocks.py index f6ef7857..c3794325 100755 --- a/pyfpdb/interlocks.py +++ b/pyfpdb/interlocks.py @@ -46,7 +46,7 @@ class InterProcessLockBase: if source == None: source="Unknown" if self._has_lock: # make sure 2nd acquire in same process fails - print "lock already held by:",self.heldBy + print _("lock already held by:"),self.heldBy return False while not self._has_lock: try: From 4f3e4ab7d49d7aabf271281696a0b014c21aea3c Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 02:28:31 +0200 Subject: [PATCH 218/301] gettextify database to line 1000 --- pyfpdb/Database.py | 71 +++++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 32 deletions(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index ed4fa0a9..13d1fe0d 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -46,9 +46,17 @@ import logging # logging has been set up in fpdb.py or HUD_main.py, use their settings: log = logging.getLogger("db") - -# pyGTK modules - +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string # FreePokerTools modules import SQL @@ -63,14 +71,14 @@ try: import sqlalchemy.pool as pool use_pool = True except ImportError: - log.info("Not using sqlalchemy connection pool.") + log.info(_("Not using sqlalchemy connection pool.")) use_pool = False try: from numpy import var use_numpy = True except ImportError: - log.info("Not using numpy to define variance in sqlite.") + log.info(_("Not using numpy to define variance in sqlite.")) use_numpy = False @@ -235,7 +243,7 @@ class Database: def __init__(self, c, sql = None, autoconnect = True): #log = Configuration.get_logger("logging.conf", "db", log_dir=c.dir_log) - log.debug("Creating Database instance, sql = %s" % sql) + log.debug(_("Creating Database instance, sql = %s") % sql) self.config = c self.__connected = False self.settings = {} @@ -371,7 +379,7 @@ class Database: elif ex.args[0] == 2002 or ex.args[0] == 2003: # 2002 is no unix socket, 2003 is no tcp socket raise FpdbMySQLNoDatabase(ex.args[0], ex.args[1]) else: - print "*** WARNING UNKNOWN MYSQL ERROR", ex + print _("*** WARNING UNKNOWN MYSQL ERROR:"), ex elif backend == Database.PGSQL: import psycopg2 import psycopg2.extensions @@ -420,12 +428,12 @@ class Database: if database != ":memory:": if not os.path.isdir(self.config.dir_database) and create: - print "Creating directory: '%s'" % (self.config.dir_database) - log.info("Creating directory: '%s'" % (self.config.dir_database)) + print _("Creating directory: '%s'") % (self.config.dir_database) + log.info(_("Creating directory: '%s'") % (self.config.dir_database)) os.mkdir(self.config.dir_database) database = os.path.join(self.config.dir_database, database) self.db_path = database - log.info("Connecting to SQLite: %(database)s" % {'database':self.db_path}) + log.info(_("Connecting to SQLite: %(database)s") % {'database':self.db_path}) if os.path.exists(database) or create: self.connection = sqlite3.connect(self.db_path, detect_types=sqlite3.PARSE_DECLTYPES ) self.__connected = True @@ -437,7 +445,7 @@ class Database: if use_numpy: self.connection.create_aggregate("variance", 1, VARIANCE) else: - log.warning("Some database functions will not work without NumPy support") + log.warning(_("Some database functions will not work without NumPy support")) self.cursor = self.connection.cursor() self.cursor.execute('PRAGMA temp_store=2') # use memory for temp tables/indexes self.cursor.execute('PRAGMA synchronous=0') # don't wait for file writes to finish @@ -458,19 +466,19 @@ class Database: self.cursor.execute("SELECT * FROM Settings") settings = self.cursor.fetchone() if settings[0] != DB_VERSION: - log.error("outdated or too new database version (%s) - please recreate tables" + log.error(_("outdated or too new database version (%s) - please recreate tables") % (settings[0])) self.wrongDbVersion = True except:# _mysql_exceptions.ProgrammingError: if database != ":memory:": if create: - print "Failed to read settings table - recreating tables" - log.info("failed to read settings table - recreating tables") + print _("Failed to read settings table - recreating tables") + log.info(_("Failed to read settings table - recreating tables")) self.recreate_tables() self.check_version(database=database, create=False) else: - print "Failed to read settings table - please recreate tables" - log.info("failed to read settings table - please recreate tables") + print _("Failed to read settings table - please recreate tables") + log.info(_("Failed to read settings table - please recreate tables")) self.wrongDbVersion = True else: self.wrongDbVersion = True @@ -488,15 +496,14 @@ class Database: for i in xrange(maxtimes): try: ret = self.connection.commit() - log.debug("commit finished ok, i = "+str(i)) + log.debug(_("commit finished ok, i = ")+str(i)) ok = True except: - log.debug("commit "+str(i)+" failed: info=" + str(sys.exc_info()) - + " value=" + str(sys.exc_value)) + log.debug(_("commit %s failed: info=%s value=%s") % (str(i), str(sys.exc_info()), str(sys.exc_value)) sleep(pause) if ok: break if not ok: - log.debug("commit failed") + log.debug(_("commit failed")) raise FpdbError('sqlite commit failed') def rollback(self): @@ -665,7 +672,7 @@ class Database: row = c.fetchone() except: # TODO: what error is a database error?! err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "*** Database Error: " + err[2] + "(" + str(err[1]) + "): " + str(sys.exc_info()[1]) + print _("*** Database Error: ") + err[2] + "(" + str(err[1]) + "): " + str(sys.exc_info()[1]) else: if row and row[0]: self.hand_1day_ago = int(row[0]) @@ -691,10 +698,10 @@ class Database: if row and row[0]: self.date_nhands_ago[str(playerid)] = row[0] c.close() - print "Database: date n hands ago = " + self.date_nhands_ago[str(playerid)] + "(playerid "+str(playerid)+")" + print _("Database: date n hands ago = ") + self.date_nhands_ago[str(playerid)] + "(playerid "+str(playerid)+")" except: err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "*** Database Error: "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) + print _("*** Database Error: ")+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) # is get_stats_from_hand slow? def get_stats_from_hand( self, hand, type # type is "ring" or "tour" @@ -848,7 +855,7 @@ class Database: # prevents infinite loop so leave for now - comment out or remove? row = c.fetchone() else: - log.error("ERROR: query %s result does not have player_id as first column" % (query,)) + log.error(_("ERROR: query %s result does not have player_id as first column") % (query,)) #print " %d rows fetched, len(stat_dict) = %d" % (n, len(stat_dict)) @@ -890,7 +897,7 @@ class Database: if self.backend == self.MYSQL_INNODB: ret = self.connection.insert_id() if ret < 1 or ret > 999999999: - log.warning("getLastInsertId(): problem fetching insert_id? ret=%d" % ret) + log.warning(_("getLastInsertId(): problem fetching insert_id? ret=%d") % ret) ret = -1 elif self.backend == self.PGSQL: # some options: @@ -902,19 +909,19 @@ class Database: ret = c.execute ("SELECT lastval()") row = c.fetchone() if not row: - log.warning("getLastInsertId(%s): problem fetching lastval? row=%d" % (seq, row)) + log.warning(_("getLastInsertId(%s): problem fetching lastval? row=%d") % (seq, row)) ret = -1 else: ret = row[0] elif self.backend == self.SQLITE: ret = cursor.lastrowid else: - log.error("getLastInsertId(): unknown backend: %d" % self.backend) + log.error(_("getLastInsertId(): unknown backend: %d") % self.backend) ret = -1 except: ret = -1 err = traceback.extract_tb(sys.exc_info()[2]) - print "*** Database get_last_insert_id error: " + str(sys.exc_info()[1]) + print _("*** Database get_last_insert_id error: ") + str(sys.exc_info()[1]) print "\n".join( [e[0]+':'+str(e[1])+" "+e[2] for e in err] ) raise return ret @@ -968,11 +975,11 @@ class Database: print "dropped pg fk pg fk %s_%s_fkey, continuing ..." % (fk['fktab'], fk['fkcol']) except: if "does not exist" not in str(sys.exc_value): - print "warning: drop pg fk %s_%s_fkey failed: %s, continuing ..." \ + print _("warning: drop pg fk %s_%s_fkey failed: %s, continuing ...") \ % (fk['fktab'], fk['fkcol'], str(sys.exc_value).rstrip('\n') ) c.execute("END TRANSACTION") except: - print "warning: constraint %s_%s_fkey not dropped: %s, continuing ..." \ + print _("warning: constraint %s_%s_fkey not dropped: %s, continuing ...") \ % (fk['fktab'],fk['fkcol'], str(sys.exc_value).rstrip('\n')) else: return -1 @@ -980,13 +987,13 @@ class Database: for idx in self.indexes[self.backend]: if idx['drop'] == 1: if self.backend == self.MYSQL_INNODB: - print "dropping mysql index ", idx['tab'], idx['col'] + print _("dropping mysql index "), idx['tab'], idx['col'] try: # apparently nowait is not implemented in mysql so this just hangs if there are locks # preventing the index drop :-( c.execute( "alter table %s drop index %s;", (idx['tab'],idx['col']) ) except: - print " drop index failed: " + str(sys.exc_info()) + print _(" drop index failed: ") + str(sys.exc_info()) # ALTER TABLE `fpdb`.`handsplayers` DROP INDEX `playerId`; # using: 'HandsPlayers' drop index 'playerId' elif self.backend == self.PGSQL: From ba3fdd4656b17e8ef9502725aae4c4bffada9150 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 02:40:58 +0200 Subject: [PATCH 219/301] gettextify Database up to line 1500 --- pyfpdb/Database.py | 114 ++++++++++++++++++++++----------------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 13d1fe0d..8f1ad710 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -499,7 +499,7 @@ class Database: log.debug(_("commit finished ok, i = ")+str(i)) ok = True except: - log.debug(_("commit %s failed: info=%s value=%s") % (str(i), str(sys.exc_info()), str(sys.exc_value)) + log.debug(_("commit %s failed: info=%s value=%s") % (str(i), str(sys.exc_info()), str(sys.exc_value))) sleep(pause) if ok: break if not ok: @@ -998,7 +998,7 @@ class Database: # using: 'HandsPlayers' drop index 'playerId' elif self.backend == self.PGSQL: # DON'T FORGET TO RECREATE THEM!! - print "dropping pg index ", idx['tab'], idx['col'] + print _("dropping pg index "), idx['tab'], idx['col'] try: # try to lock table to see if index drop will work: c.execute("BEGIN TRANSACTION") @@ -1011,11 +1011,11 @@ class Database: #print "dropped pg index ", idx['tab'], idx['col'] except: if "does not exist" not in str(sys.exc_value): - print "warning: drop index %s_%s_idx failed: %s, continuing ..." \ + print _("warning: drop index %s_%s_idx failed: %s, continuing ...") \ % (idx['tab'],idx['col'], str(sys.exc_value).rstrip('\n')) c.execute("END TRANSACTION") except: - print "warning: index %s_%s_idx not dropped %s, continuing ..." \ + print _("warning: index %s_%s_idx not dropped %s, continuing ...") \ % (idx['tab'],idx['col'], str(sys.exc_value).rstrip('\n')) else: return -1 @@ -1024,7 +1024,7 @@ class Database: self.connection.set_isolation_level(1) # go back to normal isolation level self.commit() # seems to clear up errors if there were any in postgres ptime = time() - stime - print "prepare import took", ptime, "seconds" + print _("prepare import took %s seconds" % ptime) #end def prepareBulkImport def afterBulkImport(self): @@ -1055,43 +1055,43 @@ class Database: if cons: pass else: - print "creating fk ", fk['fktab'], fk['fkcol'], "->", fk['rtab'], fk['rcol'] + print _("creating foreign key "), fk['fktab'], fk['fkcol'], "->", fk['rtab'], fk['rcol'] try: c.execute("alter table " + fk['fktab'] + " add foreign key (" + fk['fkcol'] + ") references " + fk['rtab'] + "(" + fk['rcol'] + ")") except: - print " create fk failed: " + str(sys.exc_info()) + print _(" create foreign key failed: ") + str(sys.exc_info()) elif self.backend == self.PGSQL: - print "creating fk ", fk['fktab'], fk['fkcol'], "->", fk['rtab'], fk['rcol'] + print _("creating foreign key "), fk['fktab'], fk['fkcol'], "->", fk['rtab'], fk['rcol'] try: c.execute("alter table " + fk['fktab'] + " add constraint " + fk['fktab'] + '_' + fk['fkcol'] + '_fkey' + " foreign key (" + fk['fkcol'] + ") references " + fk['rtab'] + "(" + fk['rcol'] + ")") except: - print " create fk failed: " + str(sys.exc_info()) + print _(" create foreign key failed: ") + str(sys.exc_info()) else: return -1 for idx in self.indexes[self.backend]: if idx['drop'] == 1: if self.backend == self.MYSQL_INNODB: - print "creating mysql index ", idx['tab'], idx['col'] + print _("creating mysql index "), idx['tab'], idx['col'] try: s = "alter table %s add index %s(%s)" % (idx['tab'],idx['col'],idx['col']) c.execute(s) except: - print " create fk failed: " + str(sys.exc_info()) + print _(" create foreign key failed: ") + str(sys.exc_info()) elif self.backend == self.PGSQL: # pass # mod to use tab_col for index name? - print "creating pg index ", idx['tab'], idx['col'] + print _("creating pg index "), idx['tab'], idx['col'] try: s = "create index %s_%s_idx on %s(%s)" % (idx['tab'], idx['col'], idx['tab'], idx['col']) c.execute(s) except: - print " create index failed: " + str(sys.exc_info()) + print _(" create index failed: ") + str(sys.exc_info()) else: return -1 @@ -1099,7 +1099,7 @@ class Database: self.connection.set_isolation_level(1) # go back to normal isolation level self.commit() # seems to clear up errors if there were any in postgres atime = time() - stime - print "After import took", atime, "seconds" + print (_("After import took %s seconds" % atime)) #end def afterBulkImport def drop_referential_integrity(self): @@ -1131,8 +1131,8 @@ class Database: self.create_tables() self.createAllIndexes() self.commit() - print "Finished recreating tables" - log.info("Finished recreating tables") + print _("Finished recreating tables") + log.info(_("Finished recreating tables")) #end def recreate_tables def create_tables(self): @@ -1169,7 +1169,7 @@ class Database: except: #print "Error creating tables: ", str(sys.exc_value) err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "***Error creating tables: "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) + print _("***Error creating tables: ")+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) self.rollback() raise #end def disconnect @@ -1179,7 +1179,7 @@ class Database: try: c = self.get_cursor() except: - print "*** Error unable to get cursor" + print _("*** Error unable to get databasecursor") else: backend = self.get_backend_name() if backend == 'MySQL InnoDB': # what happens if someone is using MyISAM? @@ -1191,7 +1191,7 @@ class Database: c.execute(self.sql.query['drop_table'] + table[0]) except: err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "***Error dropping tables: "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) + print _("***Error dropping tables: ")+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) self.rollback() elif backend == 'PostgreSQL': try: @@ -1202,7 +1202,7 @@ class Database: c.execute(self.sql.query['drop_table'] + table[0] + ' cascade') except: err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "***Error dropping tables: "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) + print _("***Error dropping tables: ")+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) self.rollback() elif backend == 'SQLite': try: @@ -1212,14 +1212,14 @@ class Database: c.execute(self.sql.query['drop_table'] + table[0]) except: err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "***Error dropping tables: "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) + print _("***Error dropping tables: ")+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) self.rollback() try: self.commit() except: - print "*** Error in committing table drop" + print _("*** Error in committing table drop") err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "***Error dropping tables: "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) + print _("***Error dropping tables: ")+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) self.rollback() #end def drop_tables @@ -1231,37 +1231,37 @@ class Database: self.connection.set_isolation_level(0) # allow table/index operations to work for idx in self.indexes[self.backend]: if self.backend == self.MYSQL_INNODB: - print "Creating mysql index %s %s" %(idx['tab'], idx['col']) - log.debug("Creating mysql index %s %s" %(idx['tab'], idx['col'])) + print _("Creating mysql index %s %s") %(idx['tab'], idx['col']) + log.debug(_("Creating mysql index %s %s") %(idx['tab'], idx['col'])) try: s = "create index %s on %s(%s)" % (idx['col'],idx['tab'],idx['col']) self.get_cursor().execute(s) except: - print " create idx failed: " + str(sys.exc_info()) + print _(" create index failed: ") + str(sys.exc_info()) elif self.backend == self.PGSQL: # mod to use tab_col for index name? - print "Creating pgsql index %s %s" %(idx['tab'], idx['col']) - log.debug("Creating pgsql index %s %s" %(idx['tab'], idx['col'])) + print _("Creating pgsql index %s %s") %(idx['tab'], idx['col']) + log.debug(_("Creating pgsql index %s %s") %(idx['tab'], idx['col'])) try: s = "create index %s_%s_idx on %s(%s)" % (idx['tab'], idx['col'], idx['tab'], idx['col']) self.get_cursor().execute(s) except: - print " create idx failed: " + str(sys.exc_info()) + print _(" create index failed: ") + str(sys.exc_info()) elif self.backend == self.SQLITE: - print "Creating sqlite index %s %s" %(idx['tab'], idx['col']) - log.debug("Creating sqlite index %s %s" %(idx['tab'], idx['col'])) + print _("Creating sqlite index %s %s") %(idx['tab'], idx['col']) + log.debug(_("Creating sqlite index %s %s") %(idx['tab'], idx['col'])) try: s = "create index %s_%s_idx on %s(%s)" % (idx['tab'], idx['col'], idx['tab'], idx['col']) self.get_cursor().execute(s) except: - log.debug("Create idx failed: " + str(sys.exc_info())) + log.debug(_("Create index failed: ") + str(sys.exc_info())) else: - print "Unknown database: MySQL, Postgres and SQLite supported" + print _("Unknown database: MySQL, Postgres and SQLite supported") return -1 if self.backend == self.PGSQL: self.connection.set_isolation_level(1) # go back to normal isolation level except: - print "Error creating indexes: " + str(sys.exc_value) + print _("Error creating indexes: ") + str(sys.exc_value) raise FpdbError( "Error creating indexes " + str(sys.exc_value) ) #end def createAllIndexes @@ -1273,29 +1273,29 @@ class Database: self.connection.set_isolation_level(0) # allow table/index operations to work for idx in self.indexes[self.backend]: if self.backend == self.MYSQL_INNODB: - print "dropping mysql index ", idx['tab'], idx['col'] + print _("dropping mysql index "), idx['tab'], idx['col'] try: self.get_cursor().execute( "alter table %s drop index %s" , (idx['tab'], idx['col']) ) except: - print " drop idx failed: " + str(sys.exc_info()) + print _(" drop index failed: ") + str(sys.exc_info()) elif self.backend == self.PGSQL: - print "dropping pg index ", idx['tab'], idx['col'] + print _("dropping pg index "), idx['tab'], idx['col'] # mod to use tab_col for index name? try: self.get_cursor().execute( "drop index %s_%s_idx" % (idx['tab'],idx['col']) ) except: - print " drop idx failed: " + str(sys.exc_info()) + print _(" drop index failed: ") + str(sys.exc_info()) elif self.backend == self.SQLITE: - print "Dropping sqlite index ", idx['tab'], idx['col'] + print _("Dropping sqlite index "), idx['tab'], idx['col'] try: self.get_cursor().execute( "drop index %s_%s_idx" % (idx['tab'],idx['col']) ) except: - print " drop idx failed: " + str(sys.exc_info()) + print _(" drop index failed: ") + str(sys.exc_info()) else: - print "Only MySQL, Postgres and SQLITE supported, what are you trying to use?" + print _("Fpdb only supports MySQL, Postgres and SQLITE, what are you trying to use?") return -1 if self.backend == self.PGSQL: self.connection.set_isolation_level(1) # go back to normal isolation level @@ -1309,7 +1309,7 @@ class Database: self.connection.set_isolation_level(0) # allow table/index operations to work c = self.get_cursor() except: - print " set_isolation_level failed: " + str(sys.exc_info()) + print _(" set_isolation_level failed: ") + str(sys.exc_info()) for fk in self.foreignKeys[self.backend]: if self.backend == self.MYSQL_INNODB: @@ -1326,30 +1326,30 @@ class Database: if cons: pass else: - print "creating fk ", fk['fktab'], fk['fkcol'], "->", fk['rtab'], fk['rcol'] + print _("creating foreign key "), fk['fktab'], fk['fkcol'], "->", fk['rtab'], fk['rcol'] try: c.execute("alter table " + fk['fktab'] + " add foreign key (" + fk['fkcol'] + ") references " + fk['rtab'] + "(" + fk['rcol'] + ")") except: - print " create fk failed: " + str(sys.exc_info()) + print _(" create foreign key failed: ") + str(sys.exc_info()) elif self.backend == self.PGSQL: - print "creating fk ", fk['fktab'], fk['fkcol'], "->", fk['rtab'], fk['rcol'] + print _("creating foreign key "), fk['fktab'], fk['fkcol'], "->", fk['rtab'], fk['rcol'] try: c.execute("alter table " + fk['fktab'] + " add constraint " + fk['fktab'] + '_' + fk['fkcol'] + '_fkey' + " foreign key (" + fk['fkcol'] + ") references " + fk['rtab'] + "(" + fk['rcol'] + ")") except: - print " create fk failed: " + str(sys.exc_info()) + print _(" create foreign key failed: ") + str(sys.exc_info()) else: - print "Only MySQL and Postgres supported so far" + print _("Only MySQL and Postgres supported so far") try: if self.backend == self.PGSQL: self.connection.set_isolation_level(1) # go back to normal isolation level except: - print " set_isolation_level failed: " + str(sys.exc_info()) + print _(" set_isolation_level failed: ") + str(sys.exc_info()) #end def createAllForeignKeys def dropAllForeignKeys(self): @@ -1373,14 +1373,14 @@ class Database: cons = c.fetchone() #print "preparebulk find fk: cons=", cons if cons: - print "dropping mysql fk", cons[0], fk['fktab'], fk['fkcol'] + print _("dropping mysql foreign key"), cons[0], fk['fktab'], fk['fkcol'] try: c.execute("alter table " + fk['fktab'] + " drop foreign key " + cons[0]) except: - print " drop failed: " + str(sys.exc_info()) + print _(" drop failed: ") + str(sys.exc_info()) elif self.backend == self.PGSQL: # DON'T FORGET TO RECREATE THEM!! - print "dropping pg fk", fk['fktab'], fk['fkcol'] + print _("dropping pg foreign key"), fk['fktab'], fk['fkcol'] try: # try to lock table to see if index drop will work: # hmmm, tested by commenting out rollback in grapher. lock seems to work but @@ -1392,17 +1392,17 @@ class Database: #print "alter table %s drop constraint %s_%s_fkey" % (fk['fktab'], fk['fktab'], fk['fkcol']) try: c.execute("alter table %s drop constraint %s_%s_fkey" % (fk['fktab'], fk['fktab'], fk['fkcol'])) - print "dropped pg fk pg fk %s_%s_fkey, continuing ..." % (fk['fktab'], fk['fkcol']) + print _("dropped pg foreign key %s_%s_fkey, continuing ...") % (fk['fktab'], fk['fkcol']) except: if "does not exist" not in str(sys.exc_value): - print "warning: drop pg fk %s_%s_fkey failed: %s, continuing ..." \ + print _("warning: drop pg fk %s_%s_fkey failed: %s, continuing ...") \ % (fk['fktab'], fk['fkcol'], str(sys.exc_value).rstrip('\n') ) c.execute("END TRANSACTION") except: - print "warning: constraint %s_%s_fkey not dropped: %s, continuing ..." \ + print _("warning: constraint %s_%s_fkey not dropped: %s, continuing ...") \ % (fk['fktab'],fk['fkcol'], str(sys.exc_value).rstrip('\n')) else: - print "Only MySQL and Postgres supported so far" + print _("Only MySQL and Postgres supported so far") if self.backend == self.PGSQL: self.connection.set_isolation_level(1) # go back to normal isolation level @@ -1493,10 +1493,10 @@ class Database: self.get_cursor().execute(rebuild_sql_tourney) self.commit() - print "Rebuild hudcache took %.1f seconds" % (time() - stime,) + print _("Rebuild hudcache took %.1f seconds") % (time() - stime,) except: err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "Error rebuilding hudcache:", str(sys.exc_value) + print _("Error rebuilding hudcache:"), str(sys.exc_value) print err #end def rebuild_hudcache From 2115b57142d27c52ee82589e173889ac3390da69 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 02:50:17 +0200 Subject: [PATCH 220/301] finish gettextifying database --- pyfpdb/Database.py | 48 +++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 8f1ad710..f27fbc4b 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -1529,7 +1529,7 @@ class Database: return "20"+tmp[0][1:3] + "-" + tmp[0][3:5] + "-" + tmp[0][5:7] except: err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "Error rebuilding hudcache:", str(sys.exc_value) + print _("Error rebuilding hudcache:"), str(sys.exc_value) print err #end def get_hero_hudcache_start @@ -1541,17 +1541,17 @@ class Database: try: self.get_cursor().execute(self.sql.query['analyze']) except: - print "Error during analyze:", str(sys.exc_value) + print _("Error during analyze:"), str(sys.exc_value) elif self.backend == self.PGSQL: self.connection.set_isolation_level(0) # allow analyze to work try: self.get_cursor().execute(self.sql.query['analyze']) except: - print "Error during analyze:", str(sys.exc_value) + print _("Error during analyze:"), str(sys.exc_value) self.connection.set_isolation_level(1) # go back to normal isolation level self.commit() atime = time() - stime - print "Analyze took %.1f seconds" % (atime,) + print _("Analyze took %.1f seconds") % (atime,) #end def analyzeDB def vacuumDB(self): @@ -1561,17 +1561,17 @@ class Database: try: self.get_cursor().execute(self.sql.query['vacuum']) except: - print "Error during vacuum:", str(sys.exc_value) + print _("Error during vacuum:"), str(sys.exc_value) elif self.backend == self.PGSQL: self.connection.set_isolation_level(0) # allow vacuum to work try: self.get_cursor().execute(self.sql.query['vacuum']) except: - print "Error during vacuum:", str(sys.exc_value) + print _("Error during vacuum:"), str(sys.exc_value) self.connection.set_isolation_level(1) # go back to normal isolation level self.commit() atime = time() - stime - print "Vacuum took %.1f seconds" % (atime,) + print _("Vacuum took %.1f seconds") % (atime,) #end def analyzeDB # Start of Hand Writing routines. Idea is to provide a mixture of routines to store Hand data @@ -1583,7 +1583,7 @@ class Database: try: self.get_cursor().execute(self.sql.query['lockForInsert']) except: - print "Error during lock_for_insert:", str(sys.exc_value) + print _("Error during lock_for_insert:"), str(sys.exc_value) #end def lock_for_insert ########################### @@ -1956,10 +1956,10 @@ class Database: # could also test threading.active_count() or look through threading.enumerate() # so break immediately if no threads, but count up to X exceptions if a writer # thread is still alive??? - print "queue empty too long - writer stopping ..." + print _("queue empty too long - writer stopping ...") break except: - print "writer stopping, error reading queue: " + str(sys.exc_info()) + print _("writer stopping, error reading queue: ") + str(sys.exc_info()) break #print "got hand", str(h.get_finished()) @@ -1984,16 +1984,16 @@ class Database: # deadlocks only a problem if hudcache is being updated tries = tries + 1 if tries < maxTries and wait < 5: # wait < 5 just to make sure - print "deadlock detected - trying again ..." + print _("deadlock detected - trying again ...") sleep(wait) wait = wait + wait again = True else: - print "too many deadlocks - failed to store hand " + h.get_siteHandNo() + print _("too many deadlocks - failed to store hand ") + h.get_siteHandNo() if not again: fails = fails + 1 err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "***Error storing hand: "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) + print _("***Error storing hand: ")+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) # finished trying to store hand # always reduce q count, whether or not this hand was saved ok @@ -2003,7 +2003,7 @@ class Database: self.commit() if sendFinal: q.task_done() - print "db writer finished: stored %d hands (%d fails) in %.1f seconds" % (n, fails, time()-t0) + print _("db writer finished: stored %d hands (%d fails) in %.1f seconds") % (n, fails, time()-t0) # end def insert_queue_hands(): @@ -2013,7 +2013,7 @@ class Database: q.put(h) except: err = traceback.extract_tb(sys.exc_info()[2])[-1] - print "***Error sending finish: "+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) + print _("***Error sending finish: ")+err[2]+"("+str(err[1])+"): "+str(sys.exc_info()[1]) # end def send_finish_msg(): def createTourneyType(self, hand):#note: this method is used on Hand and TourneySummary objects @@ -2093,7 +2093,7 @@ class Database: (hand.tourneyTypeId, hand.tourNo, hand.entries, hand.prizepool, hand.startTime, hand.endTime, hand.tourneyName, hand.matrixIdProcessed, hand.totalRebuyCount, hand.totalAddOnCount)) else: - raise FpdbParseError("invalid source in Database.createOrUpdateTourney") + raise FpdbParseError(_("invalid source in Database.createOrUpdateTourney")) tourneyId = self.get_last_insert_id(cursor) return tourneyId #end def createOrUpdateTourney @@ -2106,7 +2106,7 @@ class Database: elif source=="HHC": playerId = hand.dbid_pids[player[1]] else: - raise FpdbParseError("invalid source in Database.createOrUpdateTourneysPlayers") + raise FpdbParseError(_("invalid source in Database.createOrUpdateTourneysPlayers")) cursor = self.get_cursor() cursor.execute (self.sql.query['getTourneysPlayersByIds'].replace('%s', self.sql.query['placeholder']), @@ -2232,7 +2232,7 @@ class HandToWrite: self.tableName = None self.seatNos = None except: - print "htw.init error: " + str(sys.exc_info()) + print _("HandToWrite.init error: ") + str(sys.exc_info()) raise # end def __init__ @@ -2282,7 +2282,7 @@ class HandToWrite: self.tableName = tableName self.seatNos = seatNos except: - print "htw.set_all error: " + str(sys.exc_info()) + print _("HandToWrite.set_all error: ") + str(sys.exc_info()) raise # end def set_hand @@ -2313,7 +2313,7 @@ if __name__=="__main__": hero = db_connection.get_player_id(c, 'PokerStars', 'nutOmatic') if hero: - print "nutOmatic is id_player = %d" % hero + print _("nutOmatic is id_player = %d") % hero # example of displaying query plan in sqlite: if db_connection.backend == 4: @@ -2321,7 +2321,7 @@ if __name__=="__main__": c = db_connection.get_cursor() c.execute('explain query plan '+sql.query['get_table_name'], (h, )) for row in c.fetchall(): - print "query plan: ", row + print _("query plan: "), row print t0 = time() @@ -2330,12 +2330,12 @@ if __name__=="__main__": for p in stat_dict.keys(): print p, " ", stat_dict[p] - print "cards =", db_connection.get_cards(u'1') + print _("cards ="), db_connection.get_cards(u'1') db_connection.close_connection - print "get_stats took: %4.3f seconds" % (t1-t0) + print _("get_stats took: %4.3f seconds") % (t1-t0) - print "press enter to continue" + print _("press enter to continue") sys.stdin.readline() #Code borrowed from http://push.cx/2008/caching-dictionaries-in-python-vs-ruby From 7a5340f2d8fc8b16850f8e7561296160851ffefb Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 02:57:03 +0200 Subject: [PATCH 221/301] gettextify fpdb_import.py --- pyfpdb/fpdb_import.py | 61 +++++++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index cbe87684..03fbbe48 100755 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -35,8 +35,19 @@ log = logging.getLogger("importer") import pygtk import gtk -# fpdb/FreePokerTools modules +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string +# fpdb/FreePokerTools modules import Database import Configuration import Exceptions @@ -46,14 +57,14 @@ import Exceptions try: import MySQLdb except ImportError: - log.debug("Import database module: MySQLdb not found") + log.debug(_("Import database module: MySQLdb not found")) else: mysqlLibFound = True try: import psycopg2 except ImportError: - log.debug("Import database module: psycopg2 not found") + log.debug(_("Import database module: psycopg2 not found")) else: import psycopg2.extensions psycopg2.extensions.register_type(psycopg2.extensions.UNICODE) @@ -164,9 +175,9 @@ class Importer: self.siteIds[site] = result[0][0] else: if len(result) == 0: - log.error("Database ID for %s not found" % site) + log.error(_("Database ID for %s not found") % site) else: - log.error("[ERROR] More than 1 Database ID found for %s - Multiple currencies not implemented yet" % site) + log.error(_("[ERROR] More than 1 Database ID found for %s - Multiple currencies not implemented yet") % site) # Called from GuiBulkImport to add a file or directory. @@ -202,7 +213,7 @@ class Importer: #print " adding file ", file self.addImportFile(os.path.join(dir, file), site, filter) else: - log.warning("Attempted to add non-directory: '%s' as an import directory" % str(dir)) + log.warning(_("Attempted to add non-directory: '%s' as an import directory") % str(dir)) def runImport(self): """"Run full import on self.filelist. This is called from GuiBulkImport.py""" @@ -212,7 +223,7 @@ class Importer: # Initial setup start = datetime.datetime.now() starttime = time() - log.info("Started at %s -- %d files to import. indexes: %s" % (start, len(self.filelist), self.settings['dropIndexes'])) + log.info(_("Started at %s -- %d files to import. indexes: %s") % (start, len(self.filelist), self.settings['dropIndexes'])) if self.settings['dropIndexes'] == 'auto': self.settings['dropIndexes'] = self.calculate_auto2(self.database, 12.0, 500.0) if 'dropHudCache' in self.settings and self.settings['dropHudCache'] == 'auto': @@ -221,7 +232,7 @@ class Importer: if self.settings['dropIndexes'] == 'drop': self.database.prepareBulkImport() else: - log.debug("No need to drop indexes.") + log.debug(_("No need to drop indexes.")) #print "dropInd =", self.settings['dropIndexes'], " dropHudCache =", self.settings['dropHudCache'] if self.settings['threads'] <= 0: @@ -240,10 +251,10 @@ class Importer: (totstored, totdups, totpartial, toterrors) = self.importFiles(self.database, self.writeq) if self.writeq.empty(): - print "writers finished already" + print _("writers finished already") pass else: - print "waiting for writers to finish ..." + print _("waiting for writers to finish ...") #for t in threading.enumerate(): # print " "+str(t) #self.writeq.join() @@ -253,17 +264,17 @@ class Importer: while gtk.events_pending(): # see http://faq.pygtk.org/index.py?req=index for more hints (3.7) gtk.main_iteration(False) sleep(0.5) - print " ... writers finished" + print _(" ... writers finished") # Tidying up after import if self.settings['dropIndexes'] == 'drop': self.database.afterBulkImport() else: - print "No need to rebuild indexes." + print _("No need to rebuild indexes.") if 'dropHudCache' in self.settings and self.settings['dropHudCache'] == 'drop': self.database.rebuild_hudcache() else: - print "No need to rebuild hudcache." + print _("No need to rebuild hudcache.") self.database.analyzeDB() endtime = time() return (totstored, totdups, totpartial, toterrors, endtime-starttime) @@ -288,7 +299,7 @@ class Importer: toterrors += errors for i in xrange( self.settings['threads'] ): - print "sending finish msg qlen =", q.qsize() + print _("sending finish msg qlen ="), q.qsize() db.send_finish_msg(q) return (totstored, totdups, totpartial, toterrors) @@ -414,9 +425,9 @@ class Importer: # Load filter, process file, pass returned filename to import_fpdb_file if self.settings['threads'] > 0 and self.writeq is not None: - log.info("Converting " + file + " (" + str(q.qsize()) + ")") + log.info(_("Converting ") + file + " (" + str(q.qsize()) + ")") else: - log.info("Converting " + file) + log.info(_("Converting ") + file) hhbase = self.config.get_import_parameters().get("hhArchiveBase") hhbase = os.path.expanduser(hhbase) hhdir = os.path.join(hhbase,site) @@ -452,7 +463,7 @@ class Importer: if self.callHud and hand.dbid_hands != 0: to_hud.append(hand.dbid_hands) else: # TODO: Treat empty as an error, or just ignore? - log.error("Hand processed but empty") + log.error(_("Hand processed but empty")) # Call hudcache update if not in bulk import mode # FIXME: Need to test for bulk import that isn't rebuilding the cache @@ -465,10 +476,10 @@ class Importer: #pipe the Hands.id out to the HUD for hid in to_hud: try: - print "fpdb_import: sending hand to hud", hand.dbid_hands, "pipe =", self.caller.pipe_to_hud + print _("fpdb_import: sending hand to hud"), hand.dbid_hands, "pipe =", self.caller.pipe_to_hud self.caller.pipe_to_hud.stdin.write("%s" % (hid) + os.linesep) except IOError, e: - log.error("Failed to send hand to HUD: %s" % e) + log.error(_("Failed to send hand to HUD: %s") % e) errors = getattr(hhc, 'numErrors') stored = getattr(hhc, 'numHands') @@ -479,7 +490,7 @@ class Importer: # TODO: appropriate response? return (0, 0, 0, 1, time() - ttime) else: - log.warning("Unknown filter filter_name:'%s' in filter:'%s'" %(filter_name, filter)) + log.warning(_("Unknown filter filter_name:'%s' in filter:'%s'") %(filter_name, filter)) return (0, 0, 0, 1, time() - ttime) ttime = time() - ttime @@ -490,11 +501,11 @@ class Importer: def printEmailErrorMessage(self, errors, filename, line): traceback.print_exc(file=sys.stderr) - print "Error No.",errors,", please send the hand causing this to fpdb-main@lists.sourceforge.net so we can fix the problem." - print "Filename:", filename - print "Here is the first line of the hand so you can identify it. Please mention that the error was a ValueError:" + print (_("Error No.%s please send the hand causing this to fpdb-main@lists.sourceforge.net so we can fix the problem.") % errors) + print _("Filename:"), filename + print _("Here is the first line of the hand so you can identify it. Please mention that the error was a ValueError:") print self.hand[0] - print "Hand logged to hand-errors.txt" + print _("Hand logged to hand-errors.txt") logfile = open('hand-errors.txt', 'a') for s in self.hand: logfile.write(str(s) + "\n") @@ -502,4 +513,4 @@ class Importer: logfile.close() if __name__ == "__main__": - print "CLI for fpdb_import is now available as CliFpdb.py" + print _("CLI for fpdb_import is now available as CliFpdb.py") From 41621c5610a209bbebb1455604c7440b730c0782 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 03:05:27 +0200 Subject: [PATCH 222/301] gettextify FulltiltToFpdb.py --- pyfpdb/FulltiltToFpdb.py | 44 +++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/pyfpdb/FulltiltToFpdb.py b/pyfpdb/FulltiltToFpdb.py index 179824ac..11fb8623 100755 --- a/pyfpdb/FulltiltToFpdb.py +++ b/pyfpdb/FulltiltToFpdb.py @@ -18,6 +18,18 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ######################################################################## +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + import logging from HandHistoryConverter import * #import TourneySummary @@ -203,7 +215,7 @@ class Fulltilt(HandHistoryConverter): def readHandInfo(self, hand): m = self.re_HandInfo.search(hand.handText) if m is None: - logging.info("Didn't match re_HandInfo") + logging.info(_("Didn't match re_HandInfo")) logging.info(hand.handText) return None hand.handid = m.group('HID') @@ -333,7 +345,7 @@ class Fulltilt(HandHistoryConverter): hand.addBlind(a.group('PNAME'), 'small & big blinds', a.group('SBBB')) def readAntes(self, hand): - logging.debug("reading antes") + logging.debug(_("reading antes")) m = self.re_Antes.finditer(hand.handText) for player in m: logging.debug("hand.addAnte(%s,%s)" %(player.group('PNAME'), player.group('ANTE'))) @@ -343,10 +355,10 @@ class Fulltilt(HandHistoryConverter): def readBringIn(self, hand): m = self.re_BringIn.search(hand.handText,re.DOTALL) if m: - logging.debug("Player bringing in: %s for %s" %(m.group('PNAME'), m.group('BRINGIN'))) + logging.debug(_("Player bringing in: %s for %s") %(m.group('PNAME'), m.group('BRINGIN'))) hand.addBringIn(m.group('PNAME'), m.group('BRINGIN')) else: - logging.warning("No bringin found, handid =%s" % hand.handid) + logging.warning(_("No bringin found, handid =%s") % hand.handid) def readButton(self, hand): hand.buttonpos = int(self.re_Button.search(hand.handText).group('BUTTON')) @@ -403,7 +415,7 @@ class Fulltilt(HandHistoryConverter): elif action.group('ATYPE') == ' checks': hand.addCheck( street, action.group('PNAME')) else: - print "FullTilt: DEBUG: unimplemented readAction: '%s' '%s'" %(action.group('PNAME'),action.group('ATYPE'),) + print _("FullTilt: DEBUG: unimplemented readAction: '%s' '%s'") %(action.group('PNAME'),action.group('ATYPE'),) def readShowdownActions(self, hand): @@ -479,7 +491,7 @@ class Fulltilt(HandHistoryConverter): m = self.re_TourneyInfo.search(tourneyText) if not m: - log.info( "determineTourneyType : Parsing NOK" ) + log.info(_("determineTourneyType : Parsing NOK")) return False mg = m.groupdict() #print mg @@ -537,7 +549,7 @@ class Fulltilt(HandHistoryConverter): if mg['TOURNO'] is not None: tourney.tourNo = mg['TOURNO'] else: - log.info( "Unable to get a valid Tournament ID -- File rejected" ) + log.info(_("Unable to get a valid Tournament ID -- File rejected")) return False if tourney.isMatrix: if mg['MATCHNO'] is not None: @@ -568,18 +580,18 @@ class Fulltilt(HandHistoryConverter): tourney.buyin = 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) else : if 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) != tourney.buyin: - log.error( "Conflict between buyins read in topline (%s) and in BuyIn field (%s)" % (tourney.buyin, 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN']))) ) + log.error(_("Conflict between buyins read in topline (%s) and in BuyIn field (%s)") % (tourney.buyin, 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN']))) ) tourney.subTourneyBuyin = 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) if mg['FEE'] is not None: if tourney.fee is None: tourney.fee = 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) else : if 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) != tourney.fee: - log.error( "Conflict between fees read in topline (%s) and in BuyIn field (%s)" % (tourney.fee, 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE']))) ) + log.error(_("Conflict between fees read in topline (%s) and in BuyIn field (%s)") % (tourney.fee, 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE']))) ) tourney.subTourneyFee = 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) if tourney.buyin is None: - log.info( "Unable to affect a buyin to this tournament : assume it's a freeroll" ) + log.info(_("Unable to affect a buyin to this tournament : assume it's a freeroll")) tourney.buyin = 0 tourney.fee = 0 else: @@ -680,7 +692,7 @@ class Fulltilt(HandHistoryConverter): tourney.addPlayer(rank, a.group('PNAME'), winnings, "USD", 0, 0, 0) #TODO: make it store actual winnings currency else: - print "FullTilt: Player finishing stats unreadable : %s" % a + print _("FullTilt: Player finishing stats unreadable : %s") % a # Find Hero n = self.re_TourneyHeroFinishingP.search(playersText) @@ -689,17 +701,17 @@ class Fulltilt(HandHistoryConverter): tourney.hero = heroName # Is this really useful ? if heroName not in tourney.ranks: - print "FullTilt:", heroName, "not found in tourney.ranks ..." + print (_("FullTilt: %s not found in tourney.ranks ...") % heroName) elif (tourney.ranks[heroName] != Decimal(n.group('HERO_FINISHING_POS'))): - print "FullTilt: Bad parsing : finish position incoherent : %s / %s" % (tourney.ranks[heroName], n.group('HERO_FINISHING_POS')) + print _("FullTilt: Bad parsing : finish position incoherent : %s / %s") % (tourney.ranks[heroName], n.group('HERO_FINISHING_POS')) return True if __name__ == "__main__": parser = OptionParser() - parser.add_option("-i", "--input", dest="ipath", help="parse input hand history", default="regression-test-files/fulltilt/razz/FT20090223 Danville - $0.50-$1 Ante $0.10 - Limit Razz.txt") - parser.add_option("-o", "--output", dest="opath", help="output translation to", default="-") - parser.add_option("-f", "--follow", dest="follow", help="follow (tail -f) the input", action="store_true", default=False) + parser.add_option("-i", "--input", dest="ipath", help=_("parse input hand history"), default="regression-test-files/fulltilt/razz/FT20090223 Danville - $0.50-$1 Ante $0.10 - Limit Razz.txt") + parser.add_option("-o", "--output", dest="opath", help=_("output translation to"), default="-") + parser.add_option("-f", "--follow", dest="follow", help=_("follow (tail -f) the input"), action="store_true", default=False) parser.add_option("-q", "--quiet", action="store_const", const=logging.CRITICAL, dest="verbosity", default=logging.INFO) parser.add_option("-v", "--verbose", From d2553a8b5864d7b7d8a7f7af375b00ce5c712768 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 03:28:17 +0200 Subject: [PATCH 223/301] gettextify PartyPokerToFpdb.py --- pyfpdb/PartyPokerToFpdb.py | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/pyfpdb/PartyPokerToFpdb.py b/pyfpdb/PartyPokerToFpdb.py index 2c3c4bd2..2dab4569 100755 --- a/pyfpdb/PartyPokerToFpdb.py +++ b/pyfpdb/PartyPokerToFpdb.py @@ -21,6 +21,18 @@ import sys from collections import defaultdict +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + from Exceptions import FpdbParseError from HandHistoryConverter import * @@ -200,16 +212,16 @@ class PartyPoker(HandHistoryConverter): for expectedField in ['LIMIT', 'GAME']: if mg[expectedField] is None: - raise FpdbParseError( "Cannot fetch field '%s'" % expectedField) + raise FpdbParseError(_("Cannot fetch field '%s'") % expectedField) try: info['limitType'] = limits[mg['LIMIT'].strip()] except: - raise FpdbParseError("Unknown limit '%s'" % mg['LIMIT']) + raise FpdbParseError(_("Unknown limit '%s'") % mg['LIMIT']) try: (info['base'], info['category']) = games[mg['GAME']] except: - raise FpdbParseError("Unknown game type '%s'" % mg['GAME']) + raise FpdbParseError(_("Unknown game type '%s'") % mg['GAME']) if 'TOURNO' in mg: info['type'] = 'tour' @@ -243,17 +255,17 @@ class PartyPoker(HandHistoryConverter): try: info.update(self.re_Hid.search(hand.handText).groupdict()) except: - raise FpdbParseError("Cannot read HID for current hand") + raise FpdbParseError(_("Cannot read HID for current hand")) try: info.update(self.re_HandInfo.search(hand.handText,re.DOTALL).groupdict()) except: - raise FpdbParseError("Cannot read Handinfo for current hand", hid = info['HID']) + raise FpdbParseError(_("Cannot read Handinfo for current hand"), hid = info['HID']) try: info.update(self._getGameType(hand.handText).groupdict()) except: - raise FpdbParseError("Cannot read GameType for current hand", hid = info['HID']) + raise FpdbParseError(_("Cannot read GameType for current hand"), hid = info['HID']) m = self.re_CountedSeats.search(hand.handText) @@ -336,7 +348,7 @@ class PartyPoker(HandHistoryConverter): if m: hand.buttonpos = int(m.group('BUTTON')) else: - log.info('readButton: not found') + log.info(_('readButton: not found')) def readPlayerStacks(self, hand): log.debug("readPlayerStacks") @@ -464,7 +476,7 @@ class PartyPoker(HandHistoryConverter): hand.addCheck( street, playerName ) else: raise FpdbParseError( - "Unimplemented readAction: '%s' '%s'" % (playerName,actionType,), + _("Unimplemented readAction: '%s' '%s'") % (playerName,actionType,), hid = hand.hid, ) def readShowdownActions(self, hand): @@ -507,9 +519,9 @@ def renderCards(string): if __name__ == "__main__": parser = OptionParser() - parser.add_option("-i", "--input", dest="ipath", help="parse input hand history") - parser.add_option("-o", "--output", dest="opath", help="output translation to", default="-") - parser.add_option("-f", "--follow", dest="follow", help="follow (tail -f) the input", action="store_true", default=False) + parser.add_option("-i", "--input", dest="ipath", help=_("parse input hand history")) + parser.add_option("-o", "--output", dest="opath", help=_("output translation to"), default="-") + parser.add_option("-f", "--follow", dest="follow", help=_("follow (tail -f) the input"), action="store_true", default=False) parser.add_option("-q", "--quiet", action="store_const", const=logging.CRITICAL, dest="verbosity", default=logging.INFO) parser.add_option("-v", "--verbose", From 80bee2496919c97ca76351fba196b764a16804ba Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 03:56:36 +0200 Subject: [PATCH 224/301] insignificant bracketing change --- pyfpdb/FulltiltToFpdb.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/FulltiltToFpdb.py b/pyfpdb/FulltiltToFpdb.py index 11fb8623..75b3d560 100755 --- a/pyfpdb/FulltiltToFpdb.py +++ b/pyfpdb/FulltiltToFpdb.py @@ -692,7 +692,7 @@ class Fulltilt(HandHistoryConverter): tourney.addPlayer(rank, a.group('PNAME'), winnings, "USD", 0, 0, 0) #TODO: make it store actual winnings currency else: - print _("FullTilt: Player finishing stats unreadable : %s") % a + print (_("FullTilt: Player finishing stats unreadable : %s") % a) # Find Hero n = self.re_TourneyHeroFinishingP.search(playersText) @@ -703,7 +703,7 @@ class Fulltilt(HandHistoryConverter): if heroName not in tourney.ranks: print (_("FullTilt: %s not found in tourney.ranks ...") % heroName) elif (tourney.ranks[heroName] != Decimal(n.group('HERO_FINISHING_POS'))): - print _("FullTilt: Bad parsing : finish position incoherent : %s / %s") % (tourney.ranks[heroName], n.group('HERO_FINISHING_POS')) + print (_("FullTilt: Bad parsing : finish position incoherent : %s / %s") % (tourney.ranks[heroName], n.group('HERO_FINISHING_POS'))) return True From a1f079e4479ed7865720c0adc7e4033625943635 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 04:14:25 +0200 Subject: [PATCH 225/301] Revert "gettextify FulltiltToFpdb.py" This reverts commit 41621c5610a209bbebb1455604c7440b730c0782. Conflicts: pyfpdb/FulltiltToFpdb.py --- pyfpdb/FulltiltToFpdb.py | 44 +++++++++++++++------------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/pyfpdb/FulltiltToFpdb.py b/pyfpdb/FulltiltToFpdb.py index 75b3d560..179824ac 100755 --- a/pyfpdb/FulltiltToFpdb.py +++ b/pyfpdb/FulltiltToFpdb.py @@ -18,18 +18,6 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ######################################################################## -import locale -lang=locale.getdefaultlocale()[0][0:2] -if lang=="en": - def _(string): return string -else: - import gettext - try: - trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) - trans.install() - except IOError: - def _(string): return string - import logging from HandHistoryConverter import * #import TourneySummary @@ -215,7 +203,7 @@ class Fulltilt(HandHistoryConverter): def readHandInfo(self, hand): m = self.re_HandInfo.search(hand.handText) if m is None: - logging.info(_("Didn't match re_HandInfo")) + logging.info("Didn't match re_HandInfo") logging.info(hand.handText) return None hand.handid = m.group('HID') @@ -345,7 +333,7 @@ class Fulltilt(HandHistoryConverter): hand.addBlind(a.group('PNAME'), 'small & big blinds', a.group('SBBB')) def readAntes(self, hand): - logging.debug(_("reading antes")) + logging.debug("reading antes") m = self.re_Antes.finditer(hand.handText) for player in m: logging.debug("hand.addAnte(%s,%s)" %(player.group('PNAME'), player.group('ANTE'))) @@ -355,10 +343,10 @@ class Fulltilt(HandHistoryConverter): def readBringIn(self, hand): m = self.re_BringIn.search(hand.handText,re.DOTALL) if m: - logging.debug(_("Player bringing in: %s for %s") %(m.group('PNAME'), m.group('BRINGIN'))) + logging.debug("Player bringing in: %s for %s" %(m.group('PNAME'), m.group('BRINGIN'))) hand.addBringIn(m.group('PNAME'), m.group('BRINGIN')) else: - logging.warning(_("No bringin found, handid =%s") % hand.handid) + logging.warning("No bringin found, handid =%s" % hand.handid) def readButton(self, hand): hand.buttonpos = int(self.re_Button.search(hand.handText).group('BUTTON')) @@ -415,7 +403,7 @@ class Fulltilt(HandHistoryConverter): elif action.group('ATYPE') == ' checks': hand.addCheck( street, action.group('PNAME')) else: - print _("FullTilt: DEBUG: unimplemented readAction: '%s' '%s'") %(action.group('PNAME'),action.group('ATYPE'),) + print "FullTilt: DEBUG: unimplemented readAction: '%s' '%s'" %(action.group('PNAME'),action.group('ATYPE'),) def readShowdownActions(self, hand): @@ -491,7 +479,7 @@ class Fulltilt(HandHistoryConverter): m = self.re_TourneyInfo.search(tourneyText) if not m: - log.info(_("determineTourneyType : Parsing NOK")) + log.info( "determineTourneyType : Parsing NOK" ) return False mg = m.groupdict() #print mg @@ -549,7 +537,7 @@ class Fulltilt(HandHistoryConverter): if mg['TOURNO'] is not None: tourney.tourNo = mg['TOURNO'] else: - log.info(_("Unable to get a valid Tournament ID -- File rejected")) + log.info( "Unable to get a valid Tournament ID -- File rejected" ) return False if tourney.isMatrix: if mg['MATCHNO'] is not None: @@ -580,18 +568,18 @@ class Fulltilt(HandHistoryConverter): tourney.buyin = 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) else : if 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) != tourney.buyin: - log.error(_("Conflict between buyins read in topline (%s) and in BuyIn field (%s)") % (tourney.buyin, 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN']))) ) + log.error( "Conflict between buyins read in topline (%s) and in BuyIn field (%s)" % (tourney.buyin, 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN']))) ) tourney.subTourneyBuyin = 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) if mg['FEE'] is not None: if tourney.fee is None: tourney.fee = 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) else : if 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) != tourney.fee: - log.error(_("Conflict between fees read in topline (%s) and in BuyIn field (%s)") % (tourney.fee, 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE']))) ) + log.error( "Conflict between fees read in topline (%s) and in BuyIn field (%s)" % (tourney.fee, 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE']))) ) tourney.subTourneyFee = 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) if tourney.buyin is None: - log.info(_("Unable to affect a buyin to this tournament : assume it's a freeroll")) + log.info( "Unable to affect a buyin to this tournament : assume it's a freeroll" ) tourney.buyin = 0 tourney.fee = 0 else: @@ -692,7 +680,7 @@ class Fulltilt(HandHistoryConverter): tourney.addPlayer(rank, a.group('PNAME'), winnings, "USD", 0, 0, 0) #TODO: make it store actual winnings currency else: - print (_("FullTilt: Player finishing stats unreadable : %s") % a) + print "FullTilt: Player finishing stats unreadable : %s" % a # Find Hero n = self.re_TourneyHeroFinishingP.search(playersText) @@ -701,17 +689,17 @@ class Fulltilt(HandHistoryConverter): tourney.hero = heroName # Is this really useful ? if heroName not in tourney.ranks: - print (_("FullTilt: %s not found in tourney.ranks ...") % heroName) + print "FullTilt:", heroName, "not found in tourney.ranks ..." elif (tourney.ranks[heroName] != Decimal(n.group('HERO_FINISHING_POS'))): - print (_("FullTilt: Bad parsing : finish position incoherent : %s / %s") % (tourney.ranks[heroName], n.group('HERO_FINISHING_POS'))) + print "FullTilt: Bad parsing : finish position incoherent : %s / %s" % (tourney.ranks[heroName], n.group('HERO_FINISHING_POS')) return True if __name__ == "__main__": parser = OptionParser() - parser.add_option("-i", "--input", dest="ipath", help=_("parse input hand history"), default="regression-test-files/fulltilt/razz/FT20090223 Danville - $0.50-$1 Ante $0.10 - Limit Razz.txt") - parser.add_option("-o", "--output", dest="opath", help=_("output translation to"), default="-") - parser.add_option("-f", "--follow", dest="follow", help=_("follow (tail -f) the input"), action="store_true", default=False) + parser.add_option("-i", "--input", dest="ipath", help="parse input hand history", default="regression-test-files/fulltilt/razz/FT20090223 Danville - $0.50-$1 Ante $0.10 - Limit Razz.txt") + parser.add_option("-o", "--output", dest="opath", help="output translation to", default="-") + parser.add_option("-f", "--follow", dest="follow", help="follow (tail -f) the input", action="store_true", default=False) parser.add_option("-q", "--quiet", action="store_const", const=logging.CRITICAL, dest="verbosity", default=logging.INFO) parser.add_option("-v", "--verbose", From 69564d2b6b22ff754a599620e05f2be7c1407a1b Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 04:22:51 +0200 Subject: [PATCH 226/301] gettextify GuiRingPlayerStats.py --- pyfpdb/GuiRingPlayerStats.py | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/pyfpdb/GuiRingPlayerStats.py b/pyfpdb/GuiRingPlayerStats.py index 67bfd246..081e1b70 100644 --- a/pyfpdb/GuiRingPlayerStats.py +++ b/pyfpdb/GuiRingPlayerStats.py @@ -24,6 +24,18 @@ import os import sys from time import time, strftime +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + import Card import fpdb_import import Database @@ -237,13 +249,13 @@ class GuiRingPlayerStats (GuiPlayerStats.GuiPlayerStats): if not sitenos: #Should probably pop up here. - print "No sites selected - defaulting to PokerStars" + print _("No sites selected - defaulting to PokerStars") sitenos = [2] if not playerids: - print "No player ids found" + print _("No player ids found") return if not limits: - print "No limits found" + print _("No limits found") return self.createStatsTable(vbox, playerids, sitenos, limits, type, seats, groups, dates, games) @@ -308,7 +320,7 @@ class GuiRingPlayerStats (GuiPlayerStats.GuiPlayerStats): self.stats_vbox.set_position(self.top_pane_height + self.height_inc) self.db.rollback() - print "Stats page displayed in %4.2f seconds" % (time() - startTime) + print (_("Stats page displayed in %4.2f seconds") % (time() - startTime)) #end def createStatsTable def reset_style_render_func(self, treeviewcolumn, cell, model, iter): @@ -355,7 +367,7 @@ class GuiRingPlayerStats (GuiPlayerStats.GuiPlayerStats): #print "n =", n, "iter1[n] =", self.liststore[grid].get_value(iter1,n), "iter2[n] =", self.liststore[grid].get_value(iter2,n), "ret =", ret except: err = traceback.extract_tb(sys.exc_info()[2]) - print "***sortnums error: " + str(sys.exc_info()[1]) + print _("***sortnums error: ") + str(sys.exc_info()[1]) print "\n".join( [e[0]+':'+str(e[1])+" "+e[2] for e in err] ) return(ret) @@ -377,7 +389,7 @@ class GuiRingPlayerStats (GuiPlayerStats.GuiPlayerStats): # to turn indicator off for other cols except: err = traceback.extract_tb(sys.exc_info()[2]) - print "***sortcols error: " + str(sys.exc_info()[1]) + print _("***sortcols error: ") + str(sys.exc_info()[1]) print "\n".join( [e[0]+':'+str(e[1])+" "+e[2] for e in err] ) #end def sortcols @@ -668,7 +680,7 @@ class GuiRingPlayerStats (GuiPlayerStats.GuiPlayerStats): #end def refineQuery def showDetailFilter(self, widget, data): - detailDialog = gtk.Dialog(title="Detailed Filters", parent=self.main_window + detailDialog = gtk.Dialog(title=_("Detailed Filters"), parent=self.main_window ,flags=gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT ,buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) @@ -677,7 +689,7 @@ class GuiRingPlayerStats (GuiPlayerStats.GuiPlayerStats): detailDialog.vbox.pack_start(handbox, False, False, 0) handbox.show() - label = gtk.Label("Hand Filters:") + label = gtk.Label(_("Hand Filters:")) handbox.add(label) label.show() @@ -690,8 +702,8 @@ class GuiRingPlayerStats (GuiPlayerStats.GuiPlayerStats): cb = gtk.CheckButton() lbl_from = gtk.Label(htest[1]) lbl_from.set_alignment(xalign=0.0, yalign=0.5) - lbl_tween = gtk.Label('between') - lbl_to = gtk.Label('and') + lbl_tween = gtk.Label(_('between')) + lbl_to = gtk.Label(_('and')) adj1 = gtk.Adjustment(value=htest[2], lower=0, upper=10, step_incr=1, page_incr=1, page_size=0) sb1 = gtk.SpinButton(adjustment=adj1, climb_rate=0.0, digits=0) adj2 = gtk.Adjustment(value=htest[3], lower=2, upper=10, step_incr=1, page_incr=1, page_size=0) From f6dfbc072fe80504af23e5f9e564e9e8007dd1ef Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 05:45:06 +0200 Subject: [PATCH 227/301] add list of dependencies' py27 windows installer availability/link --- packaging/windows/py27-links.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 packaging/windows/py27-links.txt diff --git a/packaging/windows/py27-links.txt b/packaging/windows/py27-links.txt new file mode 100644 index 00000000..8005ec8d --- /dev/null +++ b/packaging/windows/py27-links.txt @@ -0,0 +1,9 @@ +Python 2.7 ... http://python.org/ftp/python/2.7/python-2.7.msi +pywin 214 ... https://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/pywin32-214.win32-py2.7.exe/download +matplotlib X ... not available as py27 as of 16aug2010: https://sourceforge.net/projects/matplotlib/files/matplotlib/ +pygtk X ... not available as py27 as of 16aug2010: http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/ +pycairo X ... not available as py27 as of 16aug2010: http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/ +pyGobject X ... not available as py27 as of 16aug2010: http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/ +py2exe 0.6.9 ... https://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/py2exe-0.6.9.win32-py2.7.exe/download +psycopg2 ... http://www.stickpeople.com/projects/python/win-psycopg/psycopg2-2.2.2.win32-py2.7-pg8.4.4-release.exe + From c2031368775691662bcbb9c4febebece45b3bb6c Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 07:49:24 +0200 Subject: [PATCH 228/301] update english po --- pyfpdb/locale/fpdb-en_GB.po | 1760 +++++++++++++++++++++++------------ 1 file changed, 1161 insertions(+), 599 deletions(-) diff --git a/pyfpdb/locale/fpdb-en_GB.po b/pyfpdb/locale/fpdb-en_GB.po index 88fd28f9..c213d1dd 100644 --- a/pyfpdb/locale/fpdb-en_GB.po +++ b/pyfpdb/locale/fpdb-en_GB.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2010-08-15 20:33+CEST\n" +"POT-Creation-Date: 2010-08-16 07:17+CEST\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,43 +15,43 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" -#: Anonymise.py:47 +#: Anonymise.py:55 msgid "Could not find file %s" msgstr "" -#: Anonymise.py:53 +#: Anonymise.py:61 msgid "Output being written to" msgstr "" -#: BetfairToFpdb.py:75 +#: BetfairToFpdb.py:83 msgid "GameInfo regex did not match" msgstr "" -#: BetfairToFpdb.py:106 +#: BetfairToFpdb.py:114 msgid "Didn't match re_HandInfo" msgstr "" -#: BetfairToFpdb.py:162 +#: BetfairToFpdb.py:170 msgid "No bringin found" msgstr "" -#: BetfairToFpdb.py:198 PokerStarsToFpdb.py:423 +#: BetfairToFpdb.py:206 PokerStarsToFpdb.py:440 msgid "DEBUG: unimplemented readAction: '%s' '%s'" msgstr "" -#: BetfairToFpdb.py:221 PokerStarsToFpdb.py:450 +#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:522 PokerStarsToFpdb.py:467 msgid "parse input hand history" msgstr "" -#: BetfairToFpdb.py:222 PokerStarsToFpdb.py:451 +#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:523 PokerStarsToFpdb.py:468 msgid "output translation to" msgstr "" -#: BetfairToFpdb.py:223 PokerStarsToFpdb.py:452 +#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:524 PokerStarsToFpdb.py:469 msgid "follow (tail -f) the input" msgstr "" -#: Card.py:159 +#: Card.py:167 msgid "fpdb card encoding(same as pokersource)" msgstr "" @@ -65,507 +65,807 @@ msgid "" "Could not encode: \"%s\"\n" msgstr "" -#: Configuration.py:98 +#: Configuration.py:110 msgid "" "No %s found\n" " in %s\n" " or %s\n" msgstr "" -#: Configuration.py:99 +#: Configuration.py:111 msgid "" "Config file has been created at %s.\n" msgstr "" -#: Configuration.py:104 Configuration.py:105 +#: Configuration.py:116 Configuration.py:117 msgid "" "Error copying .example file, cannot fall back. Exiting.\n" msgstr "" -#: Configuration.py:109 Configuration.py:110 +#: Configuration.py:121 Configuration.py:122 msgid "" "No %s found, cannot fall back. Exiting.\n" msgstr "" -#: Configuration.py:140 +#: Configuration.py:152 msgid "Default logger initialised for " msgstr "" -#: Configuration.py:141 +#: Configuration.py:153 msgid "Default logger intialised for " msgstr "" -#: Configuration.py:152 +#: Configuration.py:164 Database.py:431 Database.py:432 msgid "Creating directory: '%s'" msgstr "" -#: Configuration.py:178 +#: Configuration.py:190 msgid "Default encoding set to US-ASCII, defaulting to CP1252 instead -- If you're not on a Mac, please report this problem." msgstr "" -#: Configuration.py:261 +#: Configuration.py:273 msgid "Loading site" msgstr "" -#: Configuration.py:499 +#: Configuration.py:511 msgid "config.general: adding %s = %s" msgstr "" -#: Configuration.py:532 Configuration.py:533 +#: Configuration.py:544 Configuration.py:545 msgid "bad number in xalignment was ignored" msgstr "" -#: Configuration.py:586 Configuration.py:587 +#: Configuration.py:598 Configuration.py:599 msgid "Configuration file %s not found. Using defaults." msgstr "" -#: Configuration.py:603 +#: Configuration.py:615 msgid "Reading configuration file %s" msgstr "" -#: Configuration.py:604 +#: Configuration.py:616 msgid "" "\n" "Reading configuration file %s\n" msgstr "" -#: Configuration.py:609 +#: Configuration.py:621 msgid "Error parsing %s. See error log file." msgstr "" -#: Filters.py:51 +#: Database.py:74 +msgid "Not using sqlalchemy connection pool." +msgstr "" + +#: Database.py:81 +msgid "Not using numpy to define variance in sqlite." +msgstr "" + +#: Database.py:246 +msgid "Creating Database instance, sql = %s" +msgstr "" + +#: Database.py:382 +msgid "*** WARNING UNKNOWN MYSQL ERROR:" +msgstr "" + +#: Database.py:436 +msgid "Connecting to SQLite: %(database)s" +msgstr "" + +#: Database.py:448 +msgid "Some database functions will not work without NumPy support" +msgstr "" + +#: Database.py:469 +msgid "outdated or too new database version (%s) - please recreate tables" +msgstr "" + +#: Database.py:475 Database.py:476 +msgid "Failed to read settings table - recreating tables" +msgstr "" + +#: Database.py:480 Database.py:481 +msgid "Failed to read settings table - please recreate tables" +msgstr "" + +#: Database.py:499 +msgid "commit finished ok, i = " +msgstr "" + +#: Database.py:502 +msgid "commit %s failed: info=%s value=%s" +msgstr "" + +#: Database.py:506 +msgid "commit failed" +msgstr "" + +#: Database.py:675 Database.py:704 +msgid "*** Database Error: " +msgstr "" + +#: Database.py:701 +msgid "Database: date n hands ago = " +msgstr "" + +#: Database.py:858 +msgid "ERROR: query %s result does not have player_id as first column" +msgstr "" + +#: Database.py:900 +msgid "getLastInsertId(): problem fetching insert_id? ret=%d" +msgstr "" + +#: Database.py:912 +msgid "getLastInsertId(%s): problem fetching lastval? row=%d" +msgstr "" + +#: Database.py:919 +msgid "getLastInsertId(): unknown backend: %d" +msgstr "" + +#: Database.py:924 +msgid "*** Database get_last_insert_id error: " +msgstr "" + +#: Database.py:978 Database.py:1398 +msgid "warning: drop pg fk %s_%s_fkey failed: %s, continuing ..." +msgstr "" + +#: Database.py:982 Database.py:1402 +msgid "warning: constraint %s_%s_fkey not dropped: %s, continuing ..." +msgstr "" + +#: Database.py:990 Database.py:1276 +msgid "dropping mysql index " +msgstr "" + +#: Database.py:996 Database.py:1281 Database.py:1289 Database.py:1296 +msgid " drop index failed: " +msgstr "" + +#: Database.py:1001 Database.py:1283 +msgid "dropping pg index " +msgstr "" + +#: Database.py:1014 +msgid "warning: drop index %s_%s_idx failed: %s, continuing ..." +msgstr "" + +#: Database.py:1018 +msgid "warning: index %s_%s_idx not dropped %s, continuing ..." +msgstr "" + +#: Database.py:1058 Database.py:1066 Database.py:1329 Database.py:1337 +msgid "creating foreign key " +msgstr "" + +#: Database.py:1064 Database.py:1085 Database.py:1335 +msgid " create foreign key failed: " +msgstr "" + +#: Database.py:1073 Database.py:1344 +msgid " create foreign key failed: " +msgstr "" + +#: Database.py:1080 +msgid "creating mysql index " +msgstr "" + +#: Database.py:1089 +msgid "creating pg index " +msgstr "" + +#: Database.py:1094 +msgid " create index failed: " +msgstr "" + +#: Database.py:1134 Database.py:1135 +msgid "Finished recreating tables" +msgstr "" + +#: Database.py:1172 +msgid "***Error creating tables: " +msgstr "" + +#: Database.py:1182 +msgid "*** Error unable to get databasecursor" +msgstr "" + +#: Database.py:1194 Database.py:1205 Database.py:1215 Database.py:1222 +msgid "***Error dropping tables: " +msgstr "" + +#: Database.py:1220 +msgid "*** Error in committing table drop" +msgstr "" + +#: Database.py:1234 Database.py:1235 +msgid "Creating mysql index %s %s" +msgstr "" + +#: Database.py:1240 Database.py:1249 +msgid " create index failed: " +msgstr "" + +#: Database.py:1243 Database.py:1244 +msgid "Creating pgsql index %s %s" +msgstr "" + +#: Database.py:1251 Database.py:1252 +msgid "Creating sqlite index %s %s" +msgstr "" + +#: Database.py:1257 +msgid "Create index failed: " +msgstr "" + +#: Database.py:1259 +msgid "Unknown database: MySQL, Postgres and SQLite supported" +msgstr "" + +#: Database.py:1264 +msgid "Error creating indexes: " +msgstr "" + +#: Database.py:1291 +msgid "Dropping sqlite index " +msgstr "" + +#: Database.py:1298 +msgid "Fpdb only supports MySQL, Postgres and SQLITE, what are you trying to use?" +msgstr "" + +#: Database.py:1312 Database.py:1352 +msgid " set_isolation_level failed: " +msgstr "" + +#: Database.py:1346 Database.py:1405 +msgid "Only MySQL and Postgres supported so far" +msgstr "" + +#: Database.py:1376 +msgid "dropping mysql foreign key" +msgstr "" + +#: Database.py:1380 +msgid " drop failed: " +msgstr "" + +#: Database.py:1383 +msgid "dropping pg foreign key" +msgstr "" + +#: Database.py:1395 +msgid "dropped pg foreign key %s_%s_fkey, continuing ..." +msgstr "" + +#: Database.py:1496 +msgid "Rebuild hudcache took %.1f seconds" +msgstr "" + +#: Database.py:1499 Database.py:1532 +msgid "Error rebuilding hudcache:" +msgstr "" + +#: Database.py:1544 Database.py:1550 +msgid "Error during analyze:" +msgstr "" + +#: Database.py:1554 +msgid "Analyze took %.1f seconds" +msgstr "" + +#: Database.py:1564 Database.py:1570 +msgid "Error during vacuum:" +msgstr "" + +#: Database.py:1574 +msgid "Vacuum took %.1f seconds" +msgstr "" + +#: Database.py:1586 +msgid "Error during lock_for_insert:" +msgstr "" + +#: Database.py:1959 +msgid "queue empty too long - writer stopping ..." +msgstr "" + +#: Database.py:1962 +msgid "writer stopping, error reading queue: " +msgstr "" + +#: Database.py:1987 +msgid "deadlock detected - trying again ..." +msgstr "" + +#: Database.py:1992 +msgid "too many deadlocks - failed to store hand " +msgstr "" + +#: Database.py:1996 +msgid "***Error storing hand: " +msgstr "" + +#: Database.py:2006 +msgid "db writer finished: stored %d hands (%d fails) in %.1f seconds" +msgstr "" + +#: Database.py:2016 +msgid "***Error sending finish: " +msgstr "" + +#: Database.py:2096 +msgid "invalid source in Database.createOrUpdateTourney" +msgstr "" + +#: Database.py:2109 +msgid "invalid source in Database.createOrUpdateTourneysPlayers" +msgstr "" + +#: Database.py:2235 +msgid "HandToWrite.init error: " +msgstr "" + +#: Database.py:2285 +msgid "HandToWrite.set_all error: " +msgstr "" + +#: Database.py:2316 +msgid "nutOmatic is id_player = %d" +msgstr "" + +#: Database.py:2324 +msgid "query plan: " +msgstr "" + +#: Database.py:2333 +msgid "cards =" +msgstr "" + +#: Database.py:2336 +msgid "get_stats took: %4.3f seconds" +msgstr "" + +#: Database.py:2338 Tables.py:448 +msgid "press enter to continue" +msgstr "" + +#: Filters.py:62 msgid "All" msgstr "" -#: Filters.py:51 +#: Filters.py:62 msgid "None" msgstr "" -#: Filters.py:51 +#: Filters.py:62 msgid "Show _Limits" msgstr "" -#: Filters.py:52 -msgid "And:" -msgstr "" - -#: Filters.py:52 -msgid "Between:" -msgstr "" - -#: Filters.py:52 +#: Filters.py:63 msgid "Show Number of _Players" msgstr "" -#: Filters.py:53 +#: Filters.py:63 TourneyFilters.py:60 +msgid "And:" +msgstr "" + +#: Filters.py:63 TourneyFilters.py:60 +msgid "Between:" +msgstr "" + +#: Filters.py:64 msgid "Games:" msgstr "" -#: Filters.py:53 +#: Filters.py:64 TourneyFilters.py:59 msgid "Hero:" msgstr "" -#: Filters.py:53 +#: Filters.py:64 TourneyFilters.py:59 msgid "Sites:" msgstr "" -#: Filters.py:54 +#: Filters.py:65 msgid "Limits:" msgstr "" -#: Filters.py:54 +#: Filters.py:65 TourneyFilters.py:59 msgid "Number of Players:" msgstr "" -#: Filters.py:55 +#: Filters.py:66 msgid "Grouping:" msgstr "" -#: Filters.py:55 +#: Filters.py:66 msgid "Show Position Stats:" msgstr "" -#: Filters.py:56 +#: Filters.py:67 TourneyFilters.py:60 msgid "Date:" msgstr "" -#: Filters.py:57 +#: Filters.py:68 msgid "All Players" msgstr "" -#: Filters.py:58 +#: Filters.py:69 msgid "Ring" msgstr "" -#: Filters.py:58 +#: Filters.py:69 msgid "Tourney" msgstr "" -#: Filters.py:92 +#: Filters.py:103 TourneyFilters.py:116 msgid "Either 0 or more than one site matched (%s) - EEK" msgstr "" -#: Filters.py:302 +#: Filters.py:313 msgid "%s was toggled %s" msgstr "" -#: Filters.py:302 +#: Filters.py:313 msgid "OFF" msgstr "" -#: Filters.py:302 +#: Filters.py:313 msgid "ON" msgstr "" -#: Filters.py:383 +#: Filters.py:394 msgid "self.sites[%s] set to %s" msgstr "" -#: Filters.py:389 +#: Filters.py:400 msgid "self.games[%s] set to %s" msgstr "" -#: Filters.py:395 +#: Filters.py:406 msgid "self.limit[%s] set to %s" msgstr "" -#: Filters.py:532 +#: Filters.py:543 msgid "self.seats[%s] set to %s" msgstr "" -#: Filters.py:538 +#: Filters.py:549 msgid "self.groups[%s] set to %s" msgstr "" -#: Filters.py:571 +#: Filters.py:582 msgid "Min # Hands:" msgstr "" -#: Filters.py:637 +#: Filters.py:648 msgid "INFO: No tourney types returned from database" msgstr "" -#: Filters.py:638 +#: Filters.py:649 msgid "No tourney types returned from database" msgstr "" -#: Filters.py:664 Filters.py:753 +#: Filters.py:675 Filters.py:764 msgid "INFO: No games returned from database" msgstr "" -#: Filters.py:665 Filters.py:754 +#: Filters.py:676 Filters.py:765 msgid "No games returned from database" msgstr "" -#: Filters.py:902 +#: Filters.py:913 msgid " Clear Dates " msgstr "" -#: Filters.py:929 fpdb.pyw:719 +#: Filters.py:940 fpdb.pyw:721 msgid "Pick a date" msgstr "" -#: Filters.py:935 fpdb.pyw:725 +#: Filters.py:946 fpdb.pyw:727 msgid "Done" msgstr "" -#: GuiAutoImport.py:73 +#: GuiAutoImport.py:85 msgid "Time between imports in seconds:" msgstr "" -#: GuiAutoImport.py:104 GuiAutoImport.py:172 GuiAutoImport.py:249 +#: GuiAutoImport.py:116 GuiAutoImport.py:184 GuiAutoImport.py:261 msgid " Start _Autoimport " msgstr "" -#: GuiAutoImport.py:123 +#: GuiAutoImport.py:135 msgid "AutoImport Ready." msgstr "" -#: GuiAutoImport.py:136 +#: GuiAutoImport.py:148 msgid "Please choose the path that you want to auto import" msgstr "" -#: GuiAutoImport.py:159 +#: GuiAutoImport.py:171 msgid " _Auto Import Running " msgstr "" -#: GuiAutoImport.py:170 +#: GuiAutoImport.py:182 msgid " Stop _Autoimport " msgstr "" -#: GuiAutoImport.py:195 +#: GuiAutoImport.py:207 msgid "" "\n" "Global lock taken ... Auto Import Started.\n" msgstr "" -#: GuiAutoImport.py:197 +#: GuiAutoImport.py:209 msgid " _Stop Autoimport " msgstr "" -#: GuiAutoImport.py:213 -msgid "opening pipe to HUD" -msgstr "" - #: GuiAutoImport.py:225 -msgid "" -"\n" -"*** GuiAutoImport Error opening pipe: " +msgid "opening pipe to HUD" msgstr "" #: GuiAutoImport.py:237 msgid "" "\n" +"*** GuiAutoImport Error opening pipe: " +msgstr "" + +#: GuiAutoImport.py:249 +msgid "" +"\n" "auto-import aborted - global lock not available" msgstr "" -#: GuiAutoImport.py:242 +#: GuiAutoImport.py:254 msgid "" "\n" "Stopping autoimport - global lock released." msgstr "" -#: GuiAutoImport.py:244 +#: GuiAutoImport.py:256 msgid "" "\n" " * Stop Autoimport: HUD already terminated" msgstr "" -#: GuiAutoImport.py:271 +#: GuiAutoImport.py:283 msgid "Browse..." msgstr "" -#: GuiAutoImport.py:314 GuiBulkImport.py:346 +#: GuiAutoImport.py:326 GuiBulkImport.py:354 msgid "How often to print a one-line status report (0 (default) means never)" msgstr "" -#: GuiBulkImport.py:59 +#: GuiBulkImport.py:67 msgid "" "\n" "Global lock taken ..." msgstr "" -#: GuiBulkImport.py:60 +#: GuiBulkImport.py:68 msgid "Importing..." msgstr "" -#: GuiBulkImport.py:109 +#: GuiBulkImport.py:117 msgid "GuiBulkImport.load done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d in %s seconds - %.0f/sec" msgstr "" -#: GuiBulkImport.py:123 +#: GuiBulkImport.py:131 msgid "Import Complete" msgstr "" -#: GuiBulkImport.py:131 +#: GuiBulkImport.py:139 msgid "bulk-import aborted - global lock not available" msgstr "" -#: GuiBulkImport.py:157 +#: GuiBulkImport.py:165 msgid "Print Start/Stop Info" msgstr "" -#: GuiBulkImport.py:164 +#: GuiBulkImport.py:172 msgid "Hands/status print:" msgstr "" -#: GuiBulkImport.py:181 +#: GuiBulkImport.py:189 msgid "Number of threads:" msgstr "" -#: GuiBulkImport.py:201 +#: GuiBulkImport.py:209 msgid "Fail on error" msgstr "" -#: GuiBulkImport.py:206 +#: GuiBulkImport.py:214 msgid "Hands/file:" msgstr "" -#: GuiBulkImport.py:221 +#: GuiBulkImport.py:229 msgid "Drop indexes:" msgstr "" -#: GuiBulkImport.py:230 GuiBulkImport.py:280 +#: GuiBulkImport.py:238 GuiBulkImport.py:288 msgid "auto" msgstr "" -#: GuiBulkImport.py:231 GuiBulkImport.py:281 GuiBulkImport.py:389 +#: GuiBulkImport.py:239 GuiBulkImport.py:289 GuiBulkImport.py:397 msgid "don't drop" msgstr "" -#: GuiBulkImport.py:232 GuiBulkImport.py:282 +#: GuiBulkImport.py:240 GuiBulkImport.py:290 msgid "drop" msgstr "" -#: GuiBulkImport.py:238 +#: GuiBulkImport.py:246 msgid "HUD Test mode" msgstr "" -#: GuiBulkImport.py:243 +#: GuiBulkImport.py:251 msgid "Site filter:" msgstr "" -#: GuiBulkImport.py:271 +#: GuiBulkImport.py:279 msgid "Drop HudCache:" msgstr "" -#: GuiBulkImport.py:289 +#: GuiBulkImport.py:297 msgid "Import" msgstr "" -#: GuiBulkImport.py:291 +#: GuiBulkImport.py:299 msgid "Import clicked" msgstr "" -#: GuiBulkImport.py:309 +#: GuiBulkImport.py:317 msgid "Waiting..." msgstr "" -#: GuiBulkImport.py:338 +#: GuiBulkImport.py:346 msgid "Input file in quiet mode" msgstr "" -#: GuiBulkImport.py:340 +#: GuiBulkImport.py:348 msgid "don't start gui; deprecated (just give a filename with -f)." msgstr "" -#: GuiBulkImport.py:342 +#: GuiBulkImport.py:350 msgid "Conversion filter (*Full Tilt Poker, PokerStars, Everleaf, Absolute)" msgstr "" -#: GuiBulkImport.py:344 +#: GuiBulkImport.py:352 msgid "If this option is passed it quits when it encounters any error" msgstr "" -#: GuiBulkImport.py:348 +#: GuiBulkImport.py:356 msgid "Print some useful one liners" msgstr "" -#: GuiBulkImport.py:350 +#: GuiBulkImport.py:358 msgid "Do the required conversion for Stars Archive format (ie. as provided by support" msgstr "" -#: GuiBulkImport.py:355 +#: GuiBulkImport.py:363 msgid "USAGE:" msgstr "" -#: GuiBulkImport.py:356 +#: GuiBulkImport.py:364 msgid "PokerStars converter: ./GuiBulkImport.py -c PokerStars -f filename" msgstr "" -#: GuiBulkImport.py:357 +#: GuiBulkImport.py:365 msgid "Full Tilt converter: ./GuiBulkImport.py -c \"Full Tilt Poker\" -f filename" msgstr "" -#: GuiBulkImport.py:358 +#: GuiBulkImport.py:366 msgid "Everleaf converter: ./GuiBulkImport.py -c Everleaf -f filename" msgstr "" -#: GuiBulkImport.py:359 +#: GuiBulkImport.py:367 msgid "Absolute converter: ./GuiBulkImport.py -c Absolute -f filename" msgstr "" -#: GuiBulkImport.py:360 +#: GuiBulkImport.py:368 msgid "PartyPoker converter: ./GuiBulkImport.py -c PartyPoker -f filename" msgstr "" -#: GuiBulkImport.py:376 +#: GuiBulkImport.py:384 msgid "-q is deprecated. Just use \"-f filename\" instead" msgstr "" -#: GuiBulkImport.py:398 +#: GuiBulkImport.py:406 msgid "GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d in %s seconds - %.0f/sec" msgstr "" -#: GuiDatabase.py:98 GuiLogView.py:88 +#: GuiDatabase.py:106 GuiLogView.py:96 msgid "Refresh" msgstr "" -#: GuiDatabase.py:103 +#: GuiDatabase.py:111 msgid "Type" msgstr "" -#: GuiDatabase.py:104 +#: GuiDatabase.py:112 msgid "Name" msgstr "" -#: GuiDatabase.py:105 +#: GuiDatabase.py:113 msgid "Description" msgstr "" -#: GuiDatabase.py:106 GuiImapFetcher.py:111 +#: GuiDatabase.py:114 GuiImapFetcher.py:123 msgid "Username" msgstr "" -#: GuiDatabase.py:107 GuiImapFetcher.py:111 +#: GuiDatabase.py:115 GuiImapFetcher.py:123 msgid "Password" msgstr "" -#: GuiDatabase.py:108 +#: GuiDatabase.py:116 msgid "Host" msgstr "" -#: GuiDatabase.py:109 +#: GuiDatabase.py:117 msgid "Default" msgstr "" -#: GuiDatabase.py:110 +#: GuiDatabase.py:118 msgid "Status" msgstr "" -#: GuiDatabase.py:243 +#: GuiDatabase.py:251 msgid "Testing database connections ... " msgstr "" -#: GuiDatabase.py:273 +#: GuiDatabase.py:281 msgid "loaddbs: trying to connect to: %s/%s, %s, %s/%s" msgstr "" -#: GuiDatabase.py:276 +#: GuiDatabase.py:284 msgid " connected ok" msgstr "" -#: GuiDatabase.py:283 +#: GuiDatabase.py:291 msgid " not connected but no exception" msgstr "" -#: GuiDatabase.py:285 fpdb.pyw:904 +#: GuiDatabase.py:293 fpdb.pyw:906 msgid "MySQL Server reports: Access denied. Are your permissions set correctly?" msgstr "" -#: GuiDatabase.py:289 +#: GuiDatabase.py:297 msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - Please check that the MySQL service has been started" msgstr "" -#: GuiDatabase.py:293 fpdb.pyw:909 +#: GuiDatabase.py:301 fpdb.pyw:911 msgid "Postgres Server reports: Access denied. Are your permissions set correctly?" msgstr "" -#: GuiDatabase.py:296 +#: GuiDatabase.py:304 msgid "Postgres client reports: Unable to connect - Please check that the Postgres service has been started" msgstr "" -#: GuiDatabase.py:313 +#: GuiDatabase.py:321 msgid "finished." msgstr "" -#: GuiDatabase.py:323 +#: GuiDatabase.py:331 msgid "loaddbs error: " msgstr "" -#: GuiDatabase.py:344 GuiLogView.py:192 GuiTourneyPlayerStats.py:454 +#: GuiDatabase.py:352 GuiLogView.py:200 GuiTourneyPlayerStats.py:466 msgid "***sortCols error: " msgstr "" -#: GuiDatabase.py:346 +#: GuiDatabase.py:354 msgid "sortCols error: " msgstr "" -#: GuiDatabase.py:416 GuiLogView.py:205 +#: GuiDatabase.py:424 GuiLogView.py:213 msgid "Test Log Viewer" msgstr "" -#: GuiDatabase.py:421 GuiLogView.py:210 +#: GuiDatabase.py:429 GuiLogView.py:218 msgid "Log Viewer" msgstr "" @@ -581,135 +881,136 @@ msgid "" " and HUD are NOT affected by this problem." msgstr "" -#: GuiGraphViewer.py:129 GuiGraphViewer.py:243 GuiSessionViewer.py:343 +#: GuiGraphViewer.py:141 GuiGraphViewer.py:255 GuiSessionViewer.py:355 msgid "***Error: " msgstr "" -#: GuiGraphViewer.py:159 GuiPositionalStats.py:166 GuiSessionViewer.py:192 -#: GuiTourneyPlayerStats.py:265 +#: GuiGraphViewer.py:171 GuiPositionalStats.py:178 GuiRingPlayerStats.py:252 +#: GuiSessionViewer.py:204 GuiTourneyPlayerStats.py:277 msgid "No sites selected - defaulting to PokerStars" msgstr "" -#: GuiGraphViewer.py:164 GuiPositionalStats.py:169 GuiSessionViewer.py:195 -#: GuiTourneyPlayerStats.py:268 +#: GuiGraphViewer.py:176 GuiPositionalStats.py:181 GuiRingPlayerStats.py:255 +#: GuiSessionViewer.py:207 GuiTourneyPlayerStats.py:280 msgid "No player ids found" msgstr "" -#: GuiGraphViewer.py:169 GuiPositionalStats.py:172 GuiSessionViewer.py:198 +#: GuiGraphViewer.py:181 GuiPositionalStats.py:184 GuiRingPlayerStats.py:258 +#: GuiSessionViewer.py:210 msgid "No limits found" msgstr "" -#: GuiGraphViewer.py:179 +#: GuiGraphViewer.py:191 msgid "Graph generated in: %s" msgstr "" -#: GuiGraphViewer.py:183 +#: GuiGraphViewer.py:195 msgid "Hands" msgstr "" -#: GuiGraphViewer.py:187 +#: GuiGraphViewer.py:199 msgid "No Data for Player(s) Found" msgstr "" -#: GuiGraphViewer.py:210 GuiGraphViewer.py:229 +#: GuiGraphViewer.py:222 GuiGraphViewer.py:241 msgid "" "Hands: %d\n" "Profit: $%.2f" msgstr "" -#: GuiGraphViewer.py:211 GuiGraphViewer.py:230 +#: GuiGraphViewer.py:223 GuiGraphViewer.py:242 msgid "Showdown: $%.2f" msgstr "" -#: GuiGraphViewer.py:212 GuiGraphViewer.py:231 +#: GuiGraphViewer.py:224 GuiGraphViewer.py:243 msgid "Non-showdown: $%.2f" msgstr "" -#: GuiGraphViewer.py:220 +#: GuiGraphViewer.py:232 msgid "Profit graph for ring games" msgstr "" -#: GuiGraphViewer.py:340 +#: GuiGraphViewer.py:352 msgid "Please choose the directory you wish to export to:" msgstr "" -#: GuiGraphViewer.py:353 +#: GuiGraphViewer.py:365 msgid "Closed, no graph exported" msgstr "" -#: GuiGraphViewer.py:371 +#: GuiGraphViewer.py:383 msgid "Graph created" msgstr "" -#: GuiImapFetcher.py:37 +#: GuiImapFetcher.py:49 msgid "To cancel just close this tab." msgstr "" -#: GuiImapFetcher.py:40 +#: GuiImapFetcher.py:52 msgid "_Save" msgstr "" -#: GuiImapFetcher.py:44 +#: GuiImapFetcher.py:56 msgid "_Import All" msgstr "" -#: GuiImapFetcher.py:48 +#: GuiImapFetcher.py:60 msgid "If you change the config you must save before importing" msgstr "" -#: GuiImapFetcher.py:91 +#: GuiImapFetcher.py:103 msgid "Starting import. Please wait." msgstr "" -#: GuiImapFetcher.py:95 +#: GuiImapFetcher.py:107 msgid "Finished import without error." msgstr "" -#: GuiImapFetcher.py:98 +#: GuiImapFetcher.py:110 msgid "Login to mailserver failed: please check mailserver, username and password" msgstr "" -#: GuiImapFetcher.py:101 +#: GuiImapFetcher.py:113 msgid "Could not connect to mailserver: check mailserver and use SSL settings and internet connectivity" msgstr "" -#: GuiImapFetcher.py:111 +#: GuiImapFetcher.py:123 msgid "Fetch Type" msgstr "" -#: GuiImapFetcher.py:111 +#: GuiImapFetcher.py:123 msgid "Mail Folder" msgstr "" -#: GuiImapFetcher.py:111 +#: GuiImapFetcher.py:123 msgid "Mailserver" msgstr "" -#: GuiImapFetcher.py:111 +#: GuiImapFetcher.py:123 msgid "Site" msgstr "" -#: GuiImapFetcher.py:111 +#: GuiImapFetcher.py:123 msgid "Use SSL" msgstr "" -#: GuiImapFetcher.py:142 +#: GuiImapFetcher.py:154 msgid "Yes" msgstr "" -#: GuiImapFetcher.py:143 +#: GuiImapFetcher.py:155 msgid "No" msgstr "" -#: GuiLogView.py:53 +#: GuiLogView.py:61 msgid "Log Messages" msgstr "" -#: GuiPositionalStats.py:135 +#: GuiPositionalStats.py:147 msgid "DEBUG: activesite set to %s" msgstr "" -#: GuiPositionalStats.py:321 +#: GuiPositionalStats.py:333 msgid "Positional Stats page displayed in %4.2f seconds" msgstr "" @@ -725,10 +1026,39 @@ msgstr "" msgid "Test Preferences Dialog" msgstr "" -#: GuiPrefs.py:181 fpdb.pyw:294 +#: GuiPrefs.py:181 fpdb.pyw:296 msgid "Preferences" msgstr "" +#: GuiRingPlayerStats.py:323 GuiSessionViewer.py:249 +#: GuiTourneyPlayerStats.py:252 +msgid "Stats page displayed in %4.2f seconds" +msgstr "" + +#: GuiRingPlayerStats.py:370 +msgid "***sortnums error: " +msgstr "" + +#: GuiRingPlayerStats.py:392 +msgid "***sortcols error: " +msgstr "" + +#: GuiRingPlayerStats.py:683 +msgid "Detailed Filters" +msgstr "" + +#: GuiRingPlayerStats.py:692 +msgid "Hand Filters:" +msgstr "" + +#: GuiRingPlayerStats.py:705 +msgid "between" +msgstr "" + +#: GuiRingPlayerStats.py:706 +msgid "and" +msgstr "" + #: GuiSessionViewer.py:41 msgid "Failed to load numpy and/or matplotlib in Session Viewer" msgstr "" @@ -737,132 +1067,128 @@ msgstr "" msgid "ImportError: %s" msgstr "" -#: GuiSessionViewer.py:78 +#: GuiSessionViewer.py:90 msgid "Hand Breakdown for all levels listed above" msgstr "" -#: GuiSessionViewer.py:237 GuiTourneyPlayerStats.py:240 -msgid "Stats page displayed in %4.2f seconds" -msgstr "" - -#: GuiSessionViewer.py:364 +#: GuiSessionViewer.py:376 msgid "Session candlestick graph" msgstr "" -#: GuiSessionViewer.py:367 +#: GuiSessionViewer.py:379 msgid "Sessions" msgstr "" -#: GuiTourneyPlayerStats.py:72 +#: GuiTourneyPlayerStats.py:84 msgid "_Refresh Stats" msgstr "" -#: GuiTourneyViewer.py:37 +#: GuiTourneyViewer.py:49 msgid "Enter the tourney number you want to display:" msgstr "" -#: GuiTourneyViewer.py:43 +#: GuiTourneyViewer.py:55 msgid "_Display" msgstr "" -#: GuiTourneyViewer.py:50 +#: GuiTourneyViewer.py:62 msgid "Display _Player" msgstr "" -#: GuiTourneyViewer.py:65 +#: GuiTourneyViewer.py:77 msgid "Tournament not found - please ensure you imported it and selected the correct site" msgstr "" -#: GuiTourneyViewer.py:93 +#: GuiTourneyViewer.py:105 msgid "Player or tourney not found - please ensure you imported it and selected the correct site" msgstr "" -#: GuiTourneyViewer.py:107 +#: GuiTourneyViewer.py:119 msgid "N/A" msgstr "" -#: GuiTourneyViewer.py:128 +#: GuiTourneyViewer.py:140 msgid "invalid entry in tourney number - must enter numbers only" msgstr "" -#: HUD_main.pyw:77 +#: HUD_main.pyw:86 msgid "" "\n" "HUD_main: starting ..." msgstr "" -#: HUD_main.pyw:80 fpdb.pyw:874 +#: HUD_main.pyw:89 fpdb.pyw:876 msgid "Logfile is " msgstr "" -#: HUD_main.pyw:81 +#: HUD_main.pyw:90 msgid "HUD_main starting: using db name = %s" msgstr "" -#: HUD_main.pyw:86 +#: HUD_main.pyw:95 msgid "" "Note: error output is being diverted to:\n" msgstr "" -#: HUD_main.pyw:87 fpdb.pyw:1136 +#: HUD_main.pyw:96 fpdb.pyw:1138 msgid "" "\n" "Any major error will be reported there _only_.\n" msgstr "" -#: HUD_main.pyw:88 +#: HUD_main.pyw:97 msgid "Note: error output is being diverted to:" msgstr "" -#: HUD_main.pyw:89 +#: HUD_main.pyw:98 msgid "Any major error will be reported there _only_." msgstr "" -#: HUD_main.pyw:92 +#: HUD_main.pyw:101 msgid "" "HUD_main: starting ...\n" msgstr "" -#: HUD_main.pyw:105 HUD_run_me.py:62 +#: HUD_main.pyw:114 HUD_run_me.py:62 msgid "Closing this window will exit from the HUD." msgstr "" -#: HUD_main.pyw:108 HUD_run_me.py:66 +#: HUD_main.pyw:117 HUD_run_me.py:66 msgid "HUD Main Window" msgstr "" -#: HUD_main.pyw:117 +#: HUD_main.pyw:126 msgid "Terminating normally." msgstr "" -#: HUD_main.pyw:221 +#: HUD_main.pyw:230 msgid "Received hand no %s" msgstr "" -#: HUD_main.pyw:240 +#: HUD_main.pyw:249 msgid "HUD_main.read_stdin: hand processing starting ..." msgstr "" -#: HUD_main.pyw:266 +#: HUD_main.pyw:275 msgid "" "hud_dict[%s] was not found\n" msgstr "" -#: HUD_main.pyw:267 +#: HUD_main.pyw:276 msgid "" "will not send hand\n" msgstr "" -#: HUD_main.pyw:301 +#: HUD_main.pyw:310 msgid "HUD create: table name %s not found, skipping." msgstr "" -#: HUD_main.pyw:309 +#: HUD_main.pyw:318 msgid "" "Table \"%s\" no longer exists\n" msgstr "" -#: HUD_main.pyw:312 +#: HUD_main.pyw:321 msgid "HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f,%4.3f,%4.3f)" msgstr "" @@ -871,432 +1197,432 @@ msgid "" "HUD_main starting\n" msgstr "" -#: HUD_run_me.py:51 +#: HUD_run_me.py:51 TournamentTracker.py:317 msgid "" "Using db name = %s\n" msgstr "" -#: Hand.py:138 +#: Hand.py:150 msgid "BB" msgstr "" -#: Hand.py:139 +#: Hand.py:151 msgid "SB" msgstr "" -#: Hand.py:140 +#: Hand.py:152 msgid "BUTTONPOS" msgstr "" -#: Hand.py:141 +#: Hand.py:153 msgid "HAND NO." msgstr "" -#: Hand.py:142 +#: Hand.py:154 TourneySummary.py:134 msgid "SITE" msgstr "" -#: Hand.py:143 +#: Hand.py:155 msgid "TABLE NAME" msgstr "" -#: Hand.py:144 +#: Hand.py:156 TourneySummary.py:144 msgid "HERO" msgstr "" -#: Hand.py:145 +#: Hand.py:157 TourneySummary.py:145 msgid "MAXSEATS" msgstr "" -#: Hand.py:146 +#: Hand.py:158 msgid "LEVEL" msgstr "" -#: Hand.py:147 +#: Hand.py:159 TourneySummary.py:150 msgid "MIXED" msgstr "" -#: Hand.py:148 +#: Hand.py:160 msgid "LASTBET" msgstr "" -#: Hand.py:149 +#: Hand.py:161 msgid "ACTION STREETS" msgstr "" -#: Hand.py:150 +#: Hand.py:162 msgid "STREETS" msgstr "" -#: Hand.py:151 +#: Hand.py:163 msgid "ALL STREETS" msgstr "" -#: Hand.py:152 +#: Hand.py:164 msgid "COMMUNITY STREETS" msgstr "" -#: Hand.py:153 +#: Hand.py:165 msgid "HOLE STREETS" msgstr "" -#: Hand.py:154 +#: Hand.py:166 msgid "COUNTED SEATS" msgstr "" -#: Hand.py:155 +#: Hand.py:167 msgid "DEALT" msgstr "" -#: Hand.py:156 +#: Hand.py:168 msgid "SHOWN" msgstr "" -#: Hand.py:157 +#: Hand.py:169 msgid "MUCKED" msgstr "" -#: Hand.py:158 +#: Hand.py:170 msgid "TOTAL POT" msgstr "" -#: Hand.py:159 +#: Hand.py:171 msgid "TOTAL COLLECTED" msgstr "" -#: Hand.py:160 +#: Hand.py:172 msgid "RAKE" msgstr "" -#: Hand.py:161 +#: Hand.py:173 TourneySummary.py:135 msgid "START TIME" msgstr "" -#: Hand.py:162 +#: Hand.py:174 msgid "TOURNAMENT NO" msgstr "" -#: Hand.py:163 +#: Hand.py:175 TourneySummary.py:140 msgid "TOURNEY ID" msgstr "" -#: Hand.py:164 +#: Hand.py:176 TourneySummary.py:139 msgid "TOURNEY TYPE ID" msgstr "" -#: Hand.py:165 +#: Hand.py:177 TourneySummary.py:141 msgid "BUYIN" msgstr "" -#: Hand.py:166 +#: Hand.py:178 msgid "BUYIN CURRENCY" msgstr "" -#: Hand.py:167 +#: Hand.py:179 msgid "BUYIN CHIPS" msgstr "" -#: Hand.py:168 +#: Hand.py:180 TourneySummary.py:142 msgid "FEE" msgstr "" -#: Hand.py:169 +#: Hand.py:181 msgid "IS REBUY" msgstr "" -#: Hand.py:170 +#: Hand.py:182 msgid "IS ADDON" msgstr "" -#: Hand.py:171 +#: Hand.py:183 msgid "IS KO" msgstr "" -#: Hand.py:172 +#: Hand.py:184 TourneySummary.py:166 msgid "KO BOUNTY" msgstr "" -#: Hand.py:173 +#: Hand.py:185 msgid "IS MATRIX" msgstr "" -#: Hand.py:174 +#: Hand.py:186 msgid "IS SHOOTOUT" msgstr "" -#: Hand.py:175 +#: Hand.py:187 TourneySummary.py:167 msgid "TOURNEY COMMENT" msgstr "" -#: Hand.py:178 +#: Hand.py:190 TourneySummary.py:179 msgid "PLAYERS" msgstr "" -#: Hand.py:179 +#: Hand.py:191 msgid "STACKS" msgstr "" -#: Hand.py:180 +#: Hand.py:192 msgid "POSTED" msgstr "" -#: Hand.py:181 +#: Hand.py:193 msgid "POT" msgstr "" -#: Hand.py:182 +#: Hand.py:194 msgid "SEATING" msgstr "" -#: Hand.py:183 +#: Hand.py:195 msgid "GAMETYPE" msgstr "" -#: Hand.py:184 +#: Hand.py:196 msgid "ACTION" msgstr "" -#: Hand.py:185 +#: Hand.py:197 msgid "COLLECTEES" msgstr "" -#: Hand.py:186 +#: Hand.py:198 msgid "BETS" msgstr "" -#: Hand.py:187 +#: Hand.py:199 msgid "BOARD" msgstr "" -#: Hand.py:188 +#: Hand.py:200 msgid "DISCARDS" msgstr "" -#: Hand.py:189 +#: Hand.py:201 msgid "HOLECARDS" msgstr "" -#: Hand.py:190 +#: Hand.py:202 msgid "TOURNEYS PLAYER IDS" msgstr "" -#: Hand.py:213 Hand.py:1232 +#: Hand.py:225 Hand.py:1244 msgid "[ERROR] Tried to add holecards for unknown player: %s" msgstr "" -#: Hand.py:266 +#: Hand.py:278 msgid "Hand.insert(): hid #: %s is a duplicate" msgstr "" -#: Hand.py:305 +#: Hand.py:317 msgid "markstreets didn't match - Assuming hand cancelled" msgstr "" -#: Hand.py:307 +#: Hand.py:319 msgid "FpdbParseError: markStreets appeared to fail: First 100 chars: '%s'" msgstr "" -#: Hand.py:311 +#: Hand.py:323 msgid "DEBUG: checkPlayerExists %s fail" msgstr "" -#: Hand.py:312 +#: Hand.py:324 msgid "checkPlayerExists: '%s' failed." msgstr "" -#: Hand.py:395 +#: Hand.py:407 msgid "%s %s calls %s" msgstr "" -#: Hand.py:465 +#: Hand.py:477 msgid "%s %s raise %s" msgstr "" -#: Hand.py:476 +#: Hand.py:488 msgid "%s %s bets %s" msgstr "" -#: Hand.py:495 +#: Hand.py:507 msgid "%s %s folds" msgstr "" -#: Hand.py:504 +#: Hand.py:516 msgid "%s %s checks" msgstr "" -#: Hand.py:524 +#: Hand.py:536 msgid "addShownCards %s hole=%s all=%s" msgstr "" -#: Hand.py:635 +#: Hand.py:647 msgid "*** ERROR - HAND: calling writeGameLine with unexpected STARTTIME value, expecting datetime.date object, received:" msgstr "" -#: Hand.py:636 +#: Hand.py:648 msgid "*** Make sure your HandHistoryConverter is setting hand.startTime properly!" msgstr "" -#: Hand.py:637 +#: Hand.py:649 msgid "*** Game String:" msgstr "" -#: Hand.py:691 +#: Hand.py:703 msgid "*** Parse error reading blinds (check compilePlayerRegexs as a likely culprit)" msgstr "" -#: Hand.py:718 +#: Hand.py:730 msgid "HoldemOmahaHand.__init__:Can't assemble hand from db without a handid" msgstr "" -#: Hand.py:720 +#: Hand.py:732 msgid "HoldemOmahaHand.__init__:Neither HHC nor DB+handid provided" msgstr "" -#: Hand.py:1101 +#: Hand.py:1113 msgid "*** DEALING HANDS ***" msgstr "" -#: Hand.py:1106 +#: Hand.py:1118 msgid "Dealt to %s: [%s]" msgstr "" -#: Hand.py:1111 +#: Hand.py:1123 msgid "*** FIRST DRAW ***" msgstr "" -#: Hand.py:1121 +#: Hand.py:1133 msgid "*** SECOND DRAW ***" msgstr "" -#: Hand.py:1131 +#: Hand.py:1143 msgid "*** THIRD DRAW ***" msgstr "" -#: Hand.py:1141 Hand.py:1359 +#: Hand.py:1153 Hand.py:1371 msgid "*** SHOW DOWN ***" msgstr "" -#: Hand.py:1156 Hand.py:1374 +#: Hand.py:1168 Hand.py:1386 msgid "*** SUMMARY ***" msgstr "" -#: Hand.py:1241 +#: Hand.py:1253 msgid "%s %s completes %s" msgstr "" -#: Hand.py:1259 +#: Hand.py:1271 msgid "Bringin: %s, %s" msgstr "" -#: Hand.py:1299 +#: Hand.py:1311 msgid "*** 3RD STREET ***" msgstr "" -#: Hand.py:1313 +#: Hand.py:1325 msgid "*** 4TH STREET ***" msgstr "" -#: Hand.py:1325 +#: Hand.py:1337 msgid "*** 5TH STREET ***" msgstr "" -#: Hand.py:1337 +#: Hand.py:1349 msgid "*** 6TH STREET ***" msgstr "" -#: Hand.py:1347 +#: Hand.py:1359 msgid "*** RIVER ***" msgstr "" -#: Hand.py:1439 +#: Hand.py:1451 msgid "join_holecards: # of holecards should be either < 4, 4 or 7 - 5 and 6 should be impossible for anyone who is not a hero" msgstr "" -#: Hand.py:1440 +#: Hand.py:1452 msgid "join_holcards: holecards(%s): %s" msgstr "" -#: Hand.py:1523 +#: Hand.py:1535 msgid "DEBUG: call Pot.end() before printing pot total" msgstr "" -#: Hand.py:1525 +#: Hand.py:1537 msgid "FpdbError in printing Hand object" msgstr "" -#: HandHistoryConverter.py:126 +#: HandHistoryConverter.py:134 msgid "Failed sanity check" msgstr "" -#: HandHistoryConverter.py:134 +#: HandHistoryConverter.py:142 msgid "Tailing '%s'" msgstr "" -#: HandHistoryConverter.py:141 +#: HandHistoryConverter.py:149 msgid "HHC.start(follow): processHand failed: Exception msg: '%s'" msgstr "" -#: HandHistoryConverter.py:155 +#: HandHistoryConverter.py:163 msgid "HHC.start(): processHand failed: Exception msg: '%s'" msgstr "" -#: HandHistoryConverter.py:159 +#: HandHistoryConverter.py:167 msgid "Read %d hands (%d failed) in %.3f seconds" msgstr "" -#: HandHistoryConverter.py:165 +#: HandHistoryConverter.py:173 msgid "Summary file '%s' correctly parsed (took %.3f seconds)" msgstr "" -#: HandHistoryConverter.py:167 +#: HandHistoryConverter.py:175 msgid "Error converting summary file '%s' (took %.3f seconds)" msgstr "" -#: HandHistoryConverter.py:170 +#: HandHistoryConverter.py:178 msgid "Error converting '%s'" msgstr "" -#: HandHistoryConverter.py:201 +#: HandHistoryConverter.py:209 msgid "%s changed inode numbers from %d to %d" msgstr "" -#: HandHistoryConverter.py:246 +#: HandHistoryConverter.py:254 msgid "Converting starsArchive format to readable" msgstr "" -#: HandHistoryConverter.py:251 +#: HandHistoryConverter.py:259 msgid "Converting ftpArchive format to readable" msgstr "" -#: HandHistoryConverter.py:256 +#: HandHistoryConverter.py:264 msgid "Read no hands." msgstr "" -#: HandHistoryConverter.py:393 +#: HandHistoryConverter.py:401 msgid "HH Sanity Check: output and input files are the same, check config" msgstr "" -#: HandHistoryConverter.py:428 +#: HandHistoryConverter.py:436 msgid "Reading stdin with %s" msgstr "" -#: HandHistoryConverter.py:443 +#: HandHistoryConverter.py:451 msgid "unable to read file with any codec in list!" msgstr "" -#: HandHistoryConverter.py:597 +#: HandHistoryConverter.py:605 msgid "Unable to create output directory %s for HHC!" msgstr "" -#: HandHistoryConverter.py:598 +#: HandHistoryConverter.py:606 msgid "*** ERROR: UNABLE TO CREATE OUTPUT DIRECTORY" msgstr "" -#: HandHistoryConverter.py:600 +#: HandHistoryConverter.py:608 msgid "Created directory '%s'" msgstr "" -#: HandHistoryConverter.py:604 +#: HandHistoryConverter.py:612 msgid "out_path %s couldn't be opened" msgstr "" @@ -1323,143 +1649,11 @@ msgid "" " on %s." msgstr "" -#: Hud.py:137 -msgid "Kill This HUD" -msgstr "" - -#: Hud.py:142 -msgid "Save HUD Layout" -msgstr "" - -#: Hud.py:146 -msgid "Reposition StatWindows" -msgstr "" - -#: Hud.py:150 -msgid "Show Player Stats" -msgstr "" - -#: Hud.py:155 Hud.py:224 -msgid "For This Blind Level Only" -msgstr "" - -#: Hud.py:160 Hud.py:229 -msgid "For Multiple Blind Levels:" -msgstr "" - -#: Hud.py:163 Hud.py:232 -msgid " 0.5 to 2.0 x Current Blinds" -msgstr "" - -#: Hud.py:168 Hud.py:237 -msgid " 0.33 to 3.0 x Current Blinds" -msgstr "" - -#: Hud.py:173 Hud.py:242 -msgid " 0.1 to 10 x Current Blinds" -msgstr "" - -#: Hud.py:178 Hud.py:247 -msgid " All Levels" -msgstr "" - -#: Hud.py:186 Hud.py:255 -msgid " Any Number" -msgstr "" - -#: Hud.py:191 Hud.py:260 -msgid " Custom" -msgstr "" - -#: Hud.py:196 Hud.py:265 -msgid " Exact" -msgstr "" - -#: Hud.py:201 Hud.py:270 -msgid "Since:" -msgstr "" - -#: Hud.py:204 Hud.py:273 -msgid " All Time" -msgstr "" - -#: Hud.py:209 Hud.py:278 -msgid " Session" -msgstr "" - -#: Hud.py:214 Hud.py:283 -msgid " %s Days" -msgstr "" - -#: Hud.py:219 -msgid "Show Opponent Stats" -msgstr "" - -#: Hud.py:252 -msgid "For #Seats:" -msgstr "" - -#: Hud.py:341 -msgid "Debug StatWindows" -msgstr "" - -#: Hud.py:345 -msgid "Set max seats" -msgstr "" - -#: Hud.py:528 -msgid "Updating config file" -msgstr "" - -#: Hud.py:537 -msgid "" -"No layout found for %d-max games for site %s\n" -msgstr "" - -#: Hud.py:551 -msgid "" -"exception in Hud.adj_seats\n" -"\n" -msgstr "" - -#: Hud.py:552 -msgid "error is %s" -msgstr "" - -#: Hud.py:559 -msgid "" -"Error finding actual seat.\n" -msgstr "" - -#: Hud.py:575 -msgid "" -"------------------------------------------------------------\n" -"Creating hud from hand %s\n" -msgstr "" - -#: Hud.py:624 -msgid "KeyError at the start of the for loop in update in hud_main. How this can possibly happen is totally beyond my comprehension. Your HUD may be about to get really weird. -Eric" -msgstr "" - -#: Hud.py:625 -msgid "(btw, the key was %s and statd is %s" -msgstr "" - -#: Hud.py:932 -msgid "" -"Fake main window, blah blah, blah\n" -"blah, blah" -msgstr "" - -#: Hud.py:940 -msgid "Table not found." -msgstr "" - -#: ImapFetcher.py:46 +#: ImapFetcher.py:54 msgid "response to logging in:" msgstr "" -#: ImapFetcher.py:78 +#: ImapFetcher.py:86 msgid "completed running Imap import, closing server connection" msgstr "" @@ -1467,39 +1661,39 @@ msgstr "" msgid "No Name" msgstr "" -#: Options.py:32 +#: Options.py:40 msgid "If passed error output will go to the console rather than ." msgstr "" -#: Options.py:35 +#: Options.py:43 msgid "Overrides the default database name" msgstr "" -#: Options.py:38 +#: Options.py:46 msgid "Specifies a configuration file." msgstr "" -#: Options.py:41 +#: Options.py:49 msgid "Indicates program was restarted with a different path (only allowed once)." msgstr "" -#: Options.py:44 +#: Options.py:52 msgid "Input file" msgstr "" -#: Options.py:47 +#: Options.py:55 msgid "Module name for Hand History Converter" msgstr "" -#: Options.py:51 +#: Options.py:59 msgid "Error logging level:" msgstr "" -#: Options.py:54 +#: Options.py:62 msgid "Print version information and exit." msgstr "" -#: Options.py:65 +#: Options.py:73 msgid "press enter to end" msgstr "" @@ -1507,6 +1701,38 @@ msgstr "" msgid "You need to manually enter the playername" msgstr "" +#: PartyPokerToFpdb.py:215 +msgid "Cannot fetch field '%s'" +msgstr "" + +#: PartyPokerToFpdb.py:219 +msgid "Unknown limit '%s'" +msgstr "" + +#: PartyPokerToFpdb.py:224 +msgid "Unknown game type '%s'" +msgstr "" + +#: PartyPokerToFpdb.py:258 +msgid "Cannot read HID for current hand" +msgstr "" + +#: PartyPokerToFpdb.py:263 +msgid "Cannot read Handinfo for current hand" +msgstr "" + +#: PartyPokerToFpdb.py:268 +msgid "Cannot read GameType for current hand" +msgstr "" + +#: PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:320 +msgid "readButton: not found" +msgstr "" + +#: PartyPokerToFpdb.py:479 +msgid "Unimplemented readAction: '%s' '%s'" +msgstr "" + #: PokerStarsSummary.py:72 msgid "didn't recognise buyin currency in:" msgstr "" @@ -1515,46 +1741,286 @@ msgstr "" msgid "in not result starttime" msgstr "" -#: PokerStarsToFpdb.py:172 +#: PokerStarsToFpdb.py:189 msgid "determineGameType: Unable to recognise gametype from: '%s'" msgstr "" -#: PokerStarsToFpdb.py:173 PokerStarsToFpdb.py:203 +#: PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 msgid "determineGameType: Raising FpdbParseError" msgstr "" -#: PokerStarsToFpdb.py:174 +#: PokerStarsToFpdb.py:191 msgid "Unable to recognise gametype from: '%s'" msgstr "" -#: PokerStarsToFpdb.py:204 +#: PokerStarsToFpdb.py:221 msgid "Lim_Blinds has no lookup for '%s'" msgstr "" -#: PokerStarsToFpdb.py:256 +#: PokerStarsToFpdb.py:273 msgid "failed to detect currency" msgstr "" -#: PokerStarsToFpdb.py:303 -msgid "readButton: not found" -msgstr "" - -#: PokerStarsToFpdb.py:341 +#: PokerStarsToFpdb.py:358 msgid "reading antes" msgstr "" -#: Tables_Demo.py:64 +#: Tables.py:234 +msgid "Found unknown table = %s" +msgstr "" + +#: Tables.py:261 +msgid "attach to window" +msgstr "" + +#: Tables_Demo.py:72 msgid "Fake HUD Main Window" msgstr "" -#: Tables_Demo.py:87 +#: Tables_Demo.py:95 msgid "enter table name to find: " msgstr "" -#: Tables_Demo.py:112 +#: Tables_Demo.py:120 msgid "calling main" msgstr "" +#: TournamentTracker.py:50 +msgid "Note: error output is being diverted to fpdb-error-log.txt and HUD-error.txt. Any major error will be reported there _only_." +msgstr "" + +#: TournamentTracker.py:111 +msgid "tournament edit window=" +msgstr "" + +#: TournamentTracker.py:114 +msgid "FPDB Tournament Entry" +msgstr "" + +#: TournamentTracker.py:154 +msgid "Closing this window will stop the Tournament Tracker" +msgstr "" + +#: TournamentTracker.py:156 +msgid "Enter Tournament" +msgstr "" + +#: TournamentTracker.py:161 +msgid "FPDB Tournament Tracker" +msgstr "" + +#: TournamentTracker.py:172 +msgid "Edit" +msgstr "" + +#: TournamentTracker.py:175 +msgid "Rebuy" +msgstr "" + +#: TournamentTracker.py:274 +msgid "db error: skipping " +msgstr "" + +#: TournamentTracker.py:276 +msgid "" +"Database error %s in hand %d. Skipping.\n" +msgstr "" + +#: TournamentTracker.py:285 +msgid "could not find tournament: skipping" +msgstr "" + +#: TournamentTracker.py:286 +msgid "" +"Could not find tournament %d in hand %d. Skipping.\n" +msgstr "" + +#: TournamentTracker.py:309 +msgid "" +"table name %s not found, skipping.\n" +msgstr "" + +#: TournamentTracker.py:316 +msgid "" +"tournament tracker starting\n" +msgstr "" + +#: TourneyFilters.py:61 +msgid "Tourney Type" +msgstr "" + +#: TourneyFilters.py:88 +msgid "setting numTourneys:" +msgstr "" + +#: TourneySummary.py:136 +msgid "END TIME" +msgstr "" + +#: TourneySummary.py:137 +msgid "TOURNEY NAME" +msgstr "" + +#: TourneySummary.py:138 +msgid "TOURNEY NO" +msgstr "" + +#: TourneySummary.py:143 +msgid "CURRENCY" +msgstr "" + +#: TourneySummary.py:146 +msgid "ENTRIES" +msgstr "" + +#: TourneySummary.py:147 +msgid "SPEED" +msgstr "" + +#: TourneySummary.py:148 +msgid "PRIZE POOL" +msgstr "" + +#: TourneySummary.py:149 +msgid "STARTING CHIP COUNT" +msgstr "" + +#: TourneySummary.py:151 +msgid "REBUY" +msgstr "" + +#: TourneySummary.py:152 +msgid "ADDON" +msgstr "" + +#: TourneySummary.py:153 +msgid "KO" +msgstr "" + +#: TourneySummary.py:154 +msgid "MATRIX" +msgstr "" + +#: TourneySummary.py:155 +msgid "MATRIX ID PROCESSED" +msgstr "" + +#: TourneySummary.py:156 +msgid "SHOOTOUT" +msgstr "" + +#: TourneySummary.py:157 +msgid "MATRIX MATCH ID" +msgstr "" + +#: TourneySummary.py:158 +msgid "SUB TOURNEY BUY IN" +msgstr "" + +#: TourneySummary.py:159 +msgid "SUB TOURNEY FEE" +msgstr "" + +#: TourneySummary.py:160 +msgid "REBUY CHIPS" +msgstr "" + +#: TourneySummary.py:161 +msgid "ADDON CHIPS" +msgstr "" + +#: TourneySummary.py:162 +msgid "REBUY COST" +msgstr "" + +#: TourneySummary.py:163 +msgid "ADDON COST" +msgstr "" + +#: TourneySummary.py:164 +msgid "TOTAL REBUYS" +msgstr "" + +#: TourneySummary.py:165 +msgid "TOTAL ADDONS" +msgstr "" + +#: TourneySummary.py:168 +msgid "SNG" +msgstr "" + +#: TourneySummary.py:169 +msgid "SATELLITE" +msgstr "" + +#: TourneySummary.py:170 +msgid "DOUBLE OR NOTHING" +msgstr "" + +#: TourneySummary.py:171 +msgid "GUARANTEE" +msgstr "" + +#: TourneySummary.py:172 +msgid "ADDED" +msgstr "" + +#: TourneySummary.py:173 +msgid "ADDED CURRENCY" +msgstr "" + +#: TourneySummary.py:174 +msgid "COMMENT" +msgstr "" + +#: TourneySummary.py:175 +msgid "COMMENT TIMESTAMP" +msgstr "" + +#: TourneySummary.py:178 +msgid "PLAYER IDS" +msgstr "" + +#: TourneySummary.py:180 +msgid "TOURNEYS PLAYERS IDS" +msgstr "" + +#: TourneySummary.py:181 +msgid "RANKS" +msgstr "" + +#: TourneySummary.py:182 +msgid "WINNINGS" +msgstr "" + +#: TourneySummary.py:183 +msgid "WINNINGS CURRENCY" +msgstr "" + +#: TourneySummary.py:184 +msgid "COUNT REBUYS" +msgstr "" + +#: TourneySummary.py:185 +msgid "COUNT ADDONS" +msgstr "" + +#: TourneySummary.py:186 +msgid "NB OF KO" +msgstr "" + +#: TourneySummary.py:233 +msgid "Tourney Insert/Update done" +msgstr "" + +#: TourneySummary.py:253 +msgid "addPlayer: rank:%s - name : '%s' - Winnings (%s)" +msgstr "" + +#: TourneySummary.py:280 +msgid "incrementPlayerWinnings: name : '%s' - Add Winnings (%s)" +msgstr "" + #: WinTables.py:70 msgid "Window %s not found. Skipping." msgstr "" @@ -1563,487 +2029,487 @@ msgstr "" msgid "self.window doesn't exist? why?" msgstr "" -#: fpdb.pyw:46 +#: fpdb.pyw:48 msgid "" " - press return to continue\n" msgstr "" -#: fpdb.pyw:53 +#: fpdb.pyw:55 msgid "" "\n" "python 2.5 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n" msgstr "" -#: fpdb.pyw:54 fpdb.pyw:66 fpdb.pyw:88 +#: fpdb.pyw:56 fpdb.pyw:68 fpdb.pyw:90 msgid "Press ENTER to continue." msgstr "" -#: fpdb.pyw:65 +#: fpdb.pyw:67 msgid "We appear to be running in Windows, but the Windows Python Extensions are not loading. Please install the PYWIN32 package from http://sourceforge.net/projects/pywin32/" msgstr "" -#: fpdb.pyw:87 +#: fpdb.pyw:89 msgid "Unable to load PYGTK modules required for GUI. Please install PyCairo, PyGObject, and PyGTK from www.pygtk.org." msgstr "" -#: fpdb.pyw:245 +#: fpdb.pyw:247 msgid "Copyright 2008-2010, Steffen, Eratosthenes, Carl Gherardi, Eric Blade, _mt, sqlcoder, Bostik, and others" msgstr "" -#: fpdb.pyw:246 +#: fpdb.pyw:248 msgid "You are free to change, and distribute original or changed versions of fpdb within the rules set out by the license" msgstr "" -#: fpdb.pyw:247 +#: fpdb.pyw:249 msgid "Please see fpdb's start screen for license information" msgstr "" -#: fpdb.pyw:251 +#: fpdb.pyw:253 msgid "and others" msgstr "" -#: fpdb.pyw:257 +#: fpdb.pyw:259 msgid "Operating System" msgstr "" -#: fpdb.pyw:277 +#: fpdb.pyw:279 msgid "Your config file is: " msgstr "" -#: fpdb.pyw:282 +#: fpdb.pyw:284 msgid "Version Information:" msgstr "" -#: fpdb.pyw:289 +#: fpdb.pyw:291 msgid "Threads: " msgstr "" -#: fpdb.pyw:312 +#: fpdb.pyw:314 msgid "Updated preferences have not been loaded because windows are open. Re-start fpdb to load them." msgstr "" -#: fpdb.pyw:322 +#: fpdb.pyw:324 msgid "Maintain Databases" msgstr "" -#: fpdb.pyw:332 +#: fpdb.pyw:334 msgid "saving updated db data" msgstr "" -#: fpdb.pyw:339 +#: fpdb.pyw:341 msgid "guidb response was " msgstr "" -#: fpdb.pyw:345 +#: fpdb.pyw:347 msgid "Cannot open Database Maintenance window because other windows have been opened. Re-start fpdb to use this option." msgstr "" -#: fpdb.pyw:348 +#: fpdb.pyw:350 msgid "Number of Hands: " msgstr "" -#: fpdb.pyw:349 +#: fpdb.pyw:351 msgid "" "\n" "Number of Tourneys: " msgstr "" -#: fpdb.pyw:350 +#: fpdb.pyw:352 msgid "" "\n" "Number of TourneyTypes: " msgstr "" -#: fpdb.pyw:351 +#: fpdb.pyw:353 msgid "Database Statistics" msgstr "" -#: fpdb.pyw:360 +#: fpdb.pyw:362 msgid "HUD Configurator - choose category" msgstr "" -#: fpdb.pyw:366 +#: fpdb.pyw:368 msgid "Please select the game category for which you want to configure HUD stats:" msgstr "" -#: fpdb.pyw:418 +#: fpdb.pyw:420 msgid "HUD Configurator - please choose your stats" msgstr "" -#: fpdb.pyw:424 +#: fpdb.pyw:426 msgid "Please choose the stats you wish to use in the below table." msgstr "" -#: fpdb.pyw:428 +#: fpdb.pyw:430 msgid "Note that you may not select any stat more than once or it will crash." msgstr "" -#: fpdb.pyw:432 +#: fpdb.pyw:434 msgid "It is not currently possible to select \"empty\" or anything else to that end." msgstr "" -#: fpdb.pyw:436 +#: fpdb.pyw:438 msgid "To configure things like colouring you will still have to manually edit your HUD_config.xml." msgstr "" -#: fpdb.pyw:543 +#: fpdb.pyw:545 msgid "Confirm deleting and recreating tables" msgstr "" -#: fpdb.pyw:544 +#: fpdb.pyw:546 msgid "Please confirm that you want to (re-)create the tables. If there already are tables in the database " msgstr "" -#: fpdb.pyw:545 +#: fpdb.pyw:547 msgid "" " they will be deleted.\n" "This may take a while." msgstr "" -#: fpdb.pyw:570 +#: fpdb.pyw:572 msgid "User cancelled recreating tables" msgstr "" -#: fpdb.pyw:577 +#: fpdb.pyw:579 msgid "Please confirm that you want to re-create the HUD cache." msgstr "" -#: fpdb.pyw:585 +#: fpdb.pyw:587 msgid " Hero's cache starts: " msgstr "" -#: fpdb.pyw:599 +#: fpdb.pyw:601 msgid " Villains' cache starts: " msgstr "" -#: fpdb.pyw:612 +#: fpdb.pyw:614 msgid " Rebuilding HUD Cache ... " msgstr "" -#: fpdb.pyw:620 +#: fpdb.pyw:622 msgid "User cancelled rebuilding hud cache" msgstr "" -#: fpdb.pyw:632 +#: fpdb.pyw:634 msgid "Confirm rebuilding database indexes" msgstr "" -#: fpdb.pyw:633 +#: fpdb.pyw:635 msgid "Please confirm that you want to rebuild the database indexes." msgstr "" -#: fpdb.pyw:641 +#: fpdb.pyw:643 msgid " Rebuilding Indexes ... " msgstr "" -#: fpdb.pyw:648 +#: fpdb.pyw:650 msgid " Cleaning Database ... " msgstr "" -#: fpdb.pyw:653 +#: fpdb.pyw:655 msgid " Analyzing Database ... " msgstr "" -#: fpdb.pyw:658 +#: fpdb.pyw:660 msgid "User cancelled rebuilding db indexes" msgstr "" -#: fpdb.pyw:753 +#: fpdb.pyw:755 msgid "Unimplemented: Save Profile (try saving a HUD layout, that should do it)" msgstr "" -#: fpdb.pyw:756 +#: fpdb.pyw:758 msgid "Fatal Error - Config File Missing" msgstr "" -#: fpdb.pyw:758 +#: fpdb.pyw:760 msgid "Please copy the config file from the docs folder to:" msgstr "" -#: fpdb.pyw:766 +#: fpdb.pyw:768 msgid "and edit it according to the install documentation at http://fpdb.sourceforge.net" msgstr "" -#: fpdb.pyw:823 +#: fpdb.pyw:825 msgid "_Main" msgstr "" -#: fpdb.pyw:824 fpdb.pyw:852 +#: fpdb.pyw:826 fpdb.pyw:854 msgid "_Quit" msgstr "" -#: fpdb.pyw:825 +#: fpdb.pyw:827 msgid "L" msgstr "" -#: fpdb.pyw:825 +#: fpdb.pyw:827 msgid "_Load Profile (broken)" msgstr "" -#: fpdb.pyw:826 +#: fpdb.pyw:828 msgid "S" msgstr "" -#: fpdb.pyw:826 +#: fpdb.pyw:828 msgid "_Save Profile (todo)" msgstr "" -#: fpdb.pyw:827 +#: fpdb.pyw:829 msgid "F" msgstr "" -#: fpdb.pyw:827 +#: fpdb.pyw:829 msgid "Pre_ferences" msgstr "" -#: fpdb.pyw:828 +#: fpdb.pyw:830 msgid "_Import" msgstr "" -#: fpdb.pyw:829 +#: fpdb.pyw:831 msgid "_Set HandHistory Archive Directory" msgstr "" -#: fpdb.pyw:830 +#: fpdb.pyw:832 msgid "B" msgstr "" -#: fpdb.pyw:830 +#: fpdb.pyw:832 msgid "_Bulk Import" msgstr "" -#: fpdb.pyw:831 +#: fpdb.pyw:833 msgid "I" msgstr "" -#: fpdb.pyw:831 +#: fpdb.pyw:833 msgid "_Import through eMail/IMAP" msgstr "" -#: fpdb.pyw:832 +#: fpdb.pyw:834 msgid "_Viewers" msgstr "" -#: fpdb.pyw:833 +#: fpdb.pyw:835 msgid "A" msgstr "" -#: fpdb.pyw:833 +#: fpdb.pyw:835 msgid "_Auto Import and HUD" msgstr "" -#: fpdb.pyw:834 +#: fpdb.pyw:836 msgid "H" msgstr "" -#: fpdb.pyw:834 +#: fpdb.pyw:836 msgid "_HUD Configurator" msgstr "" -#: fpdb.pyw:835 +#: fpdb.pyw:837 msgid "G" msgstr "" -#: fpdb.pyw:835 +#: fpdb.pyw:837 msgid "_Graphs" msgstr "" -#: fpdb.pyw:836 +#: fpdb.pyw:838 msgid "P" msgstr "" -#: fpdb.pyw:836 +#: fpdb.pyw:838 msgid "Ring _Player Stats (tabulated view)" msgstr "" -#: fpdb.pyw:837 +#: fpdb.pyw:839 msgid "T" msgstr "" -#: fpdb.pyw:837 +#: fpdb.pyw:839 msgid "_Tourney Player Stats (tabulated view)" msgstr "" -#: fpdb.pyw:838 +#: fpdb.pyw:840 msgid "Tourney _Viewer" msgstr "" -#: fpdb.pyw:839 +#: fpdb.pyw:841 msgid "O" msgstr "" -#: fpdb.pyw:839 +#: fpdb.pyw:841 msgid "P_ositional Stats (tabulated view, not on sqlite)" msgstr "" -#: fpdb.pyw:840 fpdb.pyw:1057 +#: fpdb.pyw:842 fpdb.pyw:1059 msgid "Session Stats" msgstr "" -#: fpdb.pyw:841 +#: fpdb.pyw:843 msgid "_Database" msgstr "" -#: fpdb.pyw:842 +#: fpdb.pyw:844 msgid "_Maintain Databases" msgstr "" -#: fpdb.pyw:843 +#: fpdb.pyw:845 msgid "Create or Recreate _Tables" msgstr "" -#: fpdb.pyw:844 +#: fpdb.pyw:846 msgid "Rebuild HUD Cache" msgstr "" -#: fpdb.pyw:845 +#: fpdb.pyw:847 msgid "Rebuild DB Indexes" msgstr "" -#: fpdb.pyw:846 +#: fpdb.pyw:848 msgid "_Statistics" msgstr "" -#: fpdb.pyw:847 +#: fpdb.pyw:849 msgid "Dump Database to Textfile (takes ALOT of time)" msgstr "" -#: fpdb.pyw:848 +#: fpdb.pyw:850 msgid "_Help" msgstr "" -#: fpdb.pyw:849 +#: fpdb.pyw:851 msgid "_Log Messages" msgstr "" -#: fpdb.pyw:850 +#: fpdb.pyw:852 msgid "A_bout, License, Copying" msgstr "" -#: fpdb.pyw:868 +#: fpdb.pyw:870 msgid "" "There is an error in your config file\n" msgstr "" -#: fpdb.pyw:869 +#: fpdb.pyw:871 msgid "" "\n" "\n" "Error is: " msgstr "" -#: fpdb.pyw:870 +#: fpdb.pyw:872 msgid "CONFIG FILE ERROR" msgstr "" -#: fpdb.pyw:876 +#: fpdb.pyw:878 msgid "Config file" msgstr "" -#: fpdb.pyw:877 +#: fpdb.pyw:879 msgid "" "has been created at:\n" "%s.\n" msgstr "" -#: fpdb.pyw:878 +#: fpdb.pyw:880 msgid "Edit your screen_name and hand history path in the supported_sites " msgstr "" -#: fpdb.pyw:879 +#: fpdb.pyw:881 msgid "section of the Preferences window (Main menu) before trying to import hands." msgstr "" -#: fpdb.pyw:902 +#: fpdb.pyw:904 msgid "Connected to SQLite: %(database)s" msgstr "" -#: fpdb.pyw:906 +#: fpdb.pyw:908 msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " msgstr "" -#: fpdb.pyw:907 +#: fpdb.pyw:909 msgid "Please check that the MySQL service has been started" msgstr "" -#: fpdb.pyw:911 +#: fpdb.pyw:913 msgid "Postgres client reports: Unable to connect - " msgstr "" -#: fpdb.pyw:912 +#: fpdb.pyw:914 msgid "Please check that the Postgres service has been started" msgstr "" -#: fpdb.pyw:936 +#: fpdb.pyw:938 msgid "Strong Warning - Invalid database version" msgstr "" -#: fpdb.pyw:938 +#: fpdb.pyw:940 msgid "An invalid DB version or missing tables have been detected." msgstr "" -#: fpdb.pyw:942 +#: fpdb.pyw:944 msgid "This error is not necessarily fatal but it is strongly recommended that you recreate the tables by using the Database menu." msgstr "" -#: fpdb.pyw:946 +#: fpdb.pyw:948 msgid "Not doing this will likely lead to misbehaviour including fpdb crashes, corrupt data etc." msgstr "" -#: fpdb.pyw:959 +#: fpdb.pyw:961 msgid "Status: Connected to %s database named %s on host %s" msgstr "" -#: fpdb.pyw:969 +#: fpdb.pyw:971 msgid "" "\n" "Global lock taken by" msgstr "" -#: fpdb.pyw:972 +#: fpdb.pyw:974 msgid "" "\n" "Failed to get global lock, it is currently held by" msgstr "" -#: fpdb.pyw:982 +#: fpdb.pyw:984 msgid "Quitting normally" msgstr "" -#: fpdb.pyw:1006 +#: fpdb.pyw:1008 msgid "" "Global lock released.\n" msgstr "" -#: fpdb.pyw:1013 +#: fpdb.pyw:1015 msgid "Auto Import" msgstr "" -#: fpdb.pyw:1020 +#: fpdb.pyw:1022 msgid "Bulk Import" msgstr "" -#: fpdb.pyw:1026 +#: fpdb.pyw:1028 msgid "eMail Import" msgstr "" -#: fpdb.pyw:1033 +#: fpdb.pyw:1035 msgid "Ring Player Stats" msgstr "" -#: fpdb.pyw:1039 +#: fpdb.pyw:1041 msgid "Tourney Player Stats" msgstr "" -#: fpdb.pyw:1045 +#: fpdb.pyw:1047 msgid "Tourney Viewer" msgstr "" -#: fpdb.pyw:1051 +#: fpdb.pyw:1053 msgid "Positional Stats" msgstr "" -#: fpdb.pyw:1061 +#: fpdb.pyw:1063 msgid "" "Fpdb needs translators!\n" "If you speak another language and have a few minutes or more to spare get in touch by emailing steffen@schaumburger.info\n" @@ -2064,43 +2530,139 @@ msgid "" "You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt and mit.txt in the fpdb installation directory." msgstr "" -#: fpdb.pyw:1078 +#: fpdb.pyw:1080 msgid "Help" msgstr "" -#: fpdb.pyw:1085 +#: fpdb.pyw:1087 msgid "Graphs" msgstr "" -#: fpdb.pyw:1135 +#: fpdb.pyw:1137 msgid "" "\n" "Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt in:\n" msgstr "" -#: fpdb.pyw:1164 +#: fpdb.pyw:1166 msgid "fpdb starting ..." msgstr "" -#: fpdb.pyw:1213 +#: fpdb.pyw:1215 msgid "FPDB WARNING" msgstr "" -#: fpdb.pyw:1232 +#: fpdb.pyw:1234 msgid "" "WARNING: Unable to find output hh directory %s\n" "\n" " Press YES to create this directory, or NO to select a new one." msgstr "" -#: fpdb.pyw:1240 +#: fpdb.pyw:1242 msgid "WARNING: Unable to create hand output directory. Importing is not likely to work until this is fixed." msgstr "" -#: fpdb.pyw:1245 +#: fpdb.pyw:1247 msgid "Select HH Output Directory" msgstr "" +#: fpdb_import.py:60 +msgid "Import database module: MySQLdb not found" +msgstr "" + +#: fpdb_import.py:67 +msgid "Import database module: psycopg2 not found" +msgstr "" + +#: fpdb_import.py:178 +msgid "Database ID for %s not found" +msgstr "" + +#: fpdb_import.py:180 +msgid "[ERROR] More than 1 Database ID found for %s - Multiple currencies not implemented yet" +msgstr "" + +#: fpdb_import.py:216 +msgid "Attempted to add non-directory: '%s' as an import directory" +msgstr "" + +#: fpdb_import.py:226 +msgid "Started at %s -- %d files to import. indexes: %s" +msgstr "" + +#: fpdb_import.py:235 +msgid "No need to drop indexes." +msgstr "" + +#: fpdb_import.py:254 +msgid "writers finished already" +msgstr "" + +#: fpdb_import.py:257 +msgid "waiting for writers to finish ..." +msgstr "" + +#: fpdb_import.py:267 +msgid " ... writers finished" +msgstr "" + +#: fpdb_import.py:273 +msgid "No need to rebuild indexes." +msgstr "" + +#: fpdb_import.py:277 +msgid "No need to rebuild hudcache." +msgstr "" + +#: fpdb_import.py:302 +msgid "sending finish msg qlen =" +msgstr "" + +#: fpdb_import.py:428 fpdb_import.py:430 +msgid "Converting " +msgstr "" + +#: fpdb_import.py:466 +msgid "Hand processed but empty" +msgstr "" + +#: fpdb_import.py:479 +msgid "fpdb_import: sending hand to hud" +msgstr "" + +#: fpdb_import.py:482 +msgid "Failed to send hand to HUD: %s" +msgstr "" + +#: fpdb_import.py:493 +msgid "Unknown filter filter_name:'%s' in filter:'%s'" +msgstr "" + +#: fpdb_import.py:504 +msgid "Error No.%s please send the hand causing this to fpdb-main@lists.sourceforge.net so we can fix the problem." +msgstr "" + +#: fpdb_import.py:505 +msgid "Filename:" +msgstr "" + +#: fpdb_import.py:506 +msgid "Here is the first line of the hand so you can identify it. Please mention that the error was a ValueError:" +msgstr "" + +#: fpdb_import.py:508 +msgid "Hand logged to hand-errors.txt" +msgstr "" + +#: fpdb_import.py:516 +msgid "CLI for fpdb_import is now available as CliFpdb.py" +msgstr "" + +#: interlocks.py:49 +msgid "lock already held by:" +msgstr "" + #: test_Database.py:50 msgid "DEBUG: Testing variance function" msgstr "" @@ -2109,13 +2671,13 @@ msgstr "" msgid "DEBUG: result: %s expecting: 0.666666 (result-expecting ~= 0.0): %s" msgstr "" -#: windows_make_bats.py:31 +#: windows_make_bats.py:39 msgid "" "\n" "This script is only for windows\n" msgstr "" -#: windows_make_bats.py:58 +#: windows_make_bats.py:66 msgid "" "\n" "no gtk directories found in your path - install gtk or edit the path manually\n" From e8d0c425667bb3f21559eb895f0ddf7556413376 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 16 Aug 2010 23:49:50 +0200 Subject: [PATCH 229/301] gettext import for guiprefs --- pyfpdb/GuiPrefs.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pyfpdb/GuiPrefs.py b/pyfpdb/GuiPrefs.py index 6d908ec6..6c8c6210 100755 --- a/pyfpdb/GuiPrefs.py +++ b/pyfpdb/GuiPrefs.py @@ -23,8 +23,19 @@ pygtk.require('2.0') import gtk import gobject -import Configuration +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string +import Configuration rewrite = { 'general' : 'General', 'supported_databases' : 'Databases' , 'import' : 'Import', 'hud_ui' : 'HUD' From 7c0358dc2064019c851598a4e93b729222d17476 Mon Sep 17 00:00:00 2001 From: gimick Date: Mon, 16 Aug 2010 23:00:08 +0100 Subject: [PATCH 230/301] Test: resave test HH's as UTF-8/unix --- ...- No Limit Hold'em - dateformat change.txt | Bin 2378 -> 1149 bytes ... singlehand session postBB out of turn.txt | Bin 2654 -> 1274 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/pyfpdb/regression-test-files/cash/FTP/Flop/FT20100721 Flash - $0.02-$0.05 - No Limit Hold'em - dateformat change.txt b/pyfpdb/regression-test-files/cash/FTP/Flop/FT20100721 Flash - $0.02-$0.05 - No Limit Hold'em - dateformat change.txt index 4386557b340ccd6fff8289cd09f9086596179615..ca8234076269cf103462750e6cdd30d74e395f06 100644 GIT binary patch literal 1149 zcmZ`&(Qeu>6n)QET&a~>5X+K~K*$>#Wz|%=4T7d=+JlJ=v2bD(JL@X#<98Dq2vd29 za*vPgbI(1V*Fr$bg@&(k&noyt3I;bp5XNyFjE7#7KuR`(!CVlP!#lY3TrYUvd?T!$ zB|PzhYj~7`-mwB9KT7-|Jf!&hozVe&uEi?^{s02c_nZ|Y8vFz*SrS31KN(Hn{x)#O zUeBxr2`Ejfz2_kwx}k6JAqw%T;U7f(z@3aO947Eu>0Iy~shXw8;;4HueO{+C1Y6Zp*)mt}*UPmWPYE*RU(qC=h}aHwQWgAXq`X^)BBF^aL59i-9< zbk0B(1fAUoUQ&=-W1C~|KC?D_cgcyI6gO{btx*qGz)Mh#WjCSI@Au*H%hLmVoGxc8 zz|xs9f|Jwo*woK&3PSqJvHfguD9Sl?Vaf~n2I>yO?y(~Mm~1vZk40U1sPQGB->g9UDT$bX}E*o|-(GSk&2G9g7!U8ru(2 zdP*+ku5|Q zBGNAOwkw*UYG$w!1C|nsu~vgBY7joatc)ToR1zN>L918{H}VKI;_XYqR6=_*;UD3kj$`&Rw20qr0TKv zRGt+l117MXYV9ndRqK6~zCxxc>XrbJw{ipBSjw1~L-*d3pW_wuScwc#5i4>ogFjZ3 zJSGp%5p#lbDrfjxGLU@m5ooeDg8p=+rH=Ar=)8}RM~-EYB5Fn>U|a?FHoy{kf3Ax> z{{-IeL-HLec!KH;aJILU+fz;3kF;zmaetRD>L)^;Kh&~cuQTY7;hEmmYvbQ9uZAzT ztap5=YM=PGL-bD36aGyT`^gL9*~2E9V?~*H8RR!XeK|EOLS#^``L42*qc)sqmLIGf z@ov)aqw`tl-<^VQW5+;ic?1uP%x7R5Ulw|Ejo(WbMZLatp3cEB_J^&f&*2+o8xbk` zfvl!?cA%ZUk(&nv{|1;DM_A%k5$w*Qi|gE30Pp!&$HmeAcnwJlUIP9DO{*j`NRQkt)wh zM(|ZmQBS{C&2K_|{?Q9Nj}w+Xm^!7pjwOPm3|K6g<+x!Pv CU}abU diff --git a/pyfpdb/regression-test-files/cash/FTP/Flop/FT20100804 Venice (6 max) - $0.01-$0.02 - singlehand session postBB out of turn.txt b/pyfpdb/regression-test-files/cash/FTP/Flop/FT20100804 Venice (6 max) - $0.01-$0.02 - singlehand session postBB out of turn.txt index 90c07bb881b431d0d637eed209ba55e12118ba6c..91f29aeba55ea3728899319c6e52e80d7922d593 100644 GIT binary patch literal 1274 zcmaJ>U2obz5PbKqSSghPs13feO~7xofhHCCs4``izyKfZguvumI& z4@fszW@l!1Gq2JVLY_)^5eHVl$0%cPMd_FlLMSB@AHrypGI(V8Jl{y!5zfC8{!(=Yj78FYQRwgdNs)yo9bo+j-r$$$UTEH zi!hQ+%JT%oR@*dXPN!_ccc(?vGJZ5w9gO8c$zqWwC8TUCK?;asY1ll&rYl2iy{V)W zIq(vAjz7eduBbH_4B-BGF@q1&;BE={wC-4h14A;?as4@gPw`j7>%taiP_|v-J&O-z zqt3h<-!Ymk&rF&U)p)*meo-x9?IbWQf$p0w1WuTo)29a;hIwjhMrBtOF&fRE&~eG7 z_IpVgJiN|=Q%*oeSl_mJ{*#uB+P&y{bJPI4 zc2>DE!V;BgaySC5a=;7h#| zp^#CE8zoifNdF6h=)lZm-;1b7{69lPi=YgiU7~V8ygW+1qy2M_HB-QlI#-?WB)^t*q&=vBwfStN$^W+FMY`vc$sA EZ{}@-#{d8T literal 2654 zcmbtW+iuf95S?cv{$VAMnj$W-leA6W3Qf2OT1ZnQRPo?AO{qwlDo(jbd^>Q?thZTv z?SzXgCu{G{?3p=dXZ-7DUv6ZI%g9hJ@xR3At<2@KoXY~^=aR?_V)zw{3cgZ(YRC@W&EVymY-98Y_kC%~W89HExgE#(+!6LR@*4It+(h#N zZ>BPqE%=+|t0L)O-!>5JW7Ngl9`IZ5v3hR8cN1v&+m^d>M^0d$sK-b#U*vnFh}B3V zN3x6c+oko~#mF^KB=Q|z7T9;aMJup~Jc}-HmG@`|7OmW(gIq<3p=`kn6j8Nvi#S-j z6Rhocc=m2%_G2XCYvevd&N7Ub@<|!ZlufG{a()T6$C#hX1ive8nRDMC-`S%_(wP~OI-ABfSvxC z1G}qL7|#m5KhTRBK8B`ySo2H{WFUu7qseEv?hyDAprqa{!eX>%@=kO73b;Q8xXJqj zcz8;(V3tv(ik(Wg^F{CFS)VnkAXRKrjnw5j3icttWlt{tKB7NHU2!oRIg^$~bf8{i z;0xojdsB5Qz0ku3=jg<9e@sj6a zE{j?j$|)3bv>{i_V7oGF|C1Fzdw+&@ATLqzdqBL7Ta#lY>RqrIa{Vu;BlMQ492fa2 z$FzyDQ*h`Mf36y}8Y)&e?rqQssID9QUtz>5Xiu-dXD7f&UCv-tt!mDGRV8KW&sJU5 zB~}O5r`Q2)M{sBC1iE>Hi}mFLR@(Q>&roftJ6qrA$DRfo#Sc6WaK_p5-3+@kZJ)w6 zL40HFAmORC%o>l?^?lZHW3y#zsOv0!Ae^HDbKjMhy6)@OVSZU`;&tV*t~*zEHv0a1 z)OGzl>~@>{4-nZGFtaG-rMmx*v3d+OZmC+FavOyR%3l)IUkB`;tW>PN%Us<>^*uyp LoQ}ySdGqhzcU_2R From c49565fcb18b770817a82aec155dc70d547580ac Mon Sep 17 00:00:00 2001 From: Mika Bostrom Date: Tue, 17 Aug 2010 07:56:00 +0300 Subject: [PATCH 231/301] Fix config file copying for debian package If there is no config file in ~/.fpdb/ copy it from the package's /usr/share path --- pyfpdb/Configuration.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index 618d27da..ae578f57 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -84,6 +84,13 @@ def get_config(file_name, fallback = True): # print "config path 2=", config_path if os.path.exists(config_path): return (config_path,False) + # Copy from example (debian package) + try: + example_path = '/usr/share/python-fpdb/' + file_name + '.example' + shutil.copyfile(example_path, config_path) + return (config_path,False) + except IOError: + pass # No file found if not fallback: From f18cc00c0d1e7055eb34cdd2f9f8739903ce5b2f Mon Sep 17 00:00:00 2001 From: Mika Bostrom Date: Tue, 17 Aug 2010 08:18:46 +0300 Subject: [PATCH 232/301] Move sample copying after fallback test Only try to copy the example HUD_config.xml after fallback has been tested against, and even then only on platform where the debian path can exist --- pyfpdb/Configuration.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index ae578f57..d1f0efec 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -84,18 +84,26 @@ def get_config(file_name, fallback = True): # print "config path 2=", config_path if os.path.exists(config_path): return (config_path,False) - # Copy from example (debian package) - try: - example_path = '/usr/share/python-fpdb/' + file_name + '.example' - shutil.copyfile(example_path, config_path) - return (config_path,False) - except IOError: - pass # No file found if not fallback: return (False,False) +# Example configuration for debian package + if os.name == 'posix': + # If we're on linux, try to copy example from the place + # debian package puts it; get_default_config_path() creates + # the config directory for us so there's no need to check it + # again + example_path = '/usr/share/python-fpdb/' + file_name + '.example' + try: + shutil.copyfile(example_path, config_path) + msg = 'Configuration file created: %s\n' % config_path + logging.info(msg) + return (config_path,False) + except IOError: + pass + # OK, fall back to the .example file, should be in the start dir if os.path.exists(file_name + ".example"): try: From f1b051a99a9952595faa7bf709184ed4c2b0acca Mon Sep 17 00:00:00 2001 From: Mika Bostrom Date: Tue, 17 Aug 2010 08:25:23 +0300 Subject: [PATCH 233/301] Update changelog --- packaging/debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packaging/debian/changelog b/packaging/debian/changelog index 2bd7df9b..49211161 100644 --- a/packaging/debian/changelog +++ b/packaging/debian/changelog @@ -1,3 +1,9 @@ +free-poker-tools (0.20.904-2) unstable; urgency=low + + * On fpdb start, copy example HUD_config.xml in place if none is present + + -- Mika Bostrom Tue, 17 Aug 2010 08:23:31 +0300 + free-poker-tools (0.20.904-1) unstable; urgency=low * .904 snapshot release From bde9a4016339a3e85e0b0a9b4c991c9a8a5dad69 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 17 Aug 2010 19:50:22 +0200 Subject: [PATCH 234/301] gettextify pyfpdb/Stats.py --- pyfpdb/Stats.py | 198 +++++++++++++++++++++--------------------------- 1 file changed, 85 insertions(+), 113 deletions(-) diff --git a/pyfpdb/Stats.py b/pyfpdb/Stats.py index e38b5806..ffb1e47e 100755 --- a/pyfpdb/Stats.py +++ b/pyfpdb/Stats.py @@ -55,6 +55,18 @@ import pygtk import gtk import re +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + # FreePokerTools modules import Configuration import Database @@ -88,8 +100,8 @@ def do_stat(stat_dict, player = 24, stat = 'vpip'): result = eval("%(stat)s(stat_dict, %(player)d)" % {'stat': base, 'player': player}) except: pass # - log.info("exception getting stat "+base+" for player "+str(player)+str(sys.exc_info())) - log.debug("result = %s" % str(result) ) + log.info(_("exception getting stat %s for player %s %s") % (base, str(player), str(sys.exc_info()))) + log.debug(_("Stats.do_stat result = %s") % str(result) ) match = re_Percent.search(result[1]) try: @@ -98,7 +110,7 @@ def do_stat(stat_dict, player = 24, stat = 'vpip'): else: result = (result[0], "%.*f%%" % (places, 100*result[0]), result[2], result[3], result[4], result[5]) except: - log.info( "error: %s" % str(sys.exc_info())) + log.info(_("error: %s") % str(sys.exc_info())) raise return result @@ -117,8 +129,8 @@ def totalprofit(stat_dict, player): """ Total Profit.""" if stat_dict[player]['net'] != 0: stat = float(stat_dict[player]['net']) / 100 - return (stat, '$%.2f' % stat, 'tp=$%.2f' % stat, 'totalprofit=$%.2f' % stat, str(stat), 'Total Profit') - return ('0', '$0.00', 'tp=0', 'totalprofit=0', '0', 'Total Profit') + return (stat, '$%.2f' % stat, 'tp=$%.2f' % stat, 'totalprofit=$%.2f' % stat, str(stat), _('Total Profit')) + return ('0', '$0.00', 'tp=0', 'totalprofit=0', '0', _('Total Profit')) def playername(stat_dict, player): """ Player Name.""" @@ -139,14 +151,14 @@ def vpip(stat_dict, player): 'v=%3.1f' % (100*stat) + '%', 'vpip=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['vpip'], stat_dict[player]['n']), - 'Voluntarily Put In Pot Pre-Flop%' + _('Voluntarily Put In Pot Pre-Flop%') ) except: return (stat, '%3.1f' % (0) + '%', 'v=%3.1f' % (0) + '%', 'vpip=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - 'Voluntarily Put In Pot Pre-Flop%' + _('Voluntarily Put In Pot Pre-Flop%') ) def pfr(stat_dict, player): @@ -159,7 +171,7 @@ def pfr(stat_dict, player): 'p=%3.1f' % (100*stat) + '%', 'pfr=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['pfr'], stat_dict[player]['n']), - 'Pre-Flop Raise %' + _('Pre-Flop Raise %') ) except: return (stat, @@ -167,7 +179,7 @@ def pfr(stat_dict, player): 'p=%3.1f' % (0) + '%', 'pfr=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - 'Pre-Flop Raise %' + _('Pre-Flop Raise %') ) def wtsd(stat_dict, player): @@ -180,7 +192,7 @@ def wtsd(stat_dict, player): 'w=%3.1f' % (100*stat) + '%', 'wtsd=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['sd'], stat_dict[player]['saw_f']), - '% went to showdown' + _('% went to showdown') ) except: return (stat, @@ -188,7 +200,7 @@ def wtsd(stat_dict, player): 'w=%3.1f' % (0) + '%', 'wtsd=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - '% went to showdown' + _('% went to showdown') ) def wmsd(stat_dict, player): @@ -201,7 +213,7 @@ def wmsd(stat_dict, player): 'w=%3.1f' % (100*stat) + '%', 'wmsd=%3.1f' % (100*stat) + '%', '(%5.1f/%d)' % (float(stat_dict[player]['wmsd']), stat_dict[player]['sd']), - '% won money at showdown' + _('% won money at showdown') ) except: return (stat, @@ -209,7 +221,7 @@ def wmsd(stat_dict, player): 'w=%3.1f' % (0) + '%', 'wmsd=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - '% won money at showdown' + _('% won money at showdown') ) def profit100(stat_dict, player): @@ -222,16 +234,16 @@ def profit100(stat_dict, player): 'p=%.0f' % (100.0*stat), 'p/100=%.0f' % (100.0*stat), '%d/%d' % (stat_dict[player]['net'], stat_dict[player]['n']), - 'profit/100hands' + _('profit/100hands') ) except: - print "exception calcing p/100: 100 * %d / %d" % (stat_dict[player]['net'], stat_dict[player]['n']) + print _("exception calcing p/100: 100 * %d / %d") % (stat_dict[player]['net'], stat_dict[player]['n']) return (stat, '%.0f' % (0.0), 'p=%.0f' % (0.0), 'p/100=%.0f' % (0.0), '(%d/%d)' % (0, 0), - 'profit/100hands' + _('profit/100hands') ) def bbper100(stat_dict, player): @@ -244,7 +256,7 @@ def bbper100(stat_dict, player): 'bb100=%5.3f' % (stat), 'bb100=%5.3f' % (stat), '(%d,%d)' % (100*stat_dict[player]['net'],stat_dict[player]['bigblind']), - 'big blinds/100 hands' + _('big blinds/100 hands') ) except: log.info("exception calcing bb/100: "+str(stat_dict[player])) @@ -253,7 +265,7 @@ def bbper100(stat_dict, player): 'bb100=%.0f' % (0), 'bb100=%.0f' % (0), '(%f)' % (0), - 'big blinds/100 hands' + _('big blinds/100 hands') ) def BBper100(stat_dict, player): @@ -266,16 +278,16 @@ def BBper100(stat_dict, player): 'BB100=%5.3f' % (stat), 'BB100=%5.3f' % (stat), '(%d,%d)' % (100*stat_dict[player]['net'],2*stat_dict[player]['bigblind']), - 'Big Bets/100 hands' + _('Big Bets/100 hands') ) except: - log.info("exception calcing BB/100: "+str(stat_dict[player])) + log.info(_("exception calcing BB/100: ")+str(stat_dict[player])) return (stat, '%.0f' % (0.0), 'BB100=%.0f' % (0.0), 'BB100=%.0f' % (0.0), '(%f)' % (0.0), - 'Big Bets/100 hands' + _('Big Bets/100 hands') ) def saw_f(stat_dict, player): @@ -289,7 +301,7 @@ def saw_f(stat_dict, player): 'sf=%3.1f' % (100*stat) + '%', 'saw_f=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['saw_f'], stat_dict[player]['n']), - 'Flop Seen %' + _('Flop Seen %') ) except: stat = 0.0 @@ -300,7 +312,7 @@ def saw_f(stat_dict, player): 'sf=%3.1f' % (stat) + '%', 'saw_f=%3.1f' % (stat) + '%', '(%d/%d)' % (num, den), - 'Flop Seen %' + _('Flop Seen %') ) def n(stat_dict, player): @@ -323,7 +335,7 @@ def n(stat_dict, player): 'n=%d' % (stat_dict[player]['n']), 'n=%d' % (stat_dict[player]['n']), '(%d)' % (stat_dict[player]['n']), - 'number hands seen' + _('number hands seen') ) except: return (0, @@ -331,7 +343,7 @@ def n(stat_dict, player): 'n=%d' % (0), 'n=%d' % (0), '(%d)' % (0), - 'number hands seen' + _('number hands seen') ) def fold_f(stat_dict, player): @@ -344,7 +356,7 @@ def fold_f(stat_dict, player): 'ff=%3.1f' % (100*stat) + '%', 'fold_f=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['fold_2'], stat_dict[player]['saw_f']), - 'folded flop/4th' + _('folded flop/4th') ) except: return (stat, @@ -352,7 +364,7 @@ def fold_f(stat_dict, player): 'ff=%3.1f' % (0) + '%', 'fold_f=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - 'folded flop/4th' + _('folded flop/4th') ) def steal(stat_dict, player): @@ -365,7 +377,7 @@ def steal(stat_dict, player): 'st=%3.1f' % (100*stat) + '%', 'steal=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['steal'], stat_dict[player]['steal_opp']), - '% steal attempted' + _('% steal attempted') ) except: return (stat, 'NA', 'st=NA', 'steal=NA', '(0/0)', '% steal attempted') @@ -380,15 +392,14 @@ def f_SB_steal(stat_dict, player): 'fSB=%3.1f' % (100*stat) + '%', 'fSB_s=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['sbnotdef'], stat_dict[player]['sbstolen']), - '% folded SB to steal' - ) + _('% folded SB to steal')) except: return (stat, 'NA', 'fSB=NA', 'fSB_s=NA', '(0/0)', - '% folded SB to steal') + _('% folded SB to steal')) def f_BB_steal(stat_dict, player): """ Folded BB to steal.""" @@ -400,15 +411,14 @@ def f_BB_steal(stat_dict, player): 'fBB=%3.1f' % (100*stat) + '%', 'fBB_s=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['bbnotdef'], stat_dict[player]['bbstolen']), - '% folded BB to steal' - ) + _('% folded BB to steal')) except: return (stat, 'NA', 'fBB=NA', 'fBB_s=NA', '(0/0)', - '% folded BB to steal') + _('% folded BB to steal')) def f_steal(stat_dict, player): """ Folded blind to steal.""" @@ -423,15 +433,14 @@ def f_steal(stat_dict, player): 'fB=%3.1f' % (100*stat) + '%', 'fB_s=%3.1f' % (100*stat) + '%', '(%d/%d)' % (folded_blind, blind_stolen), - '% folded blind to steal' - ) + _('% folded blind to steal')) except: return (stat, 'NA', 'fB=NA', 'fB_s=NA', '(0/0)', - '% folded blind to steal') + _('% folded blind to steal')) def three_B(stat_dict, player): """ Three bet preflop/3rd.""" @@ -443,16 +452,14 @@ def three_B(stat_dict, player): '3B=%3.1f' % (100*stat) + '%', '3B_pf=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['tb_0'], stat_dict[player]['tb_opp_0']), - '% 3/4 Bet preflop/3rd' - ) + _('% 3/4 Bet preflop/3rd')) except: return (stat, '%3.1f' % (0) + '%', '3B=%3.1f' % (0) + '%', '3B_pf=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - '% 3/4 Bet preflop/3rd' - ) + _('% 3/4 Bet preflop/3rd')) def WMsF(stat_dict, player): """ Won $ when saw flop/4th.""" @@ -464,16 +471,14 @@ def WMsF(stat_dict, player): 'wf=%3.1f' % (100*stat) + '%', 'w_w_f=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['w_w_s_1'], stat_dict[player]['saw_f']), - '% won$/saw flop/4th' - ) + _('% won$/saw flop/4th')) except: return (stat, '%3.1f' % (0) + '%', 'wf=%3.1f' % (0) + '%', 'w_w_f=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - '% won$/saw flop/4th' - ) + _('% won$/saw flop/4th')) def a_freq1(stat_dict, player): """ Flop/4th aggression frequency.""" @@ -485,16 +490,14 @@ def a_freq1(stat_dict, player): 'a1=%3.1f' % (100*stat) + '%', 'a_fq_1=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['aggr_1'], stat_dict[player]['saw_f']), - 'Aggression Freq flop/4th' - ) + _('Aggression Freq flop/4th')) except: return (stat, '%3.1f' % (0) + '%', 'a1=%3.1f' % (0) + '%', 'a_fq_1=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - 'Aggression Freq flop/4th' - ) + _('Aggression Freq flop/4th')) def a_freq2(stat_dict, player): """ Turn/5th aggression frequency.""" @@ -506,16 +509,14 @@ def a_freq2(stat_dict, player): 'a2=%3.1f' % (100*stat) + '%', 'a_fq_2=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['aggr_2'], stat_dict[player]['saw_2']), - 'Aggression Freq turn/5th' - ) + _('Aggression Freq turn/5th')) except: return (stat, '%3.1f' % (0) + '%', 'a2=%3.1f' % (0) + '%', 'a_fq_2=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - 'Aggression Freq turn/5th' - ) + _('Aggression Freq turn/5th')) def a_freq3(stat_dict, player): """ River/6th aggression frequency.""" @@ -527,16 +528,14 @@ def a_freq3(stat_dict, player): 'a3=%3.1f' % (100*stat) + '%', 'a_fq_3=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['aggr_3'], stat_dict[player]['saw_3']), - 'Aggression Freq river/6th' - ) + _('Aggression Freq river/6th')) except: return (stat, '%3.1f' % (0) + '%', 'a3=%3.1f' % (0) + '%', 'a_fq_3=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - 'Aggression Freq river/6th' - ) + _('Aggression Freq river/6th')) def a_freq4(stat_dict, player): """ 7th street aggression frequency.""" @@ -548,16 +547,14 @@ def a_freq4(stat_dict, player): 'a4=%3.1f' % (100*stat) + '%', 'a_fq_4=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['aggr_4'], stat_dict[player]['saw_4']), - 'Aggression Freq 7th' - ) + _('Aggression Freq 7th')) except: return (stat, '%3.1f' % (0) + '%', 'a4=%3.1f' % (0) + '%', 'a_fq_4=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - 'Aggression Freq 7th' - ) + _('Aggression Freq 7th')) def a_freq_123(stat_dict, player): """ Post-Flop aggression frequency.""" @@ -576,16 +573,14 @@ def a_freq_123(stat_dict, player): + stat_dict[player]['saw_2'] + stat_dict[player]['saw_3'] ), - 'Post-Flop Aggression Freq' - ) + _('Post-Flop Aggression Freq')) except: return (stat, '%2.0f' % (0) + '%', 'a3=%2.0f' % (0) + '%', 'a_fq_3=%2.0f' % (0) + '%', '(%d/%d)' % (0, 0), - 'Post-Flop Aggression Freq' - ) + _('Post-Flop Aggression Freq')) def agg_freq(stat_dict, player): """ Post-Flop aggression frequency.""" @@ -606,16 +601,14 @@ def agg_freq(stat_dict, player): 'afr=%3.1f' % (100*stat) + '%', 'agg_fr=%3.1f' % (100*stat) + '%', '(%d/%d)' % (bet_raise, (post_call + post_fold + bet_raise)), - 'Aggression Freq' - ) + _('Aggression Freq')) except: return (stat, '%2.1f' % (0) + '%', 'af=%3.1f' % (0) + '%', 'agg_f=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - 'Aggression Freq' - ) + _('Aggression Freq')) def agg_fact(stat_dict, player): """ Post-Flop aggression frequency.""" @@ -634,17 +627,14 @@ def agg_fact(stat_dict, player): 'afa=%2.2f' % (stat) , 'agg_fa=%2.2f' % (stat) , '(%d/%d)' % (bet_raise, post_call), - 'Aggression Factor' - ) + _('Aggression Factor')) except: return (stat, '%2.2f' % (0) , 'afa=%2.2f' % (0) , 'agg_fa=%2.2f' % (0), '(%d/%d)' % (0, 0), - 'Aggression Factor' - ) - + _('Aggression Factor')) def cbet(stat_dict, player): @@ -661,16 +651,14 @@ def cbet(stat_dict, player): 'cbet=%3.1f' % (100*stat) + '%', 'cbet=%3.1f' % (100*stat) + '%', '(%d/%d)' % (cbets, oppt), - '% continuation bet ' - ) + _('% continuation bet ')) except: return (stat, '%3.1f' % (0) + '%', 'cbet=%3.1f' % (0) + '%', 'cbet=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - '% continuation bet ' - ) + _('% continuation bet ')) def cb1(stat_dict, player): """ Flop continuation bet.""" @@ -682,16 +670,14 @@ def cb1(stat_dict, player): 'cb1=%3.1f' % (100*stat) + '%', 'cb_1=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['cb_1'], stat_dict[player]['cb_opp_1']), - '% continuation bet flop/4th' - ) + _('% continuation bet flop/4th')) except: return (stat, '%3.1f' % (0) + '%', 'cb1=%3.1f' % (0) + '%', 'cb_1=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - '% continuation bet flop/4th' - ) + _('% continuation bet flop/4th')) def cb2(stat_dict, player): """ Turn continuation bet.""" @@ -703,16 +689,14 @@ def cb2(stat_dict, player): 'cb2=%3.1f' % (100*stat) + '%', 'cb_2=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['cb_2'], stat_dict[player]['cb_opp_2']), - '% continuation bet turn/5th' - ) + _('% continuation bet turn/5th')) except: return (stat, '%3.1f' % (0) + '%', 'cb2=%3.1f' % (0) + '%', 'cb_2=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - '% continuation bet turn/5th' - ) + _('% continuation bet turn/5th')) def cb3(stat_dict, player): """ River continuation bet.""" @@ -724,16 +708,14 @@ def cb3(stat_dict, player): 'cb3=%3.1f' % (100*stat) + '%', 'cb_3=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['cb_3'], stat_dict[player]['cb_opp_3']), - '% continuation bet river/6th' - ) + _('% continuation bet river/6th')) except: return (stat, '%3.1f' % (0) + '%', 'cb3=%3.1f' % (0) + '%', 'cb_3=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - '% continuation bet river/6th' - ) + _('% continuation bet river/6th')) def cb4(stat_dict, player): """ 7th street continuation bet.""" @@ -745,16 +727,14 @@ def cb4(stat_dict, player): 'cb4=%3.1f' % (100*stat) + '%', 'cb_4=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['cb_4'], stat_dict[player]['cb_opp_4']), - '% continuation bet 7th' - ) + _('% continuation bet 7th')) except: return (stat, '%3.1f' % (0) + '%', 'cb4=%3.1f' % (0) + '%', 'cb_4=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - '% continuation bet 7th' - ) + _('% continuation bet 7th')) def ffreq1(stat_dict, player): """ Flop/4th fold frequency.""" @@ -766,16 +746,14 @@ def ffreq1(stat_dict, player): 'ff1=%3.1f' % (100*stat) + '%', 'ff_1=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['f_freq_1'], stat_dict[player]['was_raised_1']), - '% fold frequency flop/4th' - ) + _('% fold frequency flop/4th')) except: return (stat, 'NA', 'ff1=NA', 'ff_1=NA', '(0/0)', - '% fold frequency flop/4th' - ) + _('% fold frequency flop/4th')) def ffreq2(stat_dict, player): """ Turn/5th fold frequency.""" @@ -787,16 +765,14 @@ def ffreq2(stat_dict, player): 'ff2=%3.1f' % (100*stat) + '%', 'ff_2=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['f_freq_2'], stat_dict[player]['was_raised_2']), - '% fold frequency turn/5th' - ) + _('% fold frequency turn/5th')) except: return (stat, '%3.1f' % (0) + '%', 'ff2=%3.1f' % (0) + '%', 'ff_2=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - '% fold frequency turn/5th' - ) + _('% fold frequency turn/5th')) def ffreq3(stat_dict, player): """ River/6th fold frequency.""" @@ -808,16 +784,14 @@ def ffreq3(stat_dict, player): 'ff3=%3.1f' % (100*stat) + '%', 'ff_3=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['f_freq_3'], stat_dict[player]['was_raised_3']), - '% fold frequency river/6th' - ) + _('% fold frequency river/6th')) except: return (stat, '%3.1f' % (0) + '%', 'ff3=%3.1f' % (0) + '%', 'ff_3=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - '% fold frequency river/6th' - ) + _('% fold frequency river/6th')) def ffreq4(stat_dict, player): """ 7th fold frequency.""" @@ -829,16 +803,14 @@ def ffreq4(stat_dict, player): 'ff4=%3.1f' % (100*stat) + '%', 'ff_4=%3.1f' % (100*stat) + '%', '(%d/%d)' % (stat_dict[player]['f_freq_4'], stat_dict[player]['was_raised_4']), - '% fold frequency 7th' - ) + _('% fold frequency 7th')) except: return (stat, '%3.1f' % (0) + '%', 'ff4=%3.1f' % (0) + '%', 'ff_4=%3.1f' % (0) + '%', '(%d/%d)' % (0, 0), - '% fold frequency 7th' - ) + _('% fold frequency 7th')) if __name__== "__main__": statlist = dir() @@ -858,7 +830,7 @@ if __name__== "__main__": stat_dict = db_connection.get_stats_from_hand(h, "ring") for player in stat_dict.keys(): - print "Example stats, player =", player, "hand =", h, ":" + print (_("Example stats, player = %s hand = %s:") % (player, h)) for attr in statlist: print " ", do_stat(stat_dict, player=player, stat=attr) break @@ -891,8 +863,8 @@ if __name__== "__main__": #print "player = ", player, do_stat(stat_dict, player = player, stat = 'ffreq4') #print "\n" - print "\n\nLegal stats:" - print "(add _0 to name to display with 0 decimal places, _1 to display with 1, etc)\n" + print _("\n\nLegal stats:") + print _("(add _0 to name to display with 0 decimal places, _1 to display with 1, etc)\n") for attr in statlist: print "%-14s %s" % (attr, eval("%s.__doc__" % (attr))) # print " " % (attr) From f24011a58ed004bc421674e4c6410c3559c5687e Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 17 Aug 2010 19:53:08 +0200 Subject: [PATCH 235/301] re-revert "Revert "gettext-ify Hud.py" as it breaks HUD -> err32, broken pipe" This reverts commit 270657aeb098ee1274a32f9206cd38763f35025b. --- pyfpdb/Hud.py | 152 +++++++++++++++++++++++++------------------------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index a92682e7..0c608b52 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -134,153 +134,153 @@ class Hud: # A popup menu for the main window menu = gtk.Menu() - killitem = gtk.MenuItem('Kill This HUD') + killitem = gtk.MenuItem(_('Kill This HUD')) menu.append(killitem) if self.parent is not None: killitem.connect("activate", self.parent.kill_hud, self.table_name) - saveitem = gtk.MenuItem('Save HUD Layout') + saveitem = gtk.MenuItem(_('Save HUD Layout')) menu.append(saveitem) saveitem.connect("activate", self.save_layout) - repositem = gtk.MenuItem('Reposition StatWindows') + repositem = gtk.MenuItem(_('Reposition StatWindows')) menu.append(repositem) repositem.connect("activate", self.reposition_windows) - aggitem = gtk.MenuItem('Show Player Stats') + aggitem = gtk.MenuItem(_('Show Player Stats')) menu.append(aggitem) self.aggMenu = gtk.Menu() aggitem.set_submenu(self.aggMenu) # set agg_bb_mult to 1 to stop aggregation - item = gtk.CheckMenuItem('For This Blind Level Only') + item = gtk.CheckMenuItem(_('For This Blind Level Only')) self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('P',1)) setattr(self, 'h_aggBBmultItem1', item) - # - item = gtk.MenuItem('For Multiple Blind Levels:') + + item = gtk.MenuItem(_('For Multiple Blind Levels:')) self.aggMenu.append(item) - # - item = gtk.CheckMenuItem(' 0.5 to 2.0 x Current Blinds') + + item = gtk.CheckMenuItem(_(' 0.5 to 2.0 x Current Blinds')) self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('P',2)) setattr(self, 'h_aggBBmultItem2', item) - # - item = gtk.CheckMenuItem(' 0.33 to 3.0 x Current Blinds') + + item = gtk.CheckMenuItem(_(' 0.33 to 3.0 x Current Blinds')) self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('P',3)) setattr(self, 'h_aggBBmultItem3', item) - # - item = gtk.CheckMenuItem(' 0.1 to 10 x Current Blinds') + + item = gtk.CheckMenuItem(_(' 0.1 to 10 x Current Blinds')) self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('P',10)) setattr(self, 'h_aggBBmultItem10', item) - # - item = gtk.CheckMenuItem(' All Levels') + + item = gtk.CheckMenuItem(_(' All Levels')) self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('P',10000)) setattr(self, 'h_aggBBmultItem10000', item) - # - item = gtk.MenuItem('For #Seats:') + + item = gtk.MenuItem('For #Seats:')) self.aggMenu.append(item) - # - item = gtk.CheckMenuItem(' Any Number') + + item = gtk.CheckMenuItem(_(' Any Number')) self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('P','A')) setattr(self, 'h_seatsStyleOptionA', item) - # - item = gtk.CheckMenuItem(' Custom') + + item = gtk.CheckMenuItem(_(' Custom')) self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('P','C')) setattr(self, 'h_seatsStyleOptionC', item) - # - item = gtk.CheckMenuItem(' Exact') + + item = gtk.CheckMenuItem(_(' Exact')) self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('P','E')) setattr(self, 'h_seatsStyleOptionE', item) - # - item = gtk.MenuItem('Since:') + + item = gtk.MenuItem(_('Since:')) self.aggMenu.append(item) - # - item = gtk.CheckMenuItem(' All Time') + + item = gtk.CheckMenuItem(_(' All Time')) self.aggMenu.append(item) item.connect("activate", self.set_hud_style, ('P','A')) setattr(self, 'h_hudStyleOptionA', item) - # - item = gtk.CheckMenuItem(' Session') + + item = gtk.CheckMenuItem(_(' Session')) self.aggMenu.append(item) item.connect("activate", self.set_hud_style, ('P','S')) setattr(self, 'h_hudStyleOptionS', item) - # - item = gtk.CheckMenuItem(' %s Days' % (self.hud_params['h_hud_days'])) + + item = gtk.CheckMenuItem(_(' %s Days') % (self.hud_params['h_hud_days'])) self.aggMenu.append(item) item.connect("activate", self.set_hud_style, ('P','T')) setattr(self, 'h_hudStyleOptionT', item) - aggitem = gtk.MenuItem('Show Opponent Stats') + aggitem = gtk.MenuItem(_('Show Opponent Stats')) menu.append(aggitem) self.aggMenu = gtk.Menu() aggitem.set_submenu(self.aggMenu) # set agg_bb_mult to 1 to stop aggregation - item = gtk.CheckMenuItem('For This Blind Level Only') + item = gtk.CheckMenuItem(_('For This Blind Level Only')) self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('O',1)) setattr(self, 'aggBBmultItem1', item) - # - item = gtk.MenuItem('For Multiple Blind Levels:') + + item = gtk.MenuItem(_('For Multiple Blind Levels:')) self.aggMenu.append(item) - # - item = gtk.CheckMenuItem(' 0.5 to 2.0 x Current Blinds') + + item = gtk.CheckMenuItem(_(' 0.5 to 2.0 x Current Blinds')) self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('O',2)) setattr(self, 'aggBBmultItem2', item) - # - item = gtk.CheckMenuItem(' 0.33 to 3.0 x Current Blinds') + + item = gtk.CheckMenuItem(_(' 0.33 to 3.0 x Current Blinds')) self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('O',3)) setattr(self, 'aggBBmultItem3', item) - # - item = gtk.CheckMenuItem(' 0.1 to 10 x Current Blinds') + + item = gtk.CheckMenuItem(_(' 0.1 to 10 x Current Blinds')) self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('O',10)) setattr(self, 'aggBBmultItem10', item) - # - item = gtk.CheckMenuItem(' All Levels') + + item = gtk.CheckMenuItem(_(' All Levels')) self.aggMenu.append(item) item.connect("activate", self.set_aggregation, ('O',10000)) setattr(self, 'aggBBmultItem10000', item) - # - item = gtk.MenuItem('For #Seats:') + + item = gtk.MenuItem(_('For #Seats:')) self.aggMenu.append(item) - # - item = gtk.CheckMenuItem(' Any Number') + + item = gtk.CheckMenuItem(_(' Any Number')) self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('O','A')) setattr(self, 'seatsStyleOptionA', item) - # - item = gtk.CheckMenuItem(' Custom') + + item = gtk.CheckMenuItem(_(' Custom')) self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('O','C')) setattr(self, 'seatsStyleOptionC', item) - # - item = gtk.CheckMenuItem(' Exact') + + item = gtk.CheckMenuItem(_(' Exact')) self.aggMenu.append(item) item.connect("activate", self.set_seats_style, ('O','E')) setattr(self, 'seatsStyleOptionE', item) - # - item = gtk.MenuItem('Since:') + + item = gtk.MenuItem(_('Since:')) self.aggMenu.append(item) - # - item = gtk.CheckMenuItem(' All Time') + + item = gtk.CheckMenuItem(_(' All Time')) self.aggMenu.append(item) item.connect("activate", self.set_hud_style, ('O','A')) setattr(self, 'hudStyleOptionA', item) - # - item = gtk.CheckMenuItem(' Session') + + item = gtk.CheckMenuItem(_(' Session')) self.aggMenu.append(item) item.connect("activate", self.set_hud_style, ('O','S')) setattr(self, 'hudStyleOptionS', item) - # - item = gtk.CheckMenuItem(' %s Days' % (self.hud_params['h_hud_days'])) + + item = gtk.CheckMenuItem(_(' %s Days') % (self.hud_params['h_hud_days'])) self.aggMenu.append(item) item.connect("activate", self.set_hud_style, ('O','T')) setattr(self, 'hudStyleOptionT', item) @@ -296,7 +296,7 @@ class Hud: getattr(self, 'h_aggBBmultItem10').set_active(True) elif self.hud_params['h_agg_bb_mult'] > 9000: getattr(self, 'h_aggBBmultItem10000').set_active(True) - # + if self.hud_params['agg_bb_mult'] == 1: getattr(self, 'aggBBmultItem1').set_active(True) elif self.hud_params['agg_bb_mult'] == 2: @@ -307,28 +307,28 @@ class Hud: getattr(self, 'aggBBmultItem10').set_active(True) elif self.hud_params['agg_bb_mult'] > 9000: getattr(self, 'aggBBmultItem10000').set_active(True) - # + if self.hud_params['h_seats_style'] == 'A': getattr(self, 'h_seatsStyleOptionA').set_active(True) elif self.hud_params['h_seats_style'] == 'C': getattr(self, 'h_seatsStyleOptionC').set_active(True) elif self.hud_params['h_seats_style'] == 'E': getattr(self, 'h_seatsStyleOptionE').set_active(True) - # + if self.hud_params['seats_style'] == 'A': getattr(self, 'seatsStyleOptionA').set_active(True) elif self.hud_params['seats_style'] == 'C': getattr(self, 'seatsStyleOptionC').set_active(True) elif self.hud_params['seats_style'] == 'E': getattr(self, 'seatsStyleOptionE').set_active(True) - # + if self.hud_params['h_hud_style'] == 'A': getattr(self, 'h_hudStyleOptionA').set_active(True) elif self.hud_params['h_hud_style'] == 'S': getattr(self, 'h_hudStyleOptionS').set_active(True) elif self.hud_params['h_hud_style'] == 'T': getattr(self, 'h_hudStyleOptionT').set_active(True) - # + if self.hud_params['hud_style'] == 'A': getattr(self, 'hudStyleOptionA').set_active(True) elif self.hud_params['hud_style'] == 'S': @@ -338,11 +338,11 @@ class Hud: eventbox.connect_object("button-press-event", self.on_button_press, menu) - debugitem = gtk.MenuItem('Debug StatWindows') + debugitem = gtk.MenuItem(_('Debug StatWindows')) menu.append(debugitem) debugitem.connect("activate", self.debug_stat_windows) - item5 = gtk.MenuItem('Set max seats') + item5 = gtk.MenuItem(_('Set max seats')) menu.append(item5) maxSeatsMenu = gtk.Menu() item5.set_submenu(maxSeatsMenu) @@ -525,7 +525,7 @@ class Hud: # ask each aux to save its layout back to the config object [aux.save_layout() for aux in self.aux_windows] # save the config object back to the file - print "Updating config file" + print _("Updating config file") self.config.save() def adj_seats(self, hand, config): @@ -534,7 +534,7 @@ class Hud: adj = range(0, self.max + 1) # default seat adjustments = no adjustment # does the user have a fav_seat? if self.max not in config.supported_sites[self.table.site].layout: - sys.stderr.write("No layout found for %d-max games for site %s\n" % (self.max, self.table.site) ) + sys.stderr.write(_("No layout found for %d-max games for site %s\n") % (self.max, self.table.site) ) return adj if self.table.site != None and int(config.supported_sites[self.table.site].layout[self.max].fav_seat) > 0: try: @@ -548,15 +548,15 @@ class Hud: if adj[j] > self.max: adj[j] = adj[j] - self.max except Exception, inst: - sys.stderr.write("exception in adj!!!\n\n") - sys.stderr.write("error is %s" % inst) # __str__ allows args to printed directly + sys.stderr.write(_("exception in Hud.adj_seats\n\n")) + sys.stderr.write(_("error is %s") % inst) # __str__ allows args to printed directly return adj def get_actual_seat(self, name): for key in self.stat_dict: if self.stat_dict[key]['screen_name'] == name: return self.stat_dict[key]['seat'] - sys.stderr.write("Error finding actual seat.\n") + sys.stderr.write(_("Error finding actual seat.\n")) def create(self, hand, config, stat_dict, cards): # update this hud, to the stats and players as of "hand" @@ -572,7 +572,7 @@ class Hud: self.stat_dict = stat_dict self.cards = cards - sys.stderr.write("------------------------------------------------------------\nCreating hud from hand %s\n" % hand) + sys.stderr.write(_("------------------------------------------------------------\nCreating hud from hand %s\n") % hand) adj = self.adj_seats(hand, config) loc = self.config.get_locations(self.table.site, self.max) if loc is None and self.max != 10: @@ -621,8 +621,8 @@ class Hud: try: statd = self.stat_dict[s] except KeyError: - log.error("KeyError at the start of the for loop in update in hud_main. How this can possibly happen is totally beyond my comprehension. Your HUD may be about to get really weird. -Eric") - log.error("(btw, the key was ", s, " and statd is...", statd) + log.error(_("KeyError at the start of the for loop in update in hud_main. How this can possibly happen is totally beyond my comprehension. Your HUD may be about to get really weird. -Eric")) + log.error(_("(btw, the key was %s and statd is %s") % (s, statd)) continue try: self.stat_windows[statd['seat']].player_id = statd['player_id'] @@ -929,7 +929,7 @@ class Popup_window: if __name__== "__main__": main_window = gtk.Window() main_window.connect("destroy", destroy) - label = gtk.Label('Fake main window, blah blah, blah\nblah, blah') + label = gtk.Label(_('Fake main window, blah blah, blah\nblah, blah')) main_window.add(label) main_window.show_all() @@ -937,7 +937,7 @@ if __name__== "__main__": #tables = Tables.discover(c) t = Tables.discover_table_by_name(c, "Corona") if t is None: - print "Table not found." + print _("Table not found.") db = Database.Database(c, 'fpdb', 'holdem') stat_dict = db.get_stats_from_hand(1) From 5b042b1820287a5754d8c59f2c0325f264219367 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 17 Aug 2010 20:05:12 +0200 Subject: [PATCH 236/301] fix gettextification of Hud.py --- pyfpdb/Hud.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index 0c608b52..0fdf314f 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -42,6 +42,18 @@ if os.name == 'nt': import win32con import win32api +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + # FreePokerTools modules import Tables # needed for testing only import Configuration @@ -180,7 +192,7 @@ class Hud: item.connect("activate", self.set_aggregation, ('P',10000)) setattr(self, 'h_aggBBmultItem10000', item) - item = gtk.MenuItem('For #Seats:')) + item = gtk.MenuItem(_('For #Seats:')) self.aggMenu.append(item) item = gtk.CheckMenuItem(_(' Any Number')) From 1d66730158d255799b3d5a1e7eb44eb76e444a4f Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 17 Aug 2010 20:13:56 +0200 Subject: [PATCH 237/301] update po files, add script for that --- pyfpdb/locale/fpdb-en_GB.po | 312 ++++- pyfpdb/locale/fpdb-hu_HU.po | 1981 ++++++++++++++++++++++-------- pyfpdb/locale/update-po-files.sh | 2 + 3 files changed, 1760 insertions(+), 535 deletions(-) create mode 100755 pyfpdb/locale/update-po-files.sh diff --git a/pyfpdb/locale/fpdb-en_GB.po b/pyfpdb/locale/fpdb-en_GB.po index c213d1dd..3a0103e8 100644 --- a/pyfpdb/locale/fpdb-en_GB.po +++ b/pyfpdb/locale/fpdb-en_GB.po @@ -5,12 +5,12 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2010-08-16 07:17+CEST\n" +"POT-Creation-Date: 2010-08-17 20:08+CEST\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" +"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: ENCODING\n" "Generated-By: pygettext.py 1.5\n" @@ -1014,19 +1014,19 @@ msgstr "" msgid "Positional Stats page displayed in %4.2f seconds" msgstr "" -#: GuiPrefs.py:70 +#: GuiPrefs.py:81 msgid "Setting" msgstr "" -#: GuiPrefs.py:76 +#: GuiPrefs.py:87 msgid "Value (double-click to change)" msgstr "" -#: GuiPrefs.py:176 +#: GuiPrefs.py:187 msgid "Test Preferences Dialog" msgstr "" -#: GuiPrefs.py:181 fpdb.pyw:296 +#: GuiPrefs.py:192 fpdb.pyw:296 msgid "Preferences" msgstr "" @@ -1649,6 +1649,138 @@ msgid "" " on %s." msgstr "" +#: Hud.py:149 +msgid "Kill This HUD" +msgstr "" + +#: Hud.py:154 +msgid "Save HUD Layout" +msgstr "" + +#: Hud.py:158 +msgid "Reposition StatWindows" +msgstr "" + +#: Hud.py:162 +msgid "Show Player Stats" +msgstr "" + +#: Hud.py:167 Hud.py:236 +msgid "For This Blind Level Only" +msgstr "" + +#: Hud.py:172 Hud.py:241 +msgid "For Multiple Blind Levels:" +msgstr "" + +#: Hud.py:175 Hud.py:244 +msgid " 0.5 to 2.0 x Current Blinds" +msgstr "" + +#: Hud.py:180 Hud.py:249 +msgid " 0.33 to 3.0 x Current Blinds" +msgstr "" + +#: Hud.py:185 Hud.py:254 +msgid " 0.1 to 10 x Current Blinds" +msgstr "" + +#: Hud.py:190 Hud.py:259 +msgid " All Levels" +msgstr "" + +#: Hud.py:195 Hud.py:264 +msgid "For #Seats:" +msgstr "" + +#: Hud.py:198 Hud.py:267 +msgid " Any Number" +msgstr "" + +#: Hud.py:203 Hud.py:272 +msgid " Custom" +msgstr "" + +#: Hud.py:208 Hud.py:277 +msgid " Exact" +msgstr "" + +#: Hud.py:213 Hud.py:282 +msgid "Since:" +msgstr "" + +#: Hud.py:216 Hud.py:285 +msgid " All Time" +msgstr "" + +#: Hud.py:221 Hud.py:290 +msgid " Session" +msgstr "" + +#: Hud.py:226 Hud.py:295 +msgid " %s Days" +msgstr "" + +#: Hud.py:231 +msgid "Show Opponent Stats" +msgstr "" + +#: Hud.py:353 +msgid "Debug StatWindows" +msgstr "" + +#: Hud.py:357 +msgid "Set max seats" +msgstr "" + +#: Hud.py:540 +msgid "Updating config file" +msgstr "" + +#: Hud.py:549 +msgid "" +"No layout found for %d-max games for site %s\n" +msgstr "" + +#: Hud.py:563 +msgid "" +"exception in Hud.adj_seats\n" +"\n" +msgstr "" + +#: Hud.py:564 +msgid "error is %s" +msgstr "" + +#: Hud.py:571 +msgid "" +"Error finding actual seat.\n" +msgstr "" + +#: Hud.py:587 +msgid "" +"------------------------------------------------------------\n" +"Creating hud from hand %s\n" +msgstr "" + +#: Hud.py:636 +msgid "KeyError at the start of the for loop in update in hud_main. How this can possibly happen is totally beyond my comprehension. Your HUD may be about to get really weird. -Eric" +msgstr "" + +#: Hud.py:637 +msgid "(btw, the key was %s and statd is %s" +msgstr "" + +#: Hud.py:944 +msgid "" +"Fake main window, blah blah, blah\n" +"blah, blah" +msgstr "" + +#: Hud.py:952 +msgid "Table not found." +msgstr "" + #: ImapFetcher.py:54 msgid "response to logging in:" msgstr "" @@ -1765,6 +1897,174 @@ msgstr "" msgid "reading antes" msgstr "" +#: Stats.py:103 +msgid "exception getting stat %s for player %s %s" +msgstr "" + +#: Stats.py:104 +msgid "Stats.do_stat result = %s" +msgstr "" + +#: Stats.py:113 +msgid "error: %s" +msgstr "" + +#: Stats.py:132 Stats.py:133 +msgid "Total Profit" +msgstr "" + +#: Stats.py:154 Stats.py:161 +msgid "Voluntarily Put In Pot Pre-Flop%" +msgstr "" + +#: Stats.py:174 Stats.py:182 +msgid "Pre-Flop Raise %" +msgstr "" + +#: Stats.py:195 Stats.py:203 +msgid "% went to showdown" +msgstr "" + +#: Stats.py:216 Stats.py:224 +msgid "% won money at showdown" +msgstr "" + +#: Stats.py:237 Stats.py:246 +msgid "profit/100hands" +msgstr "" + +#: Stats.py:240 +msgid "exception calcing p/100: 100 * %d / %d" +msgstr "" + +#: Stats.py:259 Stats.py:268 +msgid "big blinds/100 hands" +msgstr "" + +#: Stats.py:281 Stats.py:290 +msgid "Big Bets/100 hands" +msgstr "" + +#: Stats.py:284 +msgid "exception calcing BB/100: " +msgstr "" + +#: Stats.py:304 Stats.py:315 +msgid "Flop Seen %" +msgstr "" + +#: Stats.py:338 Stats.py:346 +msgid "number hands seen" +msgstr "" + +#: Stats.py:359 Stats.py:367 +msgid "folded flop/4th" +msgstr "" + +#: Stats.py:380 +msgid "% steal attempted" +msgstr "" + +#: Stats.py:395 Stats.py:402 +msgid "% folded SB to steal" +msgstr "" + +#: Stats.py:414 Stats.py:421 +msgid "% folded BB to steal" +msgstr "" + +#: Stats.py:436 Stats.py:443 +msgid "% folded blind to steal" +msgstr "" + +#: Stats.py:455 Stats.py:462 +msgid "% 3/4 Bet preflop/3rd" +msgstr "" + +#: Stats.py:474 Stats.py:481 +msgid "% won$/saw flop/4th" +msgstr "" + +#: Stats.py:493 Stats.py:500 +msgid "Aggression Freq flop/4th" +msgstr "" + +#: Stats.py:512 Stats.py:519 +msgid "Aggression Freq turn/5th" +msgstr "" + +#: Stats.py:531 Stats.py:538 +msgid "Aggression Freq river/6th" +msgstr "" + +#: Stats.py:550 Stats.py:557 +msgid "Aggression Freq 7th" +msgstr "" + +#: Stats.py:576 Stats.py:583 +msgid "Post-Flop Aggression Freq" +msgstr "" + +#: Stats.py:604 Stats.py:611 +msgid "Aggression Freq" +msgstr "" + +#: Stats.py:630 Stats.py:637 +msgid "Aggression Factor" +msgstr "" + +#: Stats.py:654 Stats.py:661 +msgid "% continuation bet " +msgstr "" + +#: Stats.py:673 Stats.py:680 +msgid "% continuation bet flop/4th" +msgstr "" + +#: Stats.py:692 Stats.py:699 +msgid "% continuation bet turn/5th" +msgstr "" + +#: Stats.py:711 Stats.py:718 +msgid "% continuation bet river/6th" +msgstr "" + +#: Stats.py:730 Stats.py:737 +msgid "% continuation bet 7th" +msgstr "" + +#: Stats.py:749 Stats.py:756 +msgid "% fold frequency flop/4th" +msgstr "" + +#: Stats.py:768 Stats.py:775 +msgid "% fold frequency turn/5th" +msgstr "" + +#: Stats.py:787 Stats.py:794 +msgid "% fold frequency river/6th" +msgstr "" + +#: Stats.py:806 Stats.py:813 +msgid "% fold frequency 7th" +msgstr "" + +#: Stats.py:833 +msgid "Example stats, player = %s hand = %s:" +msgstr "" + +#: Stats.py:866 +msgid "" +"\n" +"\n" +"Legal stats:" +msgstr "" + +#: Stats.py:867 +msgid "" +"(add _0 to name to display with 0 decimal places, _1 to display with 1, etc)\n" +msgstr "" + #: Tables.py:234 msgid "Found unknown table = %s" msgstr "" diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index c39a5987..ea1a3f23 100644 --- a/pyfpdb/locale/fpdb-hu_HU.po +++ b/pyfpdb/locale/fpdb-hu_HU.po @@ -5,53 +5,54 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.904\n" -"POT-Creation-Date: 2010-08-15 20:33+CEST\n" +"POT-Creation-Date: 2010-08-17 20:08+CEST\n" "PO-Revision-Date: 2010-08-16 00:47+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: UTF-8\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=n !=1;\n" -#: Anonymise.py:47 +#: Anonymise.py:55 msgid "Could not find file %s" msgstr "%s fájl nem találhatópd" -#: Anonymise.py:53 +#: Anonymise.py:61 msgid "Output being written to" msgstr "Az eredmény ide került kiírásra" -#: BetfairToFpdb.py:75 +#: BetfairToFpdb.py:83 msgid "GameInfo regex did not match" msgstr "GameInfo regex nem illeszkedik" -#: BetfairToFpdb.py:106 +#: BetfairToFpdb.py:114 msgid "Didn't match re_HandInfo" msgstr "re_HandInfo nem illeszkedik" -#: BetfairToFpdb.py:162 +#: BetfairToFpdb.py:170 msgid "No bringin found" msgstr "Beülő nem található" -#: BetfairToFpdb.py:198 PokerStarsToFpdb.py:423 +#: BetfairToFpdb.py:206 PokerStarsToFpdb.py:440 msgid "DEBUG: unimplemented readAction: '%s' '%s'" msgstr "DEBUG: nem ismert readAction: '%s' '%s'" -#: BetfairToFpdb.py:221 PokerStarsToFpdb.py:450 +#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:522 PokerStarsToFpdb.py:467 msgid "parse input hand history" msgstr "leosztástörténet feldolgozása" -#: BetfairToFpdb.py:222 PokerStarsToFpdb.py:451 +#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:523 PokerStarsToFpdb.py:468 msgid "output translation to" msgstr "feldolgozás eredményének helye" -#: BetfairToFpdb.py:223 PokerStarsToFpdb.py:452 +#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:524 PokerStarsToFpdb.py:469 msgid "follow (tail -f) the input" msgstr "kövesse a kimenetet (tail -f)" -#: Card.py:159 +#: Card.py:167 msgid "fpdb card encoding(same as pokersource)" msgstr "fpdb kártyakódolás (ugyanaz, mint amit a pokersource használ)" @@ -63,7 +64,7 @@ msgstr "Nem sikerült konvertálni: \"%s\"\n" msgid "Could not encode: \"%s\"\n" msgstr "Nem sikerült kódolni: \"%s\"\n" -#: Configuration.py:98 +#: Configuration.py:110 msgid "" "No %s found\n" " in %s\n" @@ -73,31 +74,31 @@ msgstr "" " itt: %s\n" " vagy itt: %s\n" -#: Configuration.py:99 +#: Configuration.py:111 msgid "Config file has been created at %s.\n" msgstr "Konfigurációs fájl létrehozva itt: %s.\n" -#: Configuration.py:104 Configuration.py:105 +#: Configuration.py:116 Configuration.py:117 msgid "Error copying .example file, cannot fall back. Exiting.\n" msgstr "Hiba a .example fájl másolása közben, nem tudom folytatni. Kilépés.\n" -#: Configuration.py:109 Configuration.py:110 +#: Configuration.py:121 Configuration.py:122 msgid "No %s found, cannot fall back. Exiting.\n" msgstr "%s nem található, nem tudom folytatni. Kilépés.\n" -#: Configuration.py:140 +#: Configuration.py:152 msgid "Default logger initialised for " msgstr "Alapértelmezett naplózó előkészítve ehhez: " -#: Configuration.py:141 +#: Configuration.py:153 msgid "Default logger intialised for " msgstr "Alapértelmezett naplózó előkészítve ehhez: " -#: Configuration.py:152 +#: Configuration.py:164 Database.py:431 Database.py:432 msgid "Creating directory: '%s'" msgstr "Könyvtár létrehozása: '%s'" -#: Configuration.py:178 +#: Configuration.py:190 msgid "" "Default encoding set to US-ASCII, defaulting to CP1252 instead -- If you're " "not on a Mac, please report this problem." @@ -105,27 +106,27 @@ msgstr "" "US-ASCII az alapértelmezett karakterkódolás, CP1252 használata ehelyett.Ha " "nem Mac-et használsz, akkor kérlek jelentsd ezt a problémát." -#: Configuration.py:261 +#: Configuration.py:273 msgid "Loading site" msgstr "Terem betöltése" -#: Configuration.py:499 +#: Configuration.py:511 msgid "config.general: adding %s = %s" msgstr "config.general: %s = %s hozzáadása" -#: Configuration.py:532 Configuration.py:533 +#: Configuration.py:544 Configuration.py:545 msgid "bad number in xalignment was ignored" msgstr "hibás érték az xalignment-ben - figyelmen kívül hagyás" -#: Configuration.py:586 Configuration.py:587 +#: Configuration.py:598 Configuration.py:599 msgid "Configuration file %s not found. Using defaults." msgstr "A %s konfigurációs fájl nem található. Alapértelmezések használata." -#: Configuration.py:603 +#: Configuration.py:615 msgid "Reading configuration file %s" msgstr "%s konfigurációs fájl használata" -#: Configuration.py:604 +#: Configuration.py:616 msgid "" "\n" "Reading configuration file %s\n" @@ -133,171 +134,486 @@ msgstr "" "\n" "%s konfigurációs fájl használata\n" -#: Configuration.py:609 +#: Configuration.py:621 msgid "Error parsing %s. See error log file." msgstr "Hiba a(z) %s olvasása közben. Nézz bele a naplófájlba." -#: Filters.py:51 +#: Database.py:74 +msgid "Not using sqlalchemy connection pool." +msgstr "" + +#: Database.py:81 +msgid "Not using numpy to define variance in sqlite." +msgstr "" + +#: Database.py:246 +msgid "Creating Database instance, sql = %s" +msgstr "" + +#: Database.py:382 +msgid "*** WARNING UNKNOWN MYSQL ERROR:" +msgstr "" + +#: Database.py:436 +#, fuzzy +msgid "Connecting to SQLite: %(database)s" +msgstr "Kapcsolódva a %(database)s SQLite adatbázishoz" + +#: Database.py:448 +msgid "Some database functions will not work without NumPy support" +msgstr "" + +#: Database.py:469 +msgid "outdated or too new database version (%s) - please recreate tables" +msgstr "" + +#: Database.py:475 Database.py:476 +#, fuzzy +msgid "Failed to read settings table - recreating tables" +msgstr "Erősítsd meg a táblák törlését és újra létrehozását" + +#: Database.py:480 Database.py:481 +msgid "Failed to read settings table - please recreate tables" +msgstr "" + +#: Database.py:499 +msgid "commit finished ok, i = " +msgstr "" + +#: Database.py:502 +msgid "commit %s failed: info=%s value=%s" +msgstr "" + +#: Database.py:506 +msgid "commit failed" +msgstr "" + +#: Database.py:675 Database.py:704 +#, fuzzy +msgid "*** Database Error: " +msgstr "***Hiba: " + +#: Database.py:701 +msgid "Database: date n hands ago = " +msgstr "" + +#: Database.py:858 +msgid "ERROR: query %s result does not have player_id as first column" +msgstr "" + +#: Database.py:900 +msgid "getLastInsertId(): problem fetching insert_id? ret=%d" +msgstr "" + +#: Database.py:912 +msgid "getLastInsertId(%s): problem fetching lastval? row=%d" +msgstr "" + +#: Database.py:919 +msgid "getLastInsertId(): unknown backend: %d" +msgstr "" + +#: Database.py:924 +msgid "*** Database get_last_insert_id error: " +msgstr "" + +#: Database.py:978 Database.py:1398 +msgid "warning: drop pg fk %s_%s_fkey failed: %s, continuing ..." +msgstr "" + +#: Database.py:982 Database.py:1402 +msgid "warning: constraint %s_%s_fkey not dropped: %s, continuing ..." +msgstr "" + +#: Database.py:990 Database.py:1276 +msgid "dropping mysql index " +msgstr "" + +#: Database.py:996 Database.py:1281 Database.py:1289 Database.py:1296 +#, fuzzy +msgid " drop index failed: " +msgstr "Indexek eldobása" + +#: Database.py:1001 Database.py:1283 +msgid "dropping pg index " +msgstr "" + +#: Database.py:1014 +msgid "warning: drop index %s_%s_idx failed: %s, continuing ..." +msgstr "" + +#: Database.py:1018 +msgid "warning: index %s_%s_idx not dropped %s, continuing ..." +msgstr "" + +#: Database.py:1058 Database.py:1066 Database.py:1329 Database.py:1337 +msgid "creating foreign key " +msgstr "" + +#: Database.py:1064 Database.py:1085 Database.py:1335 +msgid " create foreign key failed: " +msgstr "" + +#: Database.py:1073 Database.py:1344 +msgid " create foreign key failed: " +msgstr "" + +#: Database.py:1080 +msgid "creating mysql index " +msgstr "" + +#: Database.py:1089 +#, fuzzy +msgid "creating pg index " +msgstr "Hello létrehozása" + +#: Database.py:1094 +msgid " create index failed: " +msgstr "" + +#: Database.py:1134 Database.py:1135 +#, fuzzy +msgid "Finished recreating tables" +msgstr "A felhasználó mégsem generálja újra a táblákat." + +#: Database.py:1172 +msgid "***Error creating tables: " +msgstr "" + +#: Database.py:1182 +msgid "*** Error unable to get databasecursor" +msgstr "" + +#: Database.py:1194 Database.py:1205 Database.py:1215 Database.py:1222 +#, fuzzy +msgid "***Error dropping tables: " +msgstr "Hibanaplózási szint:" + +#: Database.py:1220 +msgid "*** Error in committing table drop" +msgstr "" + +#: Database.py:1234 Database.py:1235 +msgid "Creating mysql index %s %s" +msgstr "" + +#: Database.py:1240 Database.py:1249 +msgid " create index failed: " +msgstr "" + +#: Database.py:1243 Database.py:1244 +msgid "Creating pgsql index %s %s" +msgstr "" + +#: Database.py:1251 Database.py:1252 +msgid "Creating sqlite index %s %s" +msgstr "" + +#: Database.py:1257 +msgid "Create index failed: " +msgstr "" + +#: Database.py:1259 +msgid "Unknown database: MySQL, Postgres and SQLite supported" +msgstr "" + +#: Database.py:1264 +#, fuzzy +msgid "Error creating indexes: " +msgstr "Hiba a(z) '%s' konvertálása közben" + +#: Database.py:1291 +msgid "Dropping sqlite index " +msgstr "" + +#: Database.py:1298 +msgid "" +"Fpdb only supports MySQL, Postgres and SQLITE, what are you trying to use?" +msgstr "" + +#: Database.py:1312 Database.py:1352 +msgid " set_isolation_level failed: " +msgstr "" + +#: Database.py:1346 Database.py:1405 +msgid "Only MySQL and Postgres supported so far" +msgstr "" + +#: Database.py:1376 +msgid "dropping mysql foreign key" +msgstr "" + +#: Database.py:1380 +msgid " drop failed: " +msgstr "" + +#: Database.py:1383 +msgid "dropping pg foreign key" +msgstr "" + +#: Database.py:1395 +msgid "dropped pg foreign key %s_%s_fkey, continuing ..." +msgstr "" + +#: Database.py:1496 +msgid "Rebuild hudcache took %.1f seconds" +msgstr "" + +#: Database.py:1499 Database.py:1532 +#, fuzzy +msgid "Error rebuilding hudcache:" +msgstr "A felhasználó megszakította a HUD gyorstár újraépítését." + +#: Database.py:1544 Database.py:1550 +#, fuzzy +msgid "Error during analyze:" +msgstr "Hibanaplózási szint:" + +#: Database.py:1554 +msgid "Analyze took %.1f seconds" +msgstr "" + +#: Database.py:1564 Database.py:1570 +#, fuzzy +msgid "Error during vacuum:" +msgstr "Hibanaplózási szint:" + +#: Database.py:1574 +msgid "Vacuum took %.1f seconds" +msgstr "" + +#: Database.py:1586 +msgid "Error during lock_for_insert:" +msgstr "" + +#: Database.py:1959 +msgid "queue empty too long - writer stopping ..." +msgstr "" + +#: Database.py:1962 +msgid "writer stopping, error reading queue: " +msgstr "" + +#: Database.py:1987 +msgid "deadlock detected - trying again ..." +msgstr "" + +#: Database.py:1992 +msgid "too many deadlocks - failed to store hand " +msgstr "" + +#: Database.py:1996 +#, fuzzy +msgid "***Error storing hand: " +msgstr "***Hiba: " + +#: Database.py:2006 +#, fuzzy +msgid "db writer finished: stored %d hands (%d fails) in %.1f seconds" +msgstr "%d leosztás beolvasva (%d sikertelen) %.3f mp alatt" + +#: Database.py:2016 +msgid "***Error sending finish: " +msgstr "" + +#: Database.py:2096 +msgid "invalid source in Database.createOrUpdateTourney" +msgstr "" + +#: Database.py:2109 +msgid "invalid source in Database.createOrUpdateTourneysPlayers" +msgstr "" + +#: Database.py:2235 +msgid "HandToWrite.init error: " +msgstr "" + +#: Database.py:2285 +msgid "HandToWrite.set_all error: " +msgstr "" + +#: Database.py:2316 +msgid "nutOmatic is id_player = %d" +msgstr "" + +#: Database.py:2324 +msgid "query plan: " +msgstr "" + +#: Database.py:2333 +msgid "cards =" +msgstr "" + +#: Database.py:2336 +msgid "get_stats took: %4.3f seconds" +msgstr "" + +#: Database.py:2338 Tables.py:448 +#, fuzzy +msgid "press enter to continue" +msgstr " - nyomj ENTER-t a folytatáshoz\n" + +#: Filters.py:62 msgid "All" msgstr "Mind" -#: Filters.py:51 +#: Filters.py:62 msgid "None" msgstr "Egyik sem" -#: Filters.py:51 +#: Filters.py:62 msgid "Show _Limits" msgstr "_Limitek" -#: Filters.py:52 -msgid "And:" -msgstr "Max:" - -#: Filters.py:52 -msgid "Between:" -msgstr "Min:" - -#: Filters.py:52 +#: Filters.py:63 msgid "Show Number of _Players" msgstr "_Játékosok száma" -#: Filters.py:53 +#: Filters.py:63 TourneyFilters.py:60 +msgid "And:" +msgstr "Max:" + +#: Filters.py:63 TourneyFilters.py:60 +msgid "Between:" +msgstr "Min:" + +#: Filters.py:64 msgid "Games:" msgstr "Játékok:" -#: Filters.py:53 +#: Filters.py:64 TourneyFilters.py:59 msgid "Hero:" msgstr "Játékos:" -#: Filters.py:53 +#: Filters.py:64 TourneyFilters.py:59 msgid "Sites:" msgstr "Termek:" -#: Filters.py:54 +#: Filters.py:65 msgid "Limits:" msgstr "Limitek:" -#: Filters.py:54 +#: Filters.py:65 TourneyFilters.py:59 msgid "Number of Players:" msgstr "Játékosok száma:" -#: Filters.py:55 +#: Filters.py:66 msgid "Grouping:" msgstr "Csoportosítás:" -#: Filters.py:55 +#: Filters.py:66 msgid "Show Position Stats:" msgstr "Pozíció" -#: Filters.py:56 +#: Filters.py:67 TourneyFilters.py:60 msgid "Date:" msgstr "Dátum:" -#: Filters.py:57 +#: Filters.py:68 msgid "All Players" msgstr "Minden játékos" -#: Filters.py:58 +#: Filters.py:69 msgid "Ring" msgstr "Készpénzes játékok" -#: Filters.py:58 +#: Filters.py:69 msgid "Tourney" msgstr "Versenyek" -#: Filters.py:92 +#: Filters.py:103 TourneyFilters.py:116 msgid "Either 0 or more than one site matched (%s) - EEK" msgstr "Vagy egynél több, vagy egy terem sem illeszkedik (%s) - EEK" -#: Filters.py:302 +#: Filters.py:313 msgid "%s was toggled %s" msgstr "%s %s lett kapcsolva" -#: Filters.py:302 +#: Filters.py:313 msgid "OFF" msgstr "KI" -#: Filters.py:302 +#: Filters.py:313 msgid "ON" msgstr "BE" -#: Filters.py:383 +#: Filters.py:394 msgid "self.sites[%s] set to %s" msgstr "self.sites[%s] beállítva erre: %s" -#: Filters.py:389 +#: Filters.py:400 msgid "self.games[%s] set to %s" msgstr "self.games[%s] beállítva erre: %s" -#: Filters.py:395 +#: Filters.py:406 msgid "self.limit[%s] set to %s" msgstr "self.limit[%s] beállítva erre: %s" -#: Filters.py:532 +#: Filters.py:543 msgid "self.seats[%s] set to %s" msgstr "self.seats[%s] beállítva erre: %s" -#: Filters.py:538 +#: Filters.py:549 msgid "self.groups[%s] set to %s" msgstr "self.groups[%s] beállítva erre: %s" -#: Filters.py:571 +#: Filters.py:582 msgid "Min # Hands:" msgstr "Minimum ennyi leosztással:" -#: Filters.py:637 +#: Filters.py:648 msgid "INFO: No tourney types returned from database" msgstr "INFO: nem található versenytípus az adatbázisban" -#: Filters.py:638 +#: Filters.py:649 msgid "No tourney types returned from database" msgstr "Nem található versenytípus az adatbázisban" -#: Filters.py:664 Filters.py:753 +#: Filters.py:675 Filters.py:764 msgid "INFO: No games returned from database" msgstr "INFO: nem található játék az adatbázisban" -#: Filters.py:665 Filters.py:754 +#: Filters.py:676 Filters.py:765 msgid "No games returned from database" msgstr "Nem található játék az adatbázisban" -#: Filters.py:902 +#: Filters.py:913 msgid " Clear Dates " msgstr "Dátumok törlése" -#: Filters.py:929 fpdb.pyw:719 +#: Filters.py:940 fpdb.pyw:721 msgid "Pick a date" msgstr "Válassz egy dátumot" -#: Filters.py:935 fpdb.pyw:725 +#: Filters.py:946 fpdb.pyw:727 msgid "Done" msgstr "Kész" -#: GuiAutoImport.py:73 +#: GuiAutoImport.py:85 msgid "Time between imports in seconds:" msgstr "Importálások közti idő (mp):" -#: GuiAutoImport.py:104 GuiAutoImport.py:172 GuiAutoImport.py:249 +#: GuiAutoImport.py:116 GuiAutoImport.py:184 GuiAutoImport.py:261 msgid " Start _Autoimport " msgstr " _AutoImport indítása " -#: GuiAutoImport.py:123 +#: GuiAutoImport.py:135 msgid "AutoImport Ready." msgstr "AutoImport kész." -#: GuiAutoImport.py:136 +#: GuiAutoImport.py:148 msgid "Please choose the path that you want to auto import" msgstr "Válaszd ki a könyvtárat az AutoImporthoz" -#: GuiAutoImport.py:159 +#: GuiAutoImport.py:171 msgid " _Auto Import Running " msgstr " _AutoImport fut " -#: GuiAutoImport.py:170 +#: GuiAutoImport.py:182 msgid " Stop _Autoimport " msgstr " _AutoImport leállítása " -#: GuiAutoImport.py:195 +#: GuiAutoImport.py:207 msgid "" "\n" "Global lock taken ... Auto Import Started.\n" @@ -305,15 +621,15 @@ msgstr "" "\n" "Globális zárolás OK ... AutoImport elindítva.\n" -#: GuiAutoImport.py:197 +#: GuiAutoImport.py:209 msgid " _Stop Autoimport " msgstr " _AutoImport leállítása " -#: GuiAutoImport.py:213 +#: GuiAutoImport.py:225 msgid "opening pipe to HUD" msgstr "cső nyitása a HUD-hoz" -#: GuiAutoImport.py:225 +#: GuiAutoImport.py:237 msgid "" "\n" "*** GuiAutoImport Error opening pipe: " @@ -321,7 +637,7 @@ msgstr "" "\n" "*** GuiAutoImport Hiba a cső nyitásakor: " -#: GuiAutoImport.py:237 +#: GuiAutoImport.py:249 msgid "" "\n" "auto-import aborted - global lock not available" @@ -329,7 +645,7 @@ msgstr "" "\n" "AutoImport megszakítva - nem elérhető a globális zárolás" -#: GuiAutoImport.py:242 +#: GuiAutoImport.py:254 msgid "" "\n" "Stopping autoimport - global lock released." @@ -337,7 +653,7 @@ msgstr "" "\n" "AutoImport leállítása - globális zárolás feloldva." -#: GuiAutoImport.py:244 +#: GuiAutoImport.py:256 msgid "" "\n" " * Stop Autoimport: HUD already terminated" @@ -345,17 +661,17 @@ msgstr "" "\n" " * AutoImport megállítása: A HUD már nem fut" -#: GuiAutoImport.py:271 +#: GuiAutoImport.py:283 msgid "Browse..." msgstr "Kiválaszt..." -#: GuiAutoImport.py:314 GuiBulkImport.py:346 +#: GuiAutoImport.py:326 GuiBulkImport.py:354 msgid "How often to print a one-line status report (0 (default) means never)" msgstr "" "Egysoros státuszriportok megjelenítési gyakorisága (az alapértelmezett 0 " "szerint soha)" -#: GuiBulkImport.py:59 +#: GuiBulkImport.py:67 msgid "" "\n" "Global lock taken ..." @@ -363,11 +679,11 @@ msgstr "" "\n" "Globális zárolás OK..." -#: GuiBulkImport.py:60 +#: GuiBulkImport.py:68 msgid "Importing..." msgstr "Importálás..." -#: GuiBulkImport.py:109 +#: GuiBulkImport.py:117 msgid "" "GuiBulkImport.load done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: " "%d in %s seconds - %.0f/sec" @@ -375,97 +691,97 @@ msgstr "" "GuiBulkImport.load kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d " "\tHibák: %d %s másodperc alatt - %.0f/mp" -#: GuiBulkImport.py:123 +#: GuiBulkImport.py:131 msgid "Import Complete" msgstr "Importálás kész" -#: GuiBulkImport.py:131 +#: GuiBulkImport.py:139 msgid "bulk-import aborted - global lock not available" msgstr "tömeges importálás megszakítva - nem elérhető a globális zárolás" -#: GuiBulkImport.py:157 +#: GuiBulkImport.py:165 msgid "Print Start/Stop Info" msgstr "Start/Stop infó megjelenítése" -#: GuiBulkImport.py:164 +#: GuiBulkImport.py:172 msgid "Hands/status print:" msgstr "Leosztás/állapotjelzés:" -#: GuiBulkImport.py:181 +#: GuiBulkImport.py:189 msgid "Number of threads:" msgstr "Szálak száma:" -#: GuiBulkImport.py:201 +#: GuiBulkImport.py:209 msgid "Fail on error" msgstr "Hiba esetén megáll" -#: GuiBulkImport.py:206 +#: GuiBulkImport.py:214 msgid "Hands/file:" msgstr "Leosztás/fájl" -#: GuiBulkImport.py:221 +#: GuiBulkImport.py:229 msgid "Drop indexes:" msgstr "Indexek eldobása" -#: GuiBulkImport.py:230 GuiBulkImport.py:280 +#: GuiBulkImport.py:238 GuiBulkImport.py:288 msgid "auto" msgstr "automatikus" -#: GuiBulkImport.py:231 GuiBulkImport.py:281 GuiBulkImport.py:389 +#: GuiBulkImport.py:239 GuiBulkImport.py:289 GuiBulkImport.py:397 msgid "don't drop" msgstr "ne dobja el" -#: GuiBulkImport.py:232 GuiBulkImport.py:282 +#: GuiBulkImport.py:240 GuiBulkImport.py:290 msgid "drop" msgstr "eldobás" -#: GuiBulkImport.py:238 +#: GuiBulkImport.py:246 msgid "HUD Test mode" msgstr "HUD teszt mód" -#: GuiBulkImport.py:243 +#: GuiBulkImport.py:251 msgid "Site filter:" msgstr "Teremszűrő:" -#: GuiBulkImport.py:271 +#: GuiBulkImport.py:279 msgid "Drop HudCache:" msgstr "HUD gyorstár eldobása:" -#: GuiBulkImport.py:289 +#: GuiBulkImport.py:297 msgid "Import" msgstr "Importálás" -#: GuiBulkImport.py:291 +#: GuiBulkImport.py:299 msgid "Import clicked" msgstr "Importálásra kattintva" -#: GuiBulkImport.py:309 +#: GuiBulkImport.py:317 msgid "Waiting..." msgstr "Várakozás..." -#: GuiBulkImport.py:338 +#: GuiBulkImport.py:346 msgid "Input file in quiet mode" msgstr "Fájl feldolgozása csendes módban" -#: GuiBulkImport.py:340 +#: GuiBulkImport.py:348 msgid "don't start gui; deprecated (just give a filename with -f)." msgstr "ne indítsa el a GUI-t; elévült (használd helyette a -f kapcsolót)." -#: GuiBulkImport.py:342 +#: GuiBulkImport.py:350 msgid "Conversion filter (*Full Tilt Poker, PokerStars, Everleaf, Absolute)" msgstr "Konverziós szűrő (*Full Tilt Poker, PokerStars, Everleaf, Absolute)" -#: GuiBulkImport.py:344 +#: GuiBulkImport.py:352 msgid "If this option is passed it quits when it encounters any error" msgstr "" "Ha ez az opció ki van választva, akkor az fpdb kilép, ha bármilyen hibát " "észlel." -#: GuiBulkImport.py:348 +#: GuiBulkImport.py:356 msgid "Print some useful one liners" msgstr "Megjelenít néhány hasznos egysoros információt." -#: GuiBulkImport.py:350 +#: GuiBulkImport.py:358 msgid "" "Do the required conversion for Stars Archive format (ie. as provided by " "support" @@ -473,104 +789,104 @@ msgstr "" "A kiválasztott konverzió elvégzése Stars Archívum formátumra (ahogy az " "ügyfélszolgálattól jön" -#: GuiBulkImport.py:355 +#: GuiBulkImport.py:363 msgid "USAGE:" msgstr "HASZNÁLAT:" -#: GuiBulkImport.py:356 +#: GuiBulkImport.py:364 msgid "PokerStars converter: ./GuiBulkImport.py -c PokerStars -f filename" msgstr "PokerStars átalakító: ./GuiBulkImport.py -c PokerStars -f fájlnév" -#: GuiBulkImport.py:357 +#: GuiBulkImport.py:365 msgid "" "Full Tilt converter: ./GuiBulkImport.py -c \"Full Tilt Poker\" -f filename" msgstr "" "Full Tilt átalakító: ./GuiBulkImport.py -c \"Full Tilt Poker\" -f fájlnév" -#: GuiBulkImport.py:358 +#: GuiBulkImport.py:366 msgid "Everleaf converter: ./GuiBulkImport.py -c Everleaf -f filename" msgstr "Everleaf átalakító: ./GuiBulkImport.py -c Everleaf -f fájlnév" -#: GuiBulkImport.py:359 +#: GuiBulkImport.py:367 msgid "Absolute converter: ./GuiBulkImport.py -c Absolute -f filename" msgstr "Absolute átalakító: ./GuiBulkImport.py -c Absolute -f fájlnév" -#: GuiBulkImport.py:360 +#: GuiBulkImport.py:368 msgid "PartyPoker converter: ./GuiBulkImport.py -c PartyPoker -f filename" msgstr "PartyPoker átalakító: ./GuiBulkImport.py -c PartyPoker -f fájlnév" -#: GuiBulkImport.py:376 +#: GuiBulkImport.py:384 msgid "-q is deprecated. Just use \"-f filename\" instead" msgstr "A -q már elévült. Használd helyette a \"-f fájlnév\" formát." -#: GuiBulkImport.py:398 +#: GuiBulkImport.py:406 msgid "" "GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d " "in %s seconds - %.0f/sec" msgstr "" -"GuiBulkImport kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d \tHibák: %d %" -"s másodperc alatt - %.0f/mp" +"GuiBulkImport kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d \tHibák: %d " +"%s másodperc alatt - %.0f/mp" -#: GuiDatabase.py:98 GuiLogView.py:88 +#: GuiDatabase.py:106 GuiLogView.py:96 msgid "Refresh" msgstr "Frissítés" -#: GuiDatabase.py:103 +#: GuiDatabase.py:111 msgid "Type" msgstr "Típus" -#: GuiDatabase.py:104 +#: GuiDatabase.py:112 msgid "Name" msgstr "Név" -#: GuiDatabase.py:105 +#: GuiDatabase.py:113 msgid "Description" msgstr "Leírás" -#: GuiDatabase.py:106 GuiImapFetcher.py:111 +#: GuiDatabase.py:114 GuiImapFetcher.py:123 msgid "Username" msgstr "Felhasználónév" -#: GuiDatabase.py:107 GuiImapFetcher.py:111 +#: GuiDatabase.py:115 GuiImapFetcher.py:123 msgid "Password" msgstr "Jelszó" -#: GuiDatabase.py:108 +#: GuiDatabase.py:116 msgid "Host" msgstr "Kiszolgáló" -#: GuiDatabase.py:109 +#: GuiDatabase.py:117 msgid "Default" msgstr "Alapértelmezett" -#: GuiDatabase.py:110 +#: GuiDatabase.py:118 msgid "Status" msgstr "Állapot" -#: GuiDatabase.py:243 +#: GuiDatabase.py:251 msgid "Testing database connections ... " msgstr "Adatbázis-kapcsolatok ellenőrzése ..." -#: GuiDatabase.py:273 +#: GuiDatabase.py:281 msgid "loaddbs: trying to connect to: %s/%s, %s, %s/%s" msgstr "loaddbs: kapcolódási próbálkozás: %s/%s, %s, %s/%s" -#: GuiDatabase.py:276 +#: GuiDatabase.py:284 msgid " connected ok" msgstr " kapcsolódás OK" -#: GuiDatabase.py:283 +#: GuiDatabase.py:291 msgid " not connected but no exception" msgstr " nem kapcsolódott, de nincs hibaüzenet" -#: GuiDatabase.py:285 fpdb.pyw:904 +#: GuiDatabase.py:293 fpdb.pyw:906 msgid "" "MySQL Server reports: Access denied. Are your permissions set correctly?" msgstr "" "MySQL szerver jelenti: A hozzáférés megtagadva. Biztosan megfelelőek a " "jogosultságaid?" -#: GuiDatabase.py:289 +#: GuiDatabase.py:297 msgid "" "MySQL client reports: 2002 or 2003 error. Unable to connect - Please check " "that the MySQL service has been started" @@ -578,14 +894,14 @@ msgstr "" "MySQL kliens jelenti: 2002-es vagy 2003-as hiba. Nem sikerült a kapcsolódás " "- Kérlek ellenőrizd, hogy a MySQL szolgáltatás el van-e indítva" -#: GuiDatabase.py:293 fpdb.pyw:909 +#: GuiDatabase.py:301 fpdb.pyw:911 msgid "" "Postgres Server reports: Access denied. Are your permissions set correctly?" msgstr "" "Postgres szerver jelenti: A hozzáférés megtagadva. Biztosan megfelelőek a " "jogosultságaid?" -#: GuiDatabase.py:296 +#: GuiDatabase.py:304 msgid "" "Postgres client reports: Unable to connect - Please check that the Postgres " "service has been started" @@ -593,27 +909,27 @@ msgstr "" "Postgres kliens jelenti: Nem sikerült a kapcsolódás. .Kérlek ellenőrizd, " "hogy a Postgres szolgáltatás el van-e indítva" -#: GuiDatabase.py:313 +#: GuiDatabase.py:321 msgid "finished." msgstr "befejezve." -#: GuiDatabase.py:323 +#: GuiDatabase.py:331 msgid "loaddbs error: " msgstr "loaddbs hiba: " -#: GuiDatabase.py:344 GuiLogView.py:192 GuiTourneyPlayerStats.py:454 +#: GuiDatabase.py:352 GuiLogView.py:200 GuiTourneyPlayerStats.py:466 msgid "***sortCols error: " msgstr "***sortCols hiba: " -#: GuiDatabase.py:346 +#: GuiDatabase.py:354 msgid "sortCols error: " msgstr "sortCols hiba: " -#: GuiDatabase.py:416 GuiLogView.py:205 +#: GuiDatabase.py:424 GuiLogView.py:213 msgid "Test Log Viewer" msgstr "Napló böngésző (teszt)" -#: GuiDatabase.py:421 GuiLogView.py:210 +#: GuiDatabase.py:429 GuiLogView.py:218 msgid "Log Viewer" msgstr "Napló böngésző" @@ -633,37 +949,38 @@ msgstr "" "A program más részeit, pl. az importálást vagy a HUD-ot,\n" "nem érinti ez a probléma." -#: GuiGraphViewer.py:129 GuiGraphViewer.py:243 GuiSessionViewer.py:343 +#: GuiGraphViewer.py:141 GuiGraphViewer.py:255 GuiSessionViewer.py:355 msgid "***Error: " msgstr "***Hiba: " -#: GuiGraphViewer.py:159 GuiPositionalStats.py:166 GuiSessionViewer.py:192 -#: GuiTourneyPlayerStats.py:265 +#: GuiGraphViewer.py:171 GuiPositionalStats.py:178 GuiRingPlayerStats.py:252 +#: GuiSessionViewer.py:204 GuiTourneyPlayerStats.py:277 msgid "No sites selected - defaulting to PokerStars" msgstr "Nincs kiválasztott terem - PokerStars használata" -#: GuiGraphViewer.py:164 GuiPositionalStats.py:169 GuiSessionViewer.py:195 -#: GuiTourneyPlayerStats.py:268 +#: GuiGraphViewer.py:176 GuiPositionalStats.py:181 GuiRingPlayerStats.py:255 +#: GuiSessionViewer.py:207 GuiTourneyPlayerStats.py:280 msgid "No player ids found" msgstr "Nincs játékosazonosító" -#: GuiGraphViewer.py:169 GuiPositionalStats.py:172 GuiSessionViewer.py:198 +#: GuiGraphViewer.py:181 GuiPositionalStats.py:184 GuiRingPlayerStats.py:258 +#: GuiSessionViewer.py:210 msgid "No limits found" msgstr "Nem található limit" -#: GuiGraphViewer.py:179 +#: GuiGraphViewer.py:191 msgid "Graph generated in: %s" msgstr "Grafikon létrehozva %s mp alatt" -#: GuiGraphViewer.py:183 +#: GuiGraphViewer.py:195 msgid "Hands" msgstr "Leosztások" -#: GuiGraphViewer.py:187 +#: GuiGraphViewer.py:199 msgid "No Data for Player(s) Found" msgstr "Nem található adat a játékos(ok)ra vonatkozóan" -#: GuiGraphViewer.py:210 GuiGraphViewer.py:229 +#: GuiGraphViewer.py:222 GuiGraphViewer.py:241 msgid "" "Hands: %d\n" "Profit: $%.2f" @@ -671,64 +988,64 @@ msgstr "" "Leosztások: %d\n" "Profit: $%.2f" -#: GuiGraphViewer.py:211 GuiGraphViewer.py:230 +#: GuiGraphViewer.py:223 GuiGraphViewer.py:242 msgid "Showdown: $%.2f" msgstr "Mutatással: $%.2f" -#: GuiGraphViewer.py:212 GuiGraphViewer.py:231 +#: GuiGraphViewer.py:224 GuiGraphViewer.py:243 msgid "Non-showdown: $%.2f" msgstr "Mutatás nélkül: $%.2f" -#: GuiGraphViewer.py:220 +#: GuiGraphViewer.py:232 msgid "Profit graph for ring games" msgstr "Bevételgrafikon a készpénzes játékokról" -#: GuiGraphViewer.py:340 +#: GuiGraphViewer.py:352 msgid "Please choose the directory you wish to export to:" msgstr "Válaszd ki az exportálás könyvtárát:" -#: GuiGraphViewer.py:353 +#: GuiGraphViewer.py:365 msgid "Closed, no graph exported" msgstr "Bezárva, nincs exportált grafikon" -#: GuiGraphViewer.py:371 +#: GuiGraphViewer.py:383 msgid "Graph created" msgstr "Grafikon létrehozva" -#: GuiImapFetcher.py:37 +#: GuiImapFetcher.py:49 msgid "To cancel just close this tab." msgstr "A megszakításhoz csukd be ezt a fület." -#: GuiImapFetcher.py:40 +#: GuiImapFetcher.py:52 msgid "_Save" msgstr "Menté_s" -#: GuiImapFetcher.py:44 +#: GuiImapFetcher.py:56 msgid "_Import All" msgstr "Mindet _importál" -#: GuiImapFetcher.py:48 +#: GuiImapFetcher.py:60 msgid "If you change the config you must save before importing" msgstr "" "Ha megváltoztatod a beállításokat, akkor importálás előtt előbb el kell " "mentened őket." -#: GuiImapFetcher.py:91 +#: GuiImapFetcher.py:103 msgid "Starting import. Please wait." msgstr "Importálás indítása. Kérlek várj." -#: GuiImapFetcher.py:95 +#: GuiImapFetcher.py:107 msgid "Finished import without error." msgstr "Importálás sikeresen befejezve." -#: GuiImapFetcher.py:98 +#: GuiImapFetcher.py:110 msgid "" "Login to mailserver failed: please check mailserver, username and password" msgstr "" "A bejelentkezés a levelezőkiszolgálóra meghiúsult: kérlek ellenőrizd a " "megadott levelezőkiszolgálót, a felhasználónevet és a jelszót." -#: GuiImapFetcher.py:101 +#: GuiImapFetcher.py:113 msgid "" "Could not connect to mailserver: check mailserver and use SSL settings and " "internet connectivity" @@ -736,62 +1053,96 @@ msgstr "" "nem sikerült a csatlakozás a levelezőkiszolgálóhoz: ellenőrizd a " "levelezőkiszolgáló és az SSL beállításait, illetve az internetkapcsolatot." -#: GuiImapFetcher.py:111 +#: GuiImapFetcher.py:123 msgid "Fetch Type" msgstr "Fogadás módja" -#: GuiImapFetcher.py:111 +#: GuiImapFetcher.py:123 msgid "Mail Folder" msgstr "Levelek mappája" -#: GuiImapFetcher.py:111 +#: GuiImapFetcher.py:123 msgid "Mailserver" msgstr "Levelezőkiszolgáló" -#: GuiImapFetcher.py:111 +#: GuiImapFetcher.py:123 msgid "Site" msgstr "Terem" -#: GuiImapFetcher.py:111 +#: GuiImapFetcher.py:123 msgid "Use SSL" msgstr "SSL használata" -#: GuiImapFetcher.py:142 +#: GuiImapFetcher.py:154 msgid "Yes" msgstr "Igen" -#: GuiImapFetcher.py:143 +#: GuiImapFetcher.py:155 msgid "No" msgstr "Nem" -#: GuiLogView.py:53 +#: GuiLogView.py:61 msgid "Log Messages" msgstr "Naplóbejegyzések" -#: GuiPositionalStats.py:135 +#: GuiPositionalStats.py:147 msgid "DEBUG: activesite set to %s" msgstr "DEBUG: aktív terem: %s" -#: GuiPositionalStats.py:321 +#: GuiPositionalStats.py:333 msgid "Positional Stats page displayed in %4.2f seconds" msgstr "Pozíciós statisztikák megjelenítve %4.2f mp alatt" -#: GuiPrefs.py:70 +#: GuiPrefs.py:81 msgid "Setting" msgstr "Beállítás" -#: GuiPrefs.py:76 +#: GuiPrefs.py:87 msgid "Value (double-click to change)" msgstr "Érték (kattints duplán a módosításhoz)" -#: GuiPrefs.py:176 +#: GuiPrefs.py:187 msgid "Test Preferences Dialog" msgstr "Beállítási párbeszéd (teszt)" -#: GuiPrefs.py:181 fpdb.pyw:294 +#: GuiPrefs.py:192 fpdb.pyw:296 msgid "Preferences" msgstr "Beállítások" +#: GuiRingPlayerStats.py:323 GuiSessionViewer.py:249 +#: GuiTourneyPlayerStats.py:252 +msgid "Stats page displayed in %4.2f seconds" +msgstr "Statisztikák megjelenítve %4.2f mp alatt" + +#: GuiRingPlayerStats.py:370 +#, fuzzy +msgid "***sortnums error: " +msgstr "***sortCols hiba: " + +#: GuiRingPlayerStats.py:392 +#, fuzzy +msgid "***sortcols error: " +msgstr "***sortCols hiba: " + +#: GuiRingPlayerStats.py:683 +msgid "Detailed Filters" +msgstr "" + +#: GuiRingPlayerStats.py:692 +#, fuzzy +msgid "Hand Filters:" +msgstr "és mások" + +#: GuiRingPlayerStats.py:705 +#, fuzzy +msgid "between" +msgstr "Min:" + +#: GuiRingPlayerStats.py:706 +#, fuzzy +msgid "and" +msgstr "Leosztások" + #: GuiSessionViewer.py:41 msgid "Failed to load numpy and/or matplotlib in Session Viewer" msgstr "Nem sikerült a numpy és/vagy a matplotlib betöltése a Session nézetben" @@ -800,39 +1151,35 @@ msgstr "Nem sikerült a numpy és/vagy a matplotlib betöltése a Session nézet msgid "ImportError: %s" msgstr "ImportError: %s" -#: GuiSessionViewer.py:78 +#: GuiSessionViewer.py:90 msgid "Hand Breakdown for all levels listed above" msgstr "Kezdőkezekre bontva a fenti limiteknél" -#: GuiSessionViewer.py:237 GuiTourneyPlayerStats.py:240 -msgid "Stats page displayed in %4.2f seconds" -msgstr "Statisztikák megjelenítve %4.2f mp alatt" - -#: GuiSessionViewer.py:364 +#: GuiSessionViewer.py:376 msgid "Session candlestick graph" msgstr "Session gyertya grafikon" -#: GuiSessionViewer.py:367 +#: GuiSessionViewer.py:379 msgid "Sessions" msgstr "Sessionök" -#: GuiTourneyPlayerStats.py:72 +#: GuiTourneyPlayerStats.py:84 msgid "_Refresh Stats" msgstr "Statisztikák f_rissítése" -#: GuiTourneyViewer.py:37 +#: GuiTourneyViewer.py:49 msgid "Enter the tourney number you want to display:" msgstr "Add meg a megjelenítendő verseny azonosítóját" -#: GuiTourneyViewer.py:43 +#: GuiTourneyViewer.py:55 msgid "_Display" msgstr "_Mutat" -#: GuiTourneyViewer.py:50 +#: GuiTourneyViewer.py:62 msgid "Display _Player" msgstr "_Játékost mutat" -#: GuiTourneyViewer.py:65 +#: GuiTourneyViewer.py:77 msgid "" "Tournament not found - please ensure you imported it and selected the " "correct site" @@ -840,7 +1187,7 @@ msgstr "" "A verseny nem található - kérlek ellenőrizd, hogy importáltad-e már, és hogy " "a helyes termet választottad" -#: GuiTourneyViewer.py:93 +#: GuiTourneyViewer.py:105 msgid "" "Player or tourney not found - please ensure you imported it and selected the " "correct site" @@ -848,15 +1195,15 @@ msgstr "" "A játékos vagy averseny nem található - kérlek ellenőrizd, hogy importáltad-" "e már, és hogy a helyes termet választottad" -#: GuiTourneyViewer.py:107 +#: GuiTourneyViewer.py:119 msgid "N/A" msgstr "N/A" -#: GuiTourneyViewer.py:128 +#: GuiTourneyViewer.py:140 msgid "invalid entry in tourney number - must enter numbers only" msgstr "érvénytelen érték a versenyazonosítónál - csak számok használhatóak" -#: HUD_main.pyw:77 +#: HUD_main.pyw:86 msgid "" "\n" "HUD_main: starting ..." @@ -864,19 +1211,19 @@ msgstr "" "\n" "HUD_main: indítás ..." -#: HUD_main.pyw:80 fpdb.pyw:874 +#: HUD_main.pyw:89 fpdb.pyw:876 msgid "Logfile is " msgstr "A naplófájl " -#: HUD_main.pyw:81 +#: HUD_main.pyw:90 msgid "HUD_main starting: using db name = %s" msgstr "HUD_main indítás: " -#: HUD_main.pyw:86 +#: HUD_main.pyw:95 msgid "Note: error output is being diverted to:\n" msgstr "Megjegyzés: a hibakimenet ide van átirányítva:\n" -#: HUD_main.pyw:87 fpdb.pyw:1136 +#: HUD_main.pyw:96 fpdb.pyw:1138 msgid "" "\n" "Any major error will be reported there _only_.\n" @@ -884,324 +1231,324 @@ msgstr "" "\n" "Bármilyen nagyobb hiba _csak_oda_ kerül kiírásra.\n" -#: HUD_main.pyw:88 +#: HUD_main.pyw:97 msgid "Note: error output is being diverted to:" msgstr "Megjegyzés: a hibakimenet ide van átirányítva:" -#: HUD_main.pyw:89 +#: HUD_main.pyw:98 msgid "Any major error will be reported there _only_." msgstr "Bármilyen nagyobb hiba _csak_oda_ kerül kiírásra." -#: HUD_main.pyw:92 +#: HUD_main.pyw:101 msgid "HUD_main: starting ...\n" msgstr "HUD_main: indítás ...\n" -#: HUD_main.pyw:105 HUD_run_me.py:62 +#: HUD_main.pyw:114 HUD_run_me.py:62 msgid "Closing this window will exit from the HUD." msgstr "Ezen ablak bezárása a HUD-ot is bezárja." -#: HUD_main.pyw:108 HUD_run_me.py:66 +#: HUD_main.pyw:117 HUD_run_me.py:66 msgid "HUD Main Window" msgstr "HUD Főablak" -#: HUD_main.pyw:117 +#: HUD_main.pyw:126 msgid "Terminating normally." msgstr "Normál leállás." -#: HUD_main.pyw:221 +#: HUD_main.pyw:230 msgid "Received hand no %s" msgstr "Leosztás fogadva, azonosító: %s" -#: HUD_main.pyw:240 +#: HUD_main.pyw:249 msgid "HUD_main.read_stdin: hand processing starting ..." msgstr "HUD_main.read_stdin: leosztás feldolgozása indul" -#: HUD_main.pyw:266 +#: HUD_main.pyw:275 msgid "hud_dict[%s] was not found\n" msgstr "hud_dict[%s] nincs meg\n" -#: HUD_main.pyw:267 +#: HUD_main.pyw:276 msgid "will not send hand\n" msgstr "leosztás nem lesz elküldve\n" -#: HUD_main.pyw:301 +#: HUD_main.pyw:310 msgid "HUD create: table name %s not found, skipping." msgstr "HUD létrehozás: %s nevű asztal nincs meg, kihagyás." -#: HUD_main.pyw:309 +#: HUD_main.pyw:318 msgid "Table \"%s\" no longer exists\n" msgstr "\"%s\" nevű asztal már nem létezik\n" -#: HUD_main.pyw:312 +#: HUD_main.pyw:321 msgid "" -"HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f,%" -"4.3f,%4.3f)" +"HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f," +"%4.3f,%4.3f)" msgstr "" -"HUD_main.read_stdin: leosztás beolvasva %4.3f mp alatt (%4.3f,%4.3f,%4.3f,%" -"4.3f,%4.3f,%4.3f)" +"HUD_main.read_stdin: leosztás beolvasva %4.3f mp alatt (%4.3f,%4.3f,%4.3f," +"%4.3f,%4.3f,%4.3f)" #: HUD_run_me.py:45 msgid "HUD_main starting\n" msgstr "HUD_main indítása\n" -#: HUD_run_me.py:51 +#: HUD_run_me.py:51 TournamentTracker.py:317 msgid "Using db name = %s\n" msgstr "%s adatbázis használata\n" -#: Hand.py:138 +#: Hand.py:150 msgid "BB" msgstr "BB" -#: Hand.py:139 +#: Hand.py:151 msgid "SB" msgstr "SB" -#: Hand.py:140 +#: Hand.py:152 msgid "BUTTONPOS" msgstr "GOMB" -#: Hand.py:141 +#: Hand.py:153 msgid "HAND NO." msgstr "LEOSZTÁS" -#: Hand.py:142 +#: Hand.py:154 TourneySummary.py:134 msgid "SITE" msgstr "TEREM" -#: Hand.py:143 +#: Hand.py:155 msgid "TABLE NAME" msgstr "ASZTAL NEVE" -#: Hand.py:144 +#: Hand.py:156 TourneySummary.py:144 msgid "HERO" msgstr "JÁTÉKOS" -#: Hand.py:145 +#: Hand.py:157 TourneySummary.py:145 msgid "MAXSEATS" msgstr "MAX. SZÉKEK" -#: Hand.py:146 +#: Hand.py:158 msgid "LEVEL" msgstr "SZINT" -#: Hand.py:147 +#: Hand.py:159 TourneySummary.py:150 msgid "MIXED" msgstr "KEVERT" -#: Hand.py:148 +#: Hand.py:160 msgid "LASTBET" msgstr "UTOLSÓ TÉT" -#: Hand.py:149 +#: Hand.py:161 msgid "ACTION STREETS" msgstr "AKCIÓ UTCÁK" -#: Hand.py:150 +#: Hand.py:162 msgid "STREETS" msgstr "UTCÁK" -#: Hand.py:151 +#: Hand.py:163 msgid "ALL STREETS" msgstr "MINDEN UTCA" -#: Hand.py:152 +#: Hand.py:164 msgid "COMMUNITY STREETS" msgstr "KÖZÖS UTCÁK" -#: Hand.py:153 +#: Hand.py:165 msgid "HOLE STREETS" msgstr "HOLE UTCÁK" -#: Hand.py:154 +#: Hand.py:166 msgid "COUNTED SEATS" msgstr "SZÁMOLT SZÉKEK" -#: Hand.py:155 +#: Hand.py:167 msgid "DEALT" msgstr "OSZTOTT" -#: Hand.py:156 +#: Hand.py:168 msgid "SHOWN" msgstr "MUTATOTT" -#: Hand.py:157 +#: Hand.py:169 msgid "MUCKED" msgstr "NEM MUTATOTT" -#: Hand.py:158 +#: Hand.py:170 msgid "TOTAL POT" msgstr "TELJES KASSZA" -#: Hand.py:159 +#: Hand.py:171 msgid "TOTAL COLLECTED" msgstr "TELJES BEGYŰJTÖTT" -#: Hand.py:160 +#: Hand.py:172 msgid "RAKE" msgstr "JUTALÉK" -#: Hand.py:161 +#: Hand.py:173 TourneySummary.py:135 msgid "START TIME" msgstr "KEZDÉSI IDŐ" -#: Hand.py:162 +#: Hand.py:174 msgid "TOURNAMENT NO" msgstr "VERSENY SZÁM" -#: Hand.py:163 +#: Hand.py:175 TourneySummary.py:140 msgid "TOURNEY ID" msgstr "VERSENYAZONOSÍTÓ" -#: Hand.py:164 +#: Hand.py:176 TourneySummary.py:139 msgid "TOURNEY TYPE ID" msgstr "VERSENYTÍPUS AZONOSÍTÓ" -#: Hand.py:165 +#: Hand.py:177 TourneySummary.py:141 msgid "BUYIN" msgstr "NEVEZÉSI DÍJ" -#: Hand.py:166 +#: Hand.py:178 msgid "BUYIN CURRENCY" msgstr "NEVEZÉSI DÍJ PÉNZNEME" -#: Hand.py:167 +#: Hand.py:179 msgid "BUYIN CHIPS" msgstr "KEZDŐ ZSETONOK" -#: Hand.py:168 +#: Hand.py:180 TourneySummary.py:142 msgid "FEE" msgstr "DÍJ" -#: Hand.py:169 +#: Hand.py:181 msgid "IS REBUY" msgstr "REBUY" -#: Hand.py:170 +#: Hand.py:182 msgid "IS ADDON" msgstr "ADDON" -#: Hand.py:171 +#: Hand.py:183 msgid "IS KO" msgstr "KIÜTÉSES" -#: Hand.py:172 +#: Hand.py:184 TourneySummary.py:166 msgid "KO BOUNTY" msgstr "FEJVADÁSZ" -#: Hand.py:173 +#: Hand.py:185 msgid "IS MATRIX" msgstr "MÁTRIX" -#: Hand.py:174 +#: Hand.py:186 msgid "IS SHOOTOUT" msgstr "SHOOTOUT" -#: Hand.py:175 +#: Hand.py:187 TourneySummary.py:167 msgid "TOURNEY COMMENT" msgstr "VERSENY MEGJEGYZÉS" -#: Hand.py:178 +#: Hand.py:190 TourneySummary.py:179 msgid "PLAYERS" msgstr "JÁTÉKOSOK" -#: Hand.py:179 +#: Hand.py:191 msgid "STACKS" msgstr "LETÉTEK" -#: Hand.py:180 +#: Hand.py:192 msgid "POSTED" msgstr "BETETT" -#: Hand.py:181 +#: Hand.py:193 msgid "POT" msgstr "KASSZA" -#: Hand.py:182 +#: Hand.py:194 msgid "SEATING" msgstr "ÜLTETÉS" -#: Hand.py:183 +#: Hand.py:195 msgid "GAMETYPE" msgstr "JÁTÉKTÍPUS" -#: Hand.py:184 +#: Hand.py:196 msgid "ACTION" msgstr "AKCIÓ" -#: Hand.py:185 +#: Hand.py:197 msgid "COLLECTEES" msgstr "BEGYŰJTŐK" -#: Hand.py:186 +#: Hand.py:198 msgid "BETS" msgstr "TÉTEK" -#: Hand.py:187 +#: Hand.py:199 msgid "BOARD" msgstr "ASZTAL" -#: Hand.py:188 +#: Hand.py:200 msgid "DISCARDS" msgstr "DOBÁSOK" -#: Hand.py:189 +#: Hand.py:201 msgid "HOLECARDS" msgstr "KEZDŐKÉZ" -#: Hand.py:190 +#: Hand.py:202 msgid "TOURNEYS PLAYER IDS" msgstr "VERSENYJÁTÉKOS AZONOSÍTÓK" -#: Hand.py:213 Hand.py:1232 +#: Hand.py:225 Hand.py:1244 msgid "[ERROR] Tried to add holecards for unknown player: %s" msgstr "[ERROR] Kezdőkéz hozzáadása ismeretlen játékoshoz: %s" -#: Hand.py:266 +#: Hand.py:278 msgid "Hand.insert(): hid #: %s is a duplicate" msgstr "Hand.insert(): %s leosztásazonosító duplikáció" -#: Hand.py:305 +#: Hand.py:317 msgid "markstreets didn't match - Assuming hand cancelled" msgstr "markStreets nem egyezik - Leosztás érvénytelenítését feltételezem" -#: Hand.py:307 +#: Hand.py:319 msgid "FpdbParseError: markStreets appeared to fail: First 100 chars: '%s'" msgstr "" "FpdbParseError: markStreets hívása meghiúsult: az első 100 karakter: '%s'" -#: Hand.py:311 +#: Hand.py:323 msgid "DEBUG: checkPlayerExists %s fail" msgstr "DEBUG: checkPlayerExists %s játékos nem létezik." -#: Hand.py:312 +#: Hand.py:324 msgid "checkPlayerExists: '%s' failed." msgstr "checkPlayerExists: '%s' játékos nem létezik." -#: Hand.py:395 +#: Hand.py:407 msgid "%s %s calls %s" msgstr "%s utcán %s játékos ennyit megad: %s" -#: Hand.py:465 +#: Hand.py:477 msgid "%s %s raise %s" msgstr "%s utcán %s játékos eddig emel: %s" -#: Hand.py:476 +#: Hand.py:488 msgid "%s %s bets %s" msgstr "%s utcán %s játékos ennyit hív: %s" -#: Hand.py:495 +#: Hand.py:507 msgid "%s %s folds" msgstr "%s utcán %s játékos dob" -#: Hand.py:504 +#: Hand.py:516 msgid "%s %s checks" msgstr "%s utcán %s játékos passzol" -#: Hand.py:524 +#: Hand.py:536 msgid "addShownCards %s hole=%s all=%s" msgstr "addShownCards %s játékos kézben=%s mind=%s" -#: Hand.py:635 +#: Hand.py:647 msgid "" "*** ERROR - HAND: calling writeGameLine with unexpected STARTTIME value, " "expecting datetime.date object, received:" @@ -1209,18 +1556,18 @@ msgstr "" "*** ERROR - HAND: writeGameLine hívása nem várt STARTTIME értékkel, datetime." "date objektumot vár, ezt kapta:" -#: Hand.py:636 +#: Hand.py:648 msgid "" "*** Make sure your HandHistoryConverter is setting hand.startTime properly!" msgstr "" "*** Győződj meg róla, hogy a feldolgozód helyesen állítja be a hand." "startTime értékét!" -#: Hand.py:637 +#: Hand.py:649 msgid "*** Game String:" msgstr "*** Játék sztring:" -#: Hand.py:691 +#: Hand.py:703 msgid "" "*** Parse error reading blinds (check compilePlayerRegexs as a likely " "culprit)" @@ -1228,75 +1575,75 @@ msgstr "" "*** Feldolgozási hiba a vakok beolvasása közben (valószínűleg a " "compilePlayerRegex-eket kell ellenőrizni)" -#: Hand.py:718 +#: Hand.py:730 msgid "HoldemOmahaHand.__init__:Can't assemble hand from db without a handid" msgstr "" "HoldemOmahaHand.__init__: nem lehet a leosztást összeállítani az " "adatbázisból a leosztás azonosítója nélkül" -#: Hand.py:720 +#: Hand.py:732 msgid "HoldemOmahaHand.__init__:Neither HHC nor DB+handid provided" msgstr "" "HoldemOmahaHand.__init__: sem a HHC, sem az adatbázis+leosztásaonosító nem " "lett megadva" -#: Hand.py:1101 +#: Hand.py:1113 msgid "*** DEALING HANDS ***" msgstr "*** OSZTÁS ***" -#: Hand.py:1106 +#: Hand.py:1118 msgid "Dealt to %s: [%s]" msgstr "%s kapja: [%s]" -#: Hand.py:1111 +#: Hand.py:1123 msgid "*** FIRST DRAW ***" msgstr "*** ELSŐ CSERE ***" -#: Hand.py:1121 +#: Hand.py:1133 msgid "*** SECOND DRAW ***" msgstr "*** MÁSODIK CSERE ***" -#: Hand.py:1131 +#: Hand.py:1143 msgid "*** THIRD DRAW ***" msgstr "*** HARMADIK CSERE ***" -#: Hand.py:1141 Hand.py:1359 +#: Hand.py:1153 Hand.py:1371 msgid "*** SHOW DOWN ***" msgstr "*** MUTATÁS ***" -#: Hand.py:1156 Hand.py:1374 +#: Hand.py:1168 Hand.py:1386 msgid "*** SUMMARY ***" msgstr "*** ÖSSZEGZÉS ***" -#: Hand.py:1241 +#: Hand.py:1253 msgid "%s %s completes %s" msgstr "%s utcán %s játékos kiegészít erre: %s" -#: Hand.py:1259 +#: Hand.py:1271 msgid "Bringin: %s, %s" msgstr "Beülő: %s, %s" -#: Hand.py:1299 +#: Hand.py:1311 msgid "*** 3RD STREET ***" msgstr "*** HARMADIK UTCA ***" -#: Hand.py:1313 +#: Hand.py:1325 msgid "*** 4TH STREET ***" msgstr "*** NEGYEDIK UTCA ***" -#: Hand.py:1325 +#: Hand.py:1337 msgid "*** 5TH STREET ***" msgstr "*** ÖTÖDIK UTCA ***" -#: Hand.py:1337 +#: Hand.py:1349 msgid "*** 6TH STREET ***" msgstr "*** HATODIK UTCA ***" -#: Hand.py:1347 +#: Hand.py:1359 msgid "*** RIVER ***" msgstr "*** RIVER ***" -#: Hand.py:1439 +#: Hand.py:1451 msgid "" "join_holecards: # of holecards should be either < 4, 4 or 7 - 5 and 6 should " "be impossible for anyone who is not a hero" @@ -1304,93 +1651,93 @@ msgstr "" "join_holecards: a kézbe kapott lapok száma vagy < 4, 4 or 7 - 5 és 6 " "mindenki számára lehetetlen, aki nem hős" -#: Hand.py:1440 +#: Hand.py:1452 msgid "join_holcards: holecards(%s): %s" msgstr "join_holcards: holecards(%s): %s" -#: Hand.py:1523 +#: Hand.py:1535 msgid "DEBUG: call Pot.end() before printing pot total" msgstr "DEBUG: Pot.end() hívása a teljes kassza kiírása előtt" -#: Hand.py:1525 +#: Hand.py:1537 msgid "FpdbError in printing Hand object" msgstr "FpdbError egy Hand objektum kiírása közben" -#: HandHistoryConverter.py:126 +#: HandHistoryConverter.py:134 msgid "Failed sanity check" msgstr "A megfelelőségi ellenőrzésen nem ment át" -#: HandHistoryConverter.py:134 +#: HandHistoryConverter.py:142 msgid "Tailing '%s'" msgstr "'%s' követése" -#: HandHistoryConverter.py:141 +#: HandHistoryConverter.py:149 msgid "HHC.start(follow): processHand failed: Exception msg: '%s'" msgstr "HHC.start(follow): processHand meghiúsult: A hibaüzenet szövege: '%s'" -#: HandHistoryConverter.py:155 +#: HandHistoryConverter.py:163 msgid "HHC.start(): processHand failed: Exception msg: '%s'" msgstr "HHC.start(): processHand meghiúsult: A hibaüzenet szövege: '%s'" -#: HandHistoryConverter.py:159 +#: HandHistoryConverter.py:167 msgid "Read %d hands (%d failed) in %.3f seconds" msgstr "%d leosztás beolvasva (%d sikertelen) %.3f mp alatt" -#: HandHistoryConverter.py:165 +#: HandHistoryConverter.py:173 msgid "Summary file '%s' correctly parsed (took %.3f seconds)" msgstr "A(z) '%s' összefoglaló fájl rendben feldolgozva (%.3f mp)" -#: HandHistoryConverter.py:167 +#: HandHistoryConverter.py:175 msgid "Error converting summary file '%s' (took %.3f seconds)" msgstr "Hiba a(z) '%s' összefoglaló fájl konvertálása közben (%.3f mp)" -#: HandHistoryConverter.py:170 +#: HandHistoryConverter.py:178 msgid "Error converting '%s'" msgstr "Hiba a(z) '%s' konvertálása közben" -#: HandHistoryConverter.py:201 +#: HandHistoryConverter.py:209 msgid "%s changed inode numbers from %d to %d" msgstr "%s megváltoztatta az inode számokat %d =>%d" -#: HandHistoryConverter.py:246 +#: HandHistoryConverter.py:254 msgid "Converting starsArchive format to readable" msgstr "starsArchive formátum konvertálása olvashatóra" -#: HandHistoryConverter.py:251 +#: HandHistoryConverter.py:259 msgid "Converting ftpArchive format to readable" msgstr "ftpArchive formátum konvertálása olvashatóra" -#: HandHistoryConverter.py:256 +#: HandHistoryConverter.py:264 msgid "Read no hands." msgstr "Nem történt beolvasás." -#: HandHistoryConverter.py:393 +#: HandHistoryConverter.py:401 msgid "HH Sanity Check: output and input files are the same, check config" msgstr "" "HH Sanity Check: a kimeneti és bemeneti fájlok azonosak, ellenőrizd a " "beállításokat" -#: HandHistoryConverter.py:428 +#: HandHistoryConverter.py:436 msgid "Reading stdin with %s" msgstr "Standard bemenet olvasása ezzel: %s" -#: HandHistoryConverter.py:443 +#: HandHistoryConverter.py:451 msgid "unable to read file with any codec in list!" msgstr "a file olvasása nem sikerült egyik listabeli kódolással sem" -#: HandHistoryConverter.py:597 +#: HandHistoryConverter.py:605 msgid "Unable to create output directory %s for HHC!" msgstr "A %s kimeneti könyvtár nem hozható létre a feldolgozó számára'" -#: HandHistoryConverter.py:598 +#: HandHistoryConverter.py:606 msgid "*** ERROR: UNABLE TO CREATE OUTPUT DIRECTORY" msgstr "*** ERROR: A KIMENETI KÖNYVTÁR NEM HOZHATÓ LÉTRE" -#: HandHistoryConverter.py:600 +#: HandHistoryConverter.py:608 msgid "Created directory '%s'" msgstr "'%s' könyvtár létrehozva" -#: HandHistoryConverter.py:604 +#: HandHistoryConverter.py:612 msgid "out_path %s couldn't be opened" msgstr "%s kimeneti könyvtár nem nyitható meg" @@ -1420,99 +1767,99 @@ msgstr "" "Eddig %d leosztást játszottál\n" "a %s teremben." -#: Hud.py:137 +#: Hud.py:149 msgid "Kill This HUD" msgstr "Ezen HUD kilövése" -#: Hud.py:142 +#: Hud.py:154 msgid "Save HUD Layout" msgstr "HUD elrendezés mentése" -#: Hud.py:146 +#: Hud.py:158 msgid "Reposition StatWindows" msgstr "Újrapozícionálás" -#: Hud.py:150 +#: Hud.py:162 msgid "Show Player Stats" msgstr "Játékos statisztikák megjelenítése" -#: Hud.py:155 Hud.py:224 +#: Hud.py:167 Hud.py:236 msgid "For This Blind Level Only" msgstr "Csak erre a vakszintre" -#: Hud.py:160 Hud.py:229 +#: Hud.py:172 Hud.py:241 msgid "For Multiple Blind Levels:" msgstr "Több vakszintre:" -#: Hud.py:163 Hud.py:232 +#: Hud.py:175 Hud.py:244 msgid " 0.5 to 2.0 x Current Blinds" msgstr " A jelenlegi 0.5-2-szerese" -#: Hud.py:168 Hud.py:237 +#: Hud.py:180 Hud.py:249 msgid " 0.33 to 3.0 x Current Blinds" msgstr "A jelenlegi 0.33-3-szorosa" -#: Hud.py:173 Hud.py:242 +#: Hud.py:185 Hud.py:254 msgid " 0.1 to 10 x Current Blinds" msgstr "A jelenlegi 0.1-10-szerese" -#: Hud.py:178 Hud.py:247 +#: Hud.py:190 Hud.py:259 msgid " All Levels" msgstr " Minden limit" -#: Hud.py:186 Hud.py:255 -msgid " Any Number" -msgstr " Bármennyi" - -#: Hud.py:191 Hud.py:260 -msgid " Custom" -msgstr " Egyedi" - -#: Hud.py:196 Hud.py:265 -msgid " Exact" -msgstr " Csak ez" - -#: Hud.py:201 Hud.py:270 -msgid "Since:" -msgstr "Ez óta:" - -#: Hud.py:204 Hud.py:273 -msgid " All Time" -msgstr " Mind" - -#: Hud.py:209 Hud.py:278 -msgid " Session" -msgstr " Session" - -#: Hud.py:214 Hud.py:283 -msgid " %s Days" -msgstr " Az elmúlt %s nap" - -#: Hud.py:219 -msgid "Show Opponent Stats" -msgstr "Ellenfél statisztikáinak mutatása" - -#: Hud.py:252 +#: Hud.py:195 Hud.py:264 msgid "For #Seats:" msgstr "Ennyi szék számára:" -#: Hud.py:341 +#: Hud.py:198 Hud.py:267 +msgid " Any Number" +msgstr " Bármennyi" + +#: Hud.py:203 Hud.py:272 +msgid " Custom" +msgstr " Egyedi" + +#: Hud.py:208 Hud.py:277 +msgid " Exact" +msgstr " Csak ez" + +#: Hud.py:213 Hud.py:282 +msgid "Since:" +msgstr "Ez óta:" + +#: Hud.py:216 Hud.py:285 +msgid " All Time" +msgstr " Mind" + +#: Hud.py:221 Hud.py:290 +msgid " Session" +msgstr " Session" + +#: Hud.py:226 Hud.py:295 +msgid " %s Days" +msgstr " Az elmúlt %s nap" + +#: Hud.py:231 +msgid "Show Opponent Stats" +msgstr "Ellenfél statisztikáinak mutatása" + +#: Hud.py:353 msgid "Debug StatWindows" msgstr "StatWindows debugolása" -#: Hud.py:345 +#: Hud.py:357 msgid "Set max seats" msgstr "Max székek beállítása" -#: Hud.py:528 +#: Hud.py:540 msgid "Updating config file" msgstr "Konfigurációs fájl frissítése" -#: Hud.py:537 +#: Hud.py:549 msgid "No layout found for %d-max games for site %s\n" msgstr "Nem található elrendezés a %d fős asztalok számára a %s teremben\n" -#: Hud.py:551 +#: Hud.py:563 msgid "" "exception in Hud.adj_seats\n" "\n" @@ -1520,15 +1867,15 @@ msgstr "" "hiba a Hud.adj_seats helyen\n" "\n" -#: Hud.py:552 +#: Hud.py:564 msgid "error is %s" msgstr "A hiba a következő: %s" -#: Hud.py:559 +#: Hud.py:571 msgid "Error finding actual seat.\n" msgstr "Hiba az aktuális szék keresése közben.\n" -#: Hud.py:575 +#: Hud.py:587 msgid "" "------------------------------------------------------------\n" "Creating hud from hand %s\n" @@ -1536,7 +1883,7 @@ msgstr "" "------------------------------------------------------------\n" "HUD készítése ebből a leosztásból: %s\n" -#: Hud.py:624 +#: Hud.py:636 msgid "" "KeyError at the start of the for loop in update in hud_main. How this can " "possibly happen is totally beyond my comprehension. Your HUD may be about to " @@ -1545,11 +1892,11 @@ msgstr "" "KeyError a for ciklus kezdeténél a hud_main-ban. Fogalmam sincs, hogy ez " "hogyan lehetséges. A HUD-od valószínűleg nagyon furcsa lesz. -Eric" -#: Hud.py:625 +#: Hud.py:637 msgid "(btw, the key was %s and statd is %s" msgstr "(ja, a kulcs %s volt a statd pedig %s)" -#: Hud.py:932 +#: Hud.py:944 msgid "" "Fake main window, blah blah, blah\n" "blah, blah" @@ -1557,15 +1904,15 @@ msgstr "" "Kamu főablak, bla bla, bla\n" "bla, bla" -#: Hud.py:940 +#: Hud.py:952 msgid "Table not found." msgstr "Az asztal nem található." -#: ImapFetcher.py:46 +#: ImapFetcher.py:54 msgid "response to logging in:" msgstr "válasz a bejelentkezésre:" -#: ImapFetcher.py:78 +#: ImapFetcher.py:86 msgid "completed running Imap import, closing server connection" msgstr "IMAP import befejezve, kapcsolat lezárása" @@ -1573,41 +1920,41 @@ msgstr "IMAP import befejezve, kapcsolat lezárása" msgid "No Name" msgstr "Nincs név" -#: Options.py:32 +#: Options.py:40 msgid "If passed error output will go to the console rather than ." msgstr "Ha be van állítva, akkor a hibakimenet a konzolra lesz irányítva." -#: Options.py:35 +#: Options.py:43 msgid "Overrides the default database name" msgstr "Felülbírálja az alapértelmezett adatbázis-nevet" -#: Options.py:38 +#: Options.py:46 msgid "Specifies a configuration file." msgstr "Megad egy konfigurációs fájlt." -#: Options.py:41 +#: Options.py:49 msgid "" "Indicates program was restarted with a different path (only allowed once)." msgstr "" "Jelzi a program más útvonallal való indítását (csak egyszer engedélyezett)" -#: Options.py:44 +#: Options.py:52 msgid "Input file" msgstr "Bemeneti fájl" -#: Options.py:47 +#: Options.py:55 msgid "Module name for Hand History Converter" msgstr "Modulnév a Leosztástörténet Konvertáló számára" -#: Options.py:51 +#: Options.py:59 msgid "Error logging level:" msgstr "Hibanaplózási szint:" -#: Options.py:54 +#: Options.py:62 msgid "Print version information and exit." msgstr "Verzióinformáció kiírása, majd kilépés." -#: Options.py:65 +#: Options.py:73 msgid "press enter to end" msgstr "nyomj ENTER-t a befejezéshez" @@ -1615,6 +1962,39 @@ msgstr "nyomj ENTER-t a befejezéshez" msgid "You need to manually enter the playername" msgstr "Meg kell adnod a játékos nevét" +#: PartyPokerToFpdb.py:215 +msgid "Cannot fetch field '%s'" +msgstr "" + +#: PartyPokerToFpdb.py:219 +msgid "Unknown limit '%s'" +msgstr "" + +#: PartyPokerToFpdb.py:224 +msgid "Unknown game type '%s'" +msgstr "" + +#: PartyPokerToFpdb.py:258 +msgid "Cannot read HID for current hand" +msgstr "" + +#: PartyPokerToFpdb.py:263 +msgid "Cannot read Handinfo for current hand" +msgstr "" + +#: PartyPokerToFpdb.py:268 +msgid "Cannot read GameType for current hand" +msgstr "" + +#: PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:320 +msgid "readButton: not found" +msgstr "readButton: nem található" + +#: PartyPokerToFpdb.py:479 +#, fuzzy +msgid "Unimplemented readAction: '%s' '%s'" +msgstr "DEBUG: nem ismert readAction: '%s' '%s'" + #: PokerStarsSummary.py:72 msgid "didn't recognise buyin currency in:" msgstr "nem sikerült felismerni a beülő pénznemét ebben:" @@ -1623,46 +2003,484 @@ msgstr "nem sikerült felismerni a beülő pénznemét ebben:" msgid "in not result starttime" msgstr "a starttime nem található részében" -#: PokerStarsToFpdb.py:172 +#: PokerStarsToFpdb.py:189 msgid "determineGameType: Unable to recognise gametype from: '%s'" msgstr "determineGameType: Nem sikerült felismerni a játéktípust innen: '%s'" -#: PokerStarsToFpdb.py:173 PokerStarsToFpdb.py:203 +#: PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 msgid "determineGameType: Raising FpdbParseError" msgstr "determineGameType: FpdbParseError" -#: PokerStarsToFpdb.py:174 +#: PokerStarsToFpdb.py:191 msgid "Unable to recognise gametype from: '%s'" msgstr "Nem sikerült felismerni a játéktípust innen: '%s'" -#: PokerStarsToFpdb.py:204 +#: PokerStarsToFpdb.py:221 msgid "Lim_Blinds has no lookup for '%s'" msgstr "Lim_Blindsban nincs '%s'" -#: PokerStarsToFpdb.py:256 +#: PokerStarsToFpdb.py:273 msgid "failed to detect currency" msgstr "nem sikerült a pénznem meghatározása" -#: PokerStarsToFpdb.py:303 -msgid "readButton: not found" -msgstr "readButton: nem található" - -#: PokerStarsToFpdb.py:341 +#: PokerStarsToFpdb.py:358 msgid "reading antes" msgstr "antek olvasása" -#: Tables_Demo.py:64 +#: Stats.py:103 +msgid "exception getting stat %s for player %s %s" +msgstr "" + +#: Stats.py:104 +msgid "Stats.do_stat result = %s" +msgstr "" + +#: Stats.py:113 +#, fuzzy +msgid "error: %s" +msgstr "A hiba a következő: %s" + +#: Stats.py:132 Stats.py:133 +msgid "Total Profit" +msgstr "" + +#: Stats.py:154 Stats.py:161 +msgid "Voluntarily Put In Pot Pre-Flop%" +msgstr "" + +#: Stats.py:174 Stats.py:182 +msgid "Pre-Flop Raise %" +msgstr "" + +#: Stats.py:195 Stats.py:203 +msgid "% went to showdown" +msgstr "" + +#: Stats.py:216 Stats.py:224 +msgid "% won money at showdown" +msgstr "" + +#: Stats.py:237 Stats.py:246 +msgid "profit/100hands" +msgstr "" + +#: Stats.py:240 +msgid "exception calcing p/100: 100 * %d / %d" +msgstr "" + +#: Stats.py:259 Stats.py:268 +msgid "big blinds/100 hands" +msgstr "" + +#: Stats.py:281 Stats.py:290 +msgid "Big Bets/100 hands" +msgstr "" + +#: Stats.py:284 +msgid "exception calcing BB/100: " +msgstr "" + +#: Stats.py:304 Stats.py:315 +msgid "Flop Seen %" +msgstr "" + +#: Stats.py:338 Stats.py:346 +#, fuzzy +msgid "number hands seen" +msgstr "Leosztások száma:" + +#: Stats.py:359 Stats.py:367 +msgid "folded flop/4th" +msgstr "" + +#: Stats.py:380 +msgid "% steal attempted" +msgstr "" + +#: Stats.py:395 Stats.py:402 +msgid "% folded SB to steal" +msgstr "" + +#: Stats.py:414 Stats.py:421 +msgid "% folded BB to steal" +msgstr "" + +#: Stats.py:436 Stats.py:443 +msgid "% folded blind to steal" +msgstr "" + +#: Stats.py:455 Stats.py:462 +msgid "% 3/4 Bet preflop/3rd" +msgstr "" + +#: Stats.py:474 Stats.py:481 +msgid "% won$/saw flop/4th" +msgstr "" + +#: Stats.py:493 Stats.py:500 +msgid "Aggression Freq flop/4th" +msgstr "" + +#: Stats.py:512 Stats.py:519 +msgid "Aggression Freq turn/5th" +msgstr "" + +#: Stats.py:531 Stats.py:538 +msgid "Aggression Freq river/6th" +msgstr "" + +#: Stats.py:550 Stats.py:557 +msgid "Aggression Freq 7th" +msgstr "" + +#: Stats.py:576 Stats.py:583 +msgid "Post-Flop Aggression Freq" +msgstr "" + +#: Stats.py:604 Stats.py:611 +msgid "Aggression Freq" +msgstr "" + +#: Stats.py:630 Stats.py:637 +#, fuzzy +msgid "Aggression Factor" +msgstr "Session statisztikák" + +#: Stats.py:654 Stats.py:661 +msgid "% continuation bet " +msgstr "" + +#: Stats.py:673 Stats.py:680 +msgid "% continuation bet flop/4th" +msgstr "" + +#: Stats.py:692 Stats.py:699 +msgid "% continuation bet turn/5th" +msgstr "" + +#: Stats.py:711 Stats.py:718 +msgid "% continuation bet river/6th" +msgstr "" + +#: Stats.py:730 Stats.py:737 +msgid "% continuation bet 7th" +msgstr "" + +#: Stats.py:749 Stats.py:756 +msgid "% fold frequency flop/4th" +msgstr "" + +#: Stats.py:768 Stats.py:775 +msgid "% fold frequency turn/5th" +msgstr "" + +#: Stats.py:787 Stats.py:794 +msgid "% fold frequency river/6th" +msgstr "" + +#: Stats.py:806 Stats.py:813 +msgid "% fold frequency 7th" +msgstr "" + +#: Stats.py:833 +msgid "Example stats, player = %s hand = %s:" +msgstr "" + +#: Stats.py:866 +msgid "" +"\n" +"\n" +"Legal stats:" +msgstr "" + +#: Stats.py:867 +msgid "" +"(add _0 to name to display with 0 decimal places, _1 to display with 1, " +"etc)\n" +msgstr "" + +#: Tables.py:234 +msgid "Found unknown table = %s" +msgstr "" + +#: Tables.py:261 +msgid "attach to window" +msgstr "" + +#: Tables_Demo.py:72 msgid "Fake HUD Main Window" msgstr "Kamu HUD Főablak" -#: Tables_Demo.py:87 +#: Tables_Demo.py:95 msgid "enter table name to find: " msgstr "add meg a keresendő asztalnevet: " -#: Tables_Demo.py:112 +#: Tables_Demo.py:120 msgid "calling main" msgstr "main hívása" +#: TournamentTracker.py:50 +#, fuzzy +msgid "" +"Note: error output is being diverted to fpdb-error-log.txt and HUD-error." +"txt. Any major error will be reported there _only_." +msgstr "" +"\n" +"Megjegyzés: a hibakimenet átirányítva az fpdb-errors.txt és HUD-errors.txt " +"fájlokba itt:\n" + +#: TournamentTracker.py:111 +msgid "tournament edit window=" +msgstr "" + +#: TournamentTracker.py:114 +msgid "FPDB Tournament Entry" +msgstr "" + +#: TournamentTracker.py:154 +#, fuzzy +msgid "Closing this window will stop the Tournament Tracker" +msgstr "Ezen ablak bezárása a HUD-ot is bezárja." + +#: TournamentTracker.py:156 +msgid "Enter Tournament" +msgstr "" + +#: TournamentTracker.py:161 +msgid "FPDB Tournament Tracker" +msgstr "" + +#: TournamentTracker.py:172 +msgid "Edit" +msgstr "" + +#: TournamentTracker.py:175 +msgid "Rebuy" +msgstr "" + +#: TournamentTracker.py:274 +msgid "db error: skipping " +msgstr "" + +#: TournamentTracker.py:276 +msgid "Database error %s in hand %d. Skipping.\n" +msgstr "" + +#: TournamentTracker.py:285 +msgid "could not find tournament: skipping" +msgstr "" + +#: TournamentTracker.py:286 +msgid "Could not find tournament %d in hand %d. Skipping.\n" +msgstr "" + +#: TournamentTracker.py:309 +#, fuzzy +msgid "table name %s not found, skipping.\n" +msgstr "HUD létrehozás: %s nevű asztal nincs meg, kihagyás." + +#: TournamentTracker.py:316 +msgid "tournament tracker starting\n" +msgstr "" + +#: TourneyFilters.py:61 +#, fuzzy +msgid "Tourney Type" +msgstr "Versenyek" + +#: TourneyFilters.py:88 +msgid "setting numTourneys:" +msgstr "" + +#: TourneySummary.py:136 +msgid "END TIME" +msgstr "" + +#: TourneySummary.py:137 +#, fuzzy +msgid "TOURNEY NAME" +msgstr "VERSENY MEGJEGYZÉS" + +#: TourneySummary.py:138 +#, fuzzy +msgid "TOURNEY NO" +msgstr "VERSENYAZONOSÍTÓ" + +#: TourneySummary.py:143 +#, fuzzy +msgid "CURRENCY" +msgstr "NEVEZÉSI DÍJ PÉNZNEME" + +#: TourneySummary.py:146 +msgid "ENTRIES" +msgstr "" + +#: TourneySummary.py:147 +msgid "SPEED" +msgstr "" + +#: TourneySummary.py:148 +msgid "PRIZE POOL" +msgstr "" + +#: TourneySummary.py:149 +msgid "STARTING CHIP COUNT" +msgstr "" + +#: TourneySummary.py:151 +#, fuzzy +msgid "REBUY" +msgstr "REBUY" + +#: TourneySummary.py:152 +#, fuzzy +msgid "ADDON" +msgstr "ADDON" + +#: TourneySummary.py:153 +msgid "KO" +msgstr "" + +#: TourneySummary.py:154 +#, fuzzy +msgid "MATRIX" +msgstr "MÁTRIX" + +#: TourneySummary.py:155 +msgid "MATRIX ID PROCESSED" +msgstr "" + +#: TourneySummary.py:156 +#, fuzzy +msgid "SHOOTOUT" +msgstr "SHOOTOUT" + +#: TourneySummary.py:157 +msgid "MATRIX MATCH ID" +msgstr "" + +#: TourneySummary.py:158 +#, fuzzy +msgid "SUB TOURNEY BUY IN" +msgstr "VERSENYTÍPUS AZONOSÍTÓ" + +#: TourneySummary.py:159 +#, fuzzy +msgid "SUB TOURNEY FEE" +msgstr "VERSENYAZONOSÍTÓ" + +#: TourneySummary.py:160 +#, fuzzy +msgid "REBUY CHIPS" +msgstr "KEZDŐ ZSETONOK" + +#: TourneySummary.py:161 +#, fuzzy +msgid "ADDON CHIPS" +msgstr "KEZDŐ ZSETONOK" + +#: TourneySummary.py:162 +msgid "REBUY COST" +msgstr "" + +#: TourneySummary.py:163 +msgid "ADDON COST" +msgstr "" + +#: TourneySummary.py:164 +#, fuzzy +msgid "TOTAL REBUYS" +msgstr "REBUY" + +#: TourneySummary.py:165 +#, fuzzy +msgid "TOTAL ADDONS" +msgstr "TELJES KASSZA" + +#: TourneySummary.py:168 +#, fuzzy +msgid "SNG" +msgstr "ÜLTETÉS" + +#: TourneySummary.py:169 +msgid "SATELLITE" +msgstr "" + +#: TourneySummary.py:170 +msgid "DOUBLE OR NOTHING" +msgstr "" + +#: TourneySummary.py:171 +msgid "GUARANTEE" +msgstr "" + +#: TourneySummary.py:172 +msgid "ADDED" +msgstr "" + +#: TourneySummary.py:173 +#, fuzzy +msgid "ADDED CURRENCY" +msgstr "NEVEZÉSI DÍJ PÉNZNEME" + +#: TourneySummary.py:174 +#, fuzzy +msgid "COMMENT" +msgstr "VERSENY MEGJEGYZÉS" + +#: TourneySummary.py:175 +msgid "COMMENT TIMESTAMP" +msgstr "" + +#: TourneySummary.py:178 +#, fuzzy +msgid "PLAYER IDS" +msgstr "JÁTÉKOSOK" + +#: TourneySummary.py:180 +#, fuzzy +msgid "TOURNEYS PLAYERS IDS" +msgstr "VERSENYJÁTÉKOS AZONOSÍTÓK" + +#: TourneySummary.py:181 +msgid "RANKS" +msgstr "" + +#: TourneySummary.py:182 +msgid "WINNINGS" +msgstr "" + +#: TourneySummary.py:183 +#, fuzzy +msgid "WINNINGS CURRENCY" +msgstr "NEVEZÉSI DÍJ PÉNZNEME" + +#: TourneySummary.py:184 +#, fuzzy +msgid "COUNT REBUYS" +msgstr "SZÁMOLT SZÉKEK" + +#: TourneySummary.py:185 +#, fuzzy +msgid "COUNT ADDONS" +msgstr "SZÁMOLT SZÉKEK" + +#: TourneySummary.py:186 +msgid "NB OF KO" +msgstr "" + +#: TourneySummary.py:233 +msgid "Tourney Insert/Update done" +msgstr "" + +#: TourneySummary.py:253 +msgid "addPlayer: rank:%s - name : '%s' - Winnings (%s)" +msgstr "" + +#: TourneySummary.py:280 +msgid "incrementPlayerWinnings: name : '%s' - Add Winnings (%s)" +msgstr "" + #: WinTables.py:70 msgid "Window %s not found. Skipping." msgstr "A(z) %s nevű ablak nincs meg. Kihagyás." @@ -1671,11 +2489,11 @@ msgstr "A(z) %s nevű ablak nincs meg. Kihagyás." msgid "self.window doesn't exist? why?" msgstr "self.window nem létezik? miért?" -#: fpdb.pyw:46 +#: fpdb.pyw:48 msgid " - press return to continue\n" msgstr " - nyomj ENTER-t a folytatáshoz\n" -#: fpdb.pyw:53 +#: fpdb.pyw:55 msgid "" "\n" "python 2.5 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n" @@ -1684,11 +2502,11 @@ msgstr "" "Python 2.5 nincs meg, kérlek telepítsd a Python 2.5-öt, 2.6-ot, vagy 2.7-et " "az fpdb számára\n" -#: fpdb.pyw:54 fpdb.pyw:66 fpdb.pyw:88 +#: fpdb.pyw:56 fpdb.pyw:68 fpdb.pyw:90 msgid "Press ENTER to continue." msgstr "Nyomj ENTER-t a folytatáshoz." -#: fpdb.pyw:65 +#: fpdb.pyw:67 msgid "" "We appear to be running in Windows, but the Windows Python Extensions are " "not loading. Please install the PYWIN32 package from http://sourceforge.net/" @@ -1698,7 +2516,7 @@ msgstr "" "Bővítmények nem töltődnek be. Kérlek telepítsd a PYWIN32 csomagot innen: " "http://sourceforge.net/projects/pywin32/" -#: fpdb.pyw:87 +#: fpdb.pyw:89 msgid "" "Unable to load PYGTK modules required for GUI. Please install PyCairo, " "PyGObject, and PyGTK from www.pygtk.org." @@ -1706,7 +2524,7 @@ msgstr "" "Nem sikerült a GUI által igényelt PyGTK modulok betöltése. Kérlek telepítsd " "a PyCairo-t, a PyGObject-et és a PyGTK-t a www.pygtk.org címről." -#: fpdb.pyw:245 +#: fpdb.pyw:247 msgid "" "Copyright 2008-2010, Steffen, Eratosthenes, Carl Gherardi, Eric Blade, _mt, " "sqlcoder, Bostik, and others" @@ -1714,7 +2532,7 @@ msgstr "" "Copyright 2008-2010, Steffen, Eratosthenes, Carl Gherardi, Eric Blade, _mt, " "sqlcoder, Bostik, and others" -#: fpdb.pyw:246 +#: fpdb.pyw:248 msgid "" "You are free to change, and distribute original or changed versions of fpdb " "within the rules set out by the license" @@ -1722,31 +2540,31 @@ msgstr "" "Szabadon megváltoztathatod és terjesztheted az eredeti vagy már " "megváltoztatott fpdb verziókat a licenszben szabályozott feltételek mellett" -#: fpdb.pyw:247 +#: fpdb.pyw:249 msgid "Please see fpdb's start screen for license information" msgstr "Licensz információkért kérlek tekintsd meg az fpdb induló képernyőjét" -#: fpdb.pyw:251 +#: fpdb.pyw:253 msgid "and others" msgstr "és mások" -#: fpdb.pyw:257 +#: fpdb.pyw:259 msgid "Operating System" msgstr "Operációs rendszer" -#: fpdb.pyw:277 +#: fpdb.pyw:279 msgid "Your config file is: " msgstr "Konfigurációs fájl:" -#: fpdb.pyw:282 +#: fpdb.pyw:284 msgid "Version Information:" msgstr "Verzióinformáció:" -#: fpdb.pyw:289 +#: fpdb.pyw:291 msgid "Threads: " msgstr "Szálak:" -#: fpdb.pyw:312 +#: fpdb.pyw:314 msgid "" "Updated preferences have not been loaded because windows are open. Re-start " "fpdb to load them." @@ -1754,19 +2572,19 @@ msgstr "" "A megváltoztatott beállítások még nem léptek érvénybe, mert vannak nyitott " "ablakok. Indítsd újra az fpdb-t az érvénybe léptetésükhöz." -#: fpdb.pyw:322 +#: fpdb.pyw:324 msgid "Maintain Databases" msgstr "Adatbázisok karbantartása" -#: fpdb.pyw:332 +#: fpdb.pyw:334 msgid "saving updated db data" msgstr "frissített adatbázis adatok mentése" -#: fpdb.pyw:339 +#: fpdb.pyw:341 msgid "guidb response was " msgstr "a guidb válasza ez volt: " -#: fpdb.pyw:345 +#: fpdb.pyw:347 msgid "" "Cannot open Database Maintenance window because other windows have been " "opened. Re-start fpdb to use this option." @@ -1774,11 +2592,11 @@ msgstr "" "Nem tudom megnyitni az adatbázis karbantartó ablakot, mert más ablakok is " "nyitva vannak. Indítsd újra az fpdb-t ezen funkció használatához." -#: fpdb.pyw:348 +#: fpdb.pyw:350 msgid "Number of Hands: " msgstr "Leosztások száma:" -#: fpdb.pyw:349 +#: fpdb.pyw:351 msgid "" "\n" "Number of Tourneys: " @@ -1786,7 +2604,7 @@ msgstr "" "\n" "Versenyek száma: " -#: fpdb.pyw:350 +#: fpdb.pyw:352 msgid "" "\n" "Number of TourneyTypes: " @@ -1794,40 +2612,40 @@ msgstr "" "\n" "Versenytípusok száma: " -#: fpdb.pyw:351 +#: fpdb.pyw:353 msgid "Database Statistics" msgstr "Adatbázis statisztikák" -#: fpdb.pyw:360 +#: fpdb.pyw:362 msgid "HUD Configurator - choose category" msgstr "HUD beállító - válassz kategóriát" -#: fpdb.pyw:366 +#: fpdb.pyw:368 msgid "" "Please select the game category for which you want to configure HUD stats:" msgstr "Válassz játéktípust, amelyre vonatkozóan akarod beállítani a HUD-ot:" -#: fpdb.pyw:418 +#: fpdb.pyw:420 msgid "HUD Configurator - please choose your stats" msgstr "HUD beállító - válassz statisztikákat" -#: fpdb.pyw:424 +#: fpdb.pyw:426 msgid "Please choose the stats you wish to use in the below table." msgstr "Válaszd ki a lenti táblázatból a megjelenítendő statisztikákat." -#: fpdb.pyw:428 +#: fpdb.pyw:430 msgid "Note that you may not select any stat more than once or it will crash." msgstr "" "Vedd figyelembe, hogy egy statisztikát nem választhatsz ki többször, " "különben ki fog lépni." -#: fpdb.pyw:432 +#: fpdb.pyw:434 msgid "" "It is not currently possible to select \"empty\" or anything else to that " "end." msgstr "Jelenleg nem lehetséges olyat választani, hogy \"üres\" vagy hasonló." -#: fpdb.pyw:436 +#: fpdb.pyw:438 msgid "" "To configure things like colouring you will still have to manually edit your " "HUD_config.xml." @@ -1835,11 +2653,11 @@ msgstr "" "Bizonyos dolgok, mint pl. a színezés beállításához egyelőre még kézzel kell " "szerkesztened a HUD_config.xml fájlt." -#: fpdb.pyw:543 +#: fpdb.pyw:545 msgid "Confirm deleting and recreating tables" msgstr "Erősítsd meg a táblák törlését és újra létrehozását" -#: fpdb.pyw:544 +#: fpdb.pyw:546 msgid "" "Please confirm that you want to (re-)create the tables. If there already are " "tables in the database " @@ -1847,7 +2665,7 @@ msgstr "" "Kérlek erősítsd meg, hogy valóban (újra) létre akarod hozni a táblákat. Ha " "már vannak táblák az adatbázisban (" -#: fpdb.pyw:545 +#: fpdb.pyw:547 msgid "" " they will be deleted.\n" "This may take a while." @@ -1855,72 +2673,72 @@ msgstr "" "), akkor azok törölve lesznek.\n" "Ja, és ez eltarthat egy darabig:)" -#: fpdb.pyw:570 +#: fpdb.pyw:572 msgid "User cancelled recreating tables" msgstr "A felhasználó mégsem generálja újra a táblákat." -#: fpdb.pyw:577 +#: fpdb.pyw:579 msgid "Please confirm that you want to re-create the HUD cache." msgstr "" "Kérlek erősítsd meg, hogy valóban újra akarod generálni a HUD gyorstárat." -#: fpdb.pyw:585 +#: fpdb.pyw:587 msgid " Hero's cache starts: " msgstr " Saját gyorstár innentől: " -#: fpdb.pyw:599 +#: fpdb.pyw:601 msgid " Villains' cache starts: " msgstr " Ellenfelek gyorstára innentől: " -#: fpdb.pyw:612 +#: fpdb.pyw:614 msgid " Rebuilding HUD Cache ... " msgstr " HUD gyorstár újraépítése ... " -#: fpdb.pyw:620 +#: fpdb.pyw:622 msgid "User cancelled rebuilding hud cache" msgstr "A felhasználó megszakította a HUD gyorstár újraépítését." -#: fpdb.pyw:632 +#: fpdb.pyw:634 msgid "Confirm rebuilding database indexes" msgstr "Erősítsd meg az adatbázis indexeinek újraépítését" -#: fpdb.pyw:633 +#: fpdb.pyw:635 msgid "Please confirm that you want to rebuild the database indexes." msgstr "" "Kérlek erősítsd meg, hogy valóban újra akarod építeni az adatbázis indexeit." -#: fpdb.pyw:641 +#: fpdb.pyw:643 msgid " Rebuilding Indexes ... " msgstr " Indexek újraépítése ... " -#: fpdb.pyw:648 +#: fpdb.pyw:650 msgid " Cleaning Database ... " msgstr " Adatbázis tisztítása ... " -#: fpdb.pyw:653 +#: fpdb.pyw:655 msgid " Analyzing Database ... " msgstr " Adatbázis elemzése ... " -#: fpdb.pyw:658 +#: fpdb.pyw:660 msgid "User cancelled rebuilding db indexes" msgstr "A felhasználó megszakította az adatbázis indexeinek újraépítését." -#: fpdb.pyw:753 +#: fpdb.pyw:755 msgid "" "Unimplemented: Save Profile (try saving a HUD layout, that should do it)" msgstr "" "Még nincs kész: Profil mentése (addig használd a HUD elrendezésének " "mentését, az jó)" -#: fpdb.pyw:756 +#: fpdb.pyw:758 msgid "Fatal Error - Config File Missing" msgstr "Végzetes hiba - Hiányzó konfigurációs fájl" -#: fpdb.pyw:758 +#: fpdb.pyw:760 msgid "Please copy the config file from the docs folder to:" msgstr "Kérlek másold át a konfigurációs fájlt a docs könyvtárból ide:" -#: fpdb.pyw:766 +#: fpdb.pyw:768 msgid "" "and edit it according to the install documentation at http://fpdb." "sourceforge.net" @@ -1928,167 +2746,167 @@ msgstr "" "majd szerkeszd a http://fpdb.sourceforge.net címen található telepítési " "útmutató szerint" -#: fpdb.pyw:823 +#: fpdb.pyw:825 msgid "_Main" msgstr "_Főmenü" -#: fpdb.pyw:824 fpdb.pyw:852 +#: fpdb.pyw:826 fpdb.pyw:854 msgid "_Quit" msgstr "_Kilépés" -#: fpdb.pyw:825 +#: fpdb.pyw:827 msgid "L" msgstr "L" -#: fpdb.pyw:825 +#: fpdb.pyw:827 msgid "_Load Profile (broken)" msgstr "Profil betö_ltése (hibás)" -#: fpdb.pyw:826 +#: fpdb.pyw:828 msgid "S" msgstr "S" -#: fpdb.pyw:826 +#: fpdb.pyw:828 msgid "_Save Profile (todo)" msgstr "Profil menté_se (todo)" -#: fpdb.pyw:827 +#: fpdb.pyw:829 msgid "F" msgstr "F" -#: fpdb.pyw:827 +#: fpdb.pyw:829 msgid "Pre_ferences" msgstr "_Beállítások" -#: fpdb.pyw:828 +#: fpdb.pyw:830 msgid "_Import" msgstr "_Importálás" -#: fpdb.pyw:829 +#: fpdb.pyw:831 msgid "_Set HandHistory Archive Directory" msgstr "Leo_sztástörténet archívumának könyvtára" -#: fpdb.pyw:830 +#: fpdb.pyw:832 msgid "B" msgstr "B" -#: fpdb.pyw:830 +#: fpdb.pyw:832 msgid "_Bulk Import" msgstr "_Tömeges importálás" -#: fpdb.pyw:831 +#: fpdb.pyw:833 msgid "I" msgstr "I" -#: fpdb.pyw:831 +#: fpdb.pyw:833 msgid "_Import through eMail/IMAP" msgstr "Email _import (IMAP)" -#: fpdb.pyw:832 +#: fpdb.pyw:834 msgid "_Viewers" msgstr "_Nézetek" -#: fpdb.pyw:833 +#: fpdb.pyw:835 msgid "A" msgstr "A" -#: fpdb.pyw:833 +#: fpdb.pyw:835 msgid "_Auto Import and HUD" msgstr "_AutoImport és HUD" -#: fpdb.pyw:834 +#: fpdb.pyw:836 msgid "H" msgstr "H" -#: fpdb.pyw:834 +#: fpdb.pyw:836 msgid "_HUD Configurator" msgstr "_HUD beállítása" -#: fpdb.pyw:835 +#: fpdb.pyw:837 msgid "G" msgstr "G" -#: fpdb.pyw:835 +#: fpdb.pyw:837 msgid "_Graphs" msgstr "_Grafikonok" -#: fpdb.pyw:836 +#: fpdb.pyw:838 msgid "P" msgstr "P" -#: fpdb.pyw:836 +#: fpdb.pyw:838 msgid "Ring _Player Stats (tabulated view)" msgstr "Kész_pénzes játékos statisztikák (táblázatos nézet)" -#: fpdb.pyw:837 +#: fpdb.pyw:839 msgid "T" msgstr "T" -#: fpdb.pyw:837 +#: fpdb.pyw:839 msgid "_Tourney Player Stats (tabulated view)" msgstr "Versenyjá_tékos statisztikák (táblázatos nézet)" -#: fpdb.pyw:838 +#: fpdb.pyw:840 msgid "Tourney _Viewer" msgstr "_Verseny nézet" -#: fpdb.pyw:839 +#: fpdb.pyw:841 msgid "O" msgstr "O" -#: fpdb.pyw:839 +#: fpdb.pyw:841 msgid "P_ositional Stats (tabulated view, not on sqlite)" msgstr "P_ozíciós statisztikák (táblázatos nézet, SQLite-tal nem megy)" -#: fpdb.pyw:840 fpdb.pyw:1057 +#: fpdb.pyw:842 fpdb.pyw:1059 msgid "Session Stats" msgstr "Session statisztikák" -#: fpdb.pyw:841 +#: fpdb.pyw:843 msgid "_Database" msgstr "A_datbázis" -#: fpdb.pyw:842 +#: fpdb.pyw:844 msgid "_Maintain Databases" msgstr "_Karbantartás" -#: fpdb.pyw:843 +#: fpdb.pyw:845 msgid "Create or Recreate _Tables" msgstr "_Táblák létrehozása vagy újragenerálása" -#: fpdb.pyw:844 +#: fpdb.pyw:846 msgid "Rebuild HUD Cache" msgstr "HUD gyorstár újraépítése" -#: fpdb.pyw:845 +#: fpdb.pyw:847 msgid "Rebuild DB Indexes" msgstr "Adatbázis indexek újraépítése" -#: fpdb.pyw:846 +#: fpdb.pyw:848 msgid "_Statistics" msgstr "_Statisztikák" -#: fpdb.pyw:847 +#: fpdb.pyw:849 msgid "Dump Database to Textfile (takes ALOT of time)" msgstr "Adatbázis exportálása textfájlba (SOKÁIG tart)" -#: fpdb.pyw:848 +#: fpdb.pyw:850 msgid "_Help" msgstr "_Súgó" -#: fpdb.pyw:849 +#: fpdb.pyw:851 msgid "_Log Messages" msgstr "Nap_lóbejegyzések" -#: fpdb.pyw:850 +#: fpdb.pyw:852 msgid "A_bout, License, Copying" msgstr "_Névjegy, licensz, másolás" -#: fpdb.pyw:868 +#: fpdb.pyw:870 msgid "There is an error in your config file\n" msgstr "Hiba van a konfigurációs fájlodban\n" -#: fpdb.pyw:869 +#: fpdb.pyw:871 msgid "" "\n" "\n" @@ -2098,15 +2916,15 @@ msgstr "" "\n" "A hiba a következő: " -#: fpdb.pyw:870 +#: fpdb.pyw:872 msgid "CONFIG FILE ERROR" msgstr "KONFIGURÁCIÓS FÁJL HIBA" -#: fpdb.pyw:876 +#: fpdb.pyw:878 msgid "Config file" msgstr "Konfigurációs fájl" -#: fpdb.pyw:877 +#: fpdb.pyw:879 msgid "" "has been created at:\n" "%s.\n" @@ -2114,50 +2932,50 @@ msgstr "" "létrehozva itt:\n" "%s.\n" -#: fpdb.pyw:878 +#: fpdb.pyw:880 msgid "Edit your screen_name and hand history path in the supported_sites " msgstr "" "Állítsd be az asztalnál látható nevedet és a leosztástörténetek helyét a " "támogatott termek" -#: fpdb.pyw:879 +#: fpdb.pyw:881 msgid "" "section of the Preferences window (Main menu) before trying to import hands." msgstr "" "résznél a Beállítások ablakban (Főmenü) mielőtt megpróbálnál leosztásokat " "importálni." -#: fpdb.pyw:902 +#: fpdb.pyw:904 msgid "Connected to SQLite: %(database)s" msgstr "Kapcsolódva a %(database)s SQLite adatbázishoz" -#: fpdb.pyw:906 +#: fpdb.pyw:908 msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " msgstr "" "MySQL kliens jelenti: 2002-es vagy 2003-as hiba. Nem sikerült a kapcsolódás " "- " -#: fpdb.pyw:907 +#: fpdb.pyw:909 msgid "Please check that the MySQL service has been started" msgstr "Kérlek ellenőrizd, hogy a MySQL szolgáltatás el van-e indítva" -#: fpdb.pyw:911 +#: fpdb.pyw:913 msgid "Postgres client reports: Unable to connect - " msgstr "Postgres kliens jelenti: Nem sikerült a kapcsolódás - " -#: fpdb.pyw:912 +#: fpdb.pyw:914 msgid "Please check that the Postgres service has been started" msgstr "Kérlek ellenőrizd, hogy a Postgres szolgáltatás el van-e indítva" -#: fpdb.pyw:936 +#: fpdb.pyw:938 msgid "Strong Warning - Invalid database version" msgstr "Nyomatékos figyelmeztetés - Érvénytelen adatbázis verzió" -#: fpdb.pyw:938 +#: fpdb.pyw:940 msgid "An invalid DB version or missing tables have been detected." msgstr "Érvénytelen adatbázis verziót vagy hiányzó táblá(ka)t találtam." -#: fpdb.pyw:942 +#: fpdb.pyw:944 msgid "" "This error is not necessarily fatal but it is strongly recommended that you " "recreate the tables by using the Database menu." @@ -2165,7 +2983,7 @@ msgstr "" "Ez a hiba nem feltétlenül végzetes, de erősen javasolt a táblák " "újragenerálása az Adatbázis menü használatával." -#: fpdb.pyw:946 +#: fpdb.pyw:948 msgid "" "Not doing this will likely lead to misbehaviour including fpdb crashes, " "corrupt data etc." @@ -2174,13 +2992,13 @@ msgstr "" "kiléphet, tönkretehet adatokat, stb." # FIXME: would need a different word ordering in Hungarian -#: fpdb.pyw:959 +#: fpdb.pyw:961 msgid "Status: Connected to %s database named %s on host %s" msgstr "" "Állapot: Kapcsolódva a(z) %s adatbázis-kezelő %s nevű adatbázisához a(z) %s " "kiszolgálón" -#: fpdb.pyw:969 +#: fpdb.pyw:971 msgid "" "\n" "Global lock taken by" @@ -2188,7 +3006,7 @@ msgstr "" "\n" "Globális zárolást végzett:" -#: fpdb.pyw:972 +#: fpdb.pyw:974 msgid "" "\n" "Failed to get global lock, it is currently held by" @@ -2196,43 +3014,43 @@ msgstr "" "\n" "Globális zárolás meghiúsult, jelenleg már zárolta:" -#: fpdb.pyw:982 +#: fpdb.pyw:984 msgid "Quitting normally" msgstr "Normál kilépés" -#: fpdb.pyw:1006 +#: fpdb.pyw:1008 msgid "Global lock released.\n" msgstr "Globális zárolás feloldva.\n" -#: fpdb.pyw:1013 +#: fpdb.pyw:1015 msgid "Auto Import" msgstr "AutoImport" -#: fpdb.pyw:1020 +#: fpdb.pyw:1022 msgid "Bulk Import" msgstr "Tömeges import" -#: fpdb.pyw:1026 +#: fpdb.pyw:1028 msgid "eMail Import" msgstr "Email import" -#: fpdb.pyw:1033 +#: fpdb.pyw:1035 msgid "Ring Player Stats" msgstr "Készpénzes statisztikák" -#: fpdb.pyw:1039 +#: fpdb.pyw:1041 msgid "Tourney Player Stats" msgstr "Versenystatisztikák" -#: fpdb.pyw:1045 +#: fpdb.pyw:1047 msgid "Tourney Viewer" msgstr "Verseny nézet" -#: fpdb.pyw:1051 +#: fpdb.pyw:1053 msgid "Positional Stats" msgstr "Pozíciós statisztikák" -#: fpdb.pyw:1061 +#: fpdb.pyw:1063 msgid "" "Fpdb needs translators!\n" "If you speak another language and have a few minutes or more to spare get in " @@ -2290,18 +3108,18 @@ msgstr "" "GPL2 vagy újabb licensszel.\n" "A Windows telepítő csomag tartalmaz MIT licensz hatálya alá eső részeket " "is.\n" -"A licenszek szövegét megtalálod az fpdb főkönyvtárában az agpl-3.0.txt, gpl-" -"2.0.txt, gpl-3.0.txt és mit.txt fájlokban." +"A licenszek szövegét megtalálod az fpdb főkönyvtárában az agpl-3.0.txt, " +"gpl-2.0.txt, gpl-3.0.txt és mit.txt fájlokban." -#: fpdb.pyw:1078 +#: fpdb.pyw:1080 msgid "Help" msgstr "Súgó" -#: fpdb.pyw:1085 +#: fpdb.pyw:1087 msgid "Graphs" msgstr "Grafikonok" -#: fpdb.pyw:1135 +#: fpdb.pyw:1137 msgid "" "\n" "Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt " @@ -2311,15 +3129,15 @@ msgstr "" "Megjegyzés: a hibakimenet átirányítva az fpdb-errors.txt és HUD-errors.txt " "fájlokba itt:\n" -#: fpdb.pyw:1164 +#: fpdb.pyw:1166 msgid "fpdb starting ..." msgstr "fpdb indítása ..." -#: fpdb.pyw:1213 +#: fpdb.pyw:1215 msgid "FPDB WARNING" msgstr "FPDB FIGYELMEZTETÉS" -#: fpdb.pyw:1232 +#: fpdb.pyw:1234 msgid "" "WARNING: Unable to find output hh directory %s\n" "\n" @@ -2330,7 +3148,7 @@ msgstr "" " Kattints az IGEN gombra a könyvtár létrehozásához, vagy a NEM gombra egy " "másik könyvtár választásához." -#: fpdb.pyw:1240 +#: fpdb.pyw:1242 msgid "" "WARNING: Unable to create hand output directory. Importing is not likely to " "work until this is fixed." @@ -2338,10 +3156,115 @@ msgstr "" "FIGYELEM: Nem sikerült a leosztásarchívum könyvtárának létrehozása. Az " "importálás valószínűleg nem fog működni." -#: fpdb.pyw:1245 +#: fpdb.pyw:1247 msgid "Select HH Output Directory" msgstr "Válaszd ki a leosztásarchívum könyvtárát" +#: fpdb_import.py:60 +msgid "Import database module: MySQLdb not found" +msgstr "" + +#: fpdb_import.py:67 +msgid "Import database module: psycopg2 not found" +msgstr "" + +#: fpdb_import.py:178 +msgid "Database ID for %s not found" +msgstr "" + +#: fpdb_import.py:180 +msgid "" +"[ERROR] More than 1 Database ID found for %s - Multiple currencies not " +"implemented yet" +msgstr "" + +#: fpdb_import.py:216 +msgid "Attempted to add non-directory: '%s' as an import directory" +msgstr "" + +#: fpdb_import.py:226 +msgid "Started at %s -- %d files to import. indexes: %s" +msgstr "" + +#: fpdb_import.py:235 +msgid "No need to drop indexes." +msgstr "" + +#: fpdb_import.py:254 +msgid "writers finished already" +msgstr "" + +#: fpdb_import.py:257 +msgid "waiting for writers to finish ..." +msgstr "" + +#: fpdb_import.py:267 +msgid " ... writers finished" +msgstr "" + +#: fpdb_import.py:273 +#, fuzzy +msgid "No need to rebuild indexes." +msgstr "A felhasználó megszakította az adatbázis indexeinek újraépítését." + +#: fpdb_import.py:277 +#, fuzzy +msgid "No need to rebuild hudcache." +msgstr "A felhasználó megszakította a HUD gyorstár újraépítését." + +#: fpdb_import.py:302 +msgid "sending finish msg qlen =" +msgstr "" + +#: fpdb_import.py:428 fpdb_import.py:430 +#, fuzzy +msgid "Converting " +msgstr "Hiba a(z) '%s' konvertálása közben" + +#: fpdb_import.py:466 +msgid "Hand processed but empty" +msgstr "" + +#: fpdb_import.py:479 +msgid "fpdb_import: sending hand to hud" +msgstr "" + +#: fpdb_import.py:482 +msgid "Failed to send hand to HUD: %s" +msgstr "" + +#: fpdb_import.py:493 +msgid "Unknown filter filter_name:'%s' in filter:'%s'" +msgstr "" + +#: fpdb_import.py:504 +msgid "" +"Error No.%s please send the hand causing this to fpdb-main@lists.sourceforge." +"net so we can fix the problem." +msgstr "" + +#: fpdb_import.py:505 +msgid "Filename:" +msgstr "" + +#: fpdb_import.py:506 +msgid "" +"Here is the first line of the hand so you can identify it. Please mention " +"that the error was a ValueError:" +msgstr "" + +#: fpdb_import.py:508 +msgid "Hand logged to hand-errors.txt" +msgstr "" + +#: fpdb_import.py:516 +msgid "CLI for fpdb_import is now available as CliFpdb.py" +msgstr "" + +#: interlocks.py:49 +msgid "lock already held by:" +msgstr "" + #: test_Database.py:50 msgid "DEBUG: Testing variance function" msgstr "DEBUG: Varianciafügvény tesztelésa" @@ -2351,7 +3274,7 @@ msgid "DEBUG: result: %s expecting: 0.666666 (result-expecting ~= 0.0): %s" msgstr "" "DEBUG: eredmény: %s várt érték: 0.666666. (eredmény - várt érték ~= 0.0): %s" -#: windows_make_bats.py:31 +#: windows_make_bats.py:39 msgid "" "\n" "This script is only for windows\n" @@ -2359,7 +3282,7 @@ msgstr "" "\n" "Ez a szkript csak windowson használható\n" -#: windows_make_bats.py:58 +#: windows_make_bats.py:66 msgid "" "\n" "no gtk directories found in your path - install gtk or edit the path " diff --git a/pyfpdb/locale/update-po-files.sh b/pyfpdb/locale/update-po-files.sh new file mode 100755 index 00000000..cf0d0e81 --- /dev/null +++ b/pyfpdb/locale/update-po-files.sh @@ -0,0 +1,2 @@ +msgmerge --update fpdb-hu_HU.po fpdb-en_GB.po + From 32d24b147ec9609cec792a6b99f8799e1c2bc2c7 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 17 Aug 2010 20:32:17 +0200 Subject: [PATCH 238/301] update hungarian mo file --- pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo | Bin 45664 -> 45677 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo index 273fe9abd185d8eea3b3e189666c0dae4c9b03ca..3d96804b9a9558ca0a27cc7c15bd773086008922 100644 GIT binary patch delta 4097 zcmXZe4^-CG9mnyD#Xm(J`TtJ}5y3zb{}3co{5KTEjO8fp*aL`Znkb4k()qDPcA7D&MxiJaGm{%)|nSgKMIQ$ppVN#_r594E)he?bPZ*Db zSdKBv?0TCpins~Wu@kkOb%9|7CL}R;JC9F zlZg8<9KXgO9Qw2|VHklScprvhhI0aHor0%5W0Dz^F`)<4qT*dR3SVRbZjVKo8uEW3d&p@d8HU7nqKL&rntz z=bY($0`(J|EFq}c|YGYz?7LLFrsEVw1^B#s0 zx1cI;6nTc}#u=FWEM-T(bCq+WbDOi#*<$rfyPG)a{JHaj^D+jp@JFab`*9e4j;h=p zoQZL3jJX$=pf=#gxwy{F{{nM~&!H0i4@S^`<}QOFOhi=M2Sq!RPz$DFIA)+q{1B?! zi%_5Y-Fy`eC$4pI11iz|7>;eIrh5aG;3aJ4`Q~E=YN9o3ZBy(+o%LB4U%~mrcd-!X zb8vc%8ZieiVi69wcxnv|NnDMzk7>t4IF!avQ+J>$cM&~hbe+M2_zmiH%HCkRv>1bl zSK=64hjG|~Q}7f{!oTApOs=I$xE@3BFsf1=sCC}LaO_2`bETI0k6`dmCVq&6s0-*N zE(3WEwa^!+#O`1O#%!`X%fLY5Ce(vkP@lhvO6+aqN-$sIRDAL|TbWkWhTeOQ`p;%? zi-~!d_dRuTC?3vHTXyRh$Q0r}6g^FJL~((^W<6_`d`hdQ!0 z^xn_OIvO7tkE zU=Ql^tEkF*e__BIWNu*%`Wx(f{#$1sE@u8yoQZ|o?Q7M5>h5<@3;qFh_SY~IhwiXf za4zc1XJQ_fq7vF|^-LRsiA;3kQv55%_G6gd|AOz^iMgnz>%_@;6$5eDF1tVk1{04&&8J}qX5zPT z5|&{d`tbt{!<^mr#+-`U*rTWoJR^C&sbf%zyHTa;!_oK;oP*&%unCmmKH>_D!rQ0^ z1UK4*qEQb>#1Nc>5%?{P#7CSJsOQw8*UVr$11%Kyk}X*pD$YVRNj}D4F(#qkxfvfK zK8Pym`>2g%?%`&`EqD)(*lXXKXjGhl<1l$I^;fCqF`+Z|a42?T9G=5$yo##Cy<8GX zqy%;Lm8jl%!P$kXz;z78LFCFXK~45|#TL}}`%%w}+(-SR7!*-gxdeS!jYDv&vmVv8 zJ5Wc{ic0(}4#Qg*gx@#=_uG3V42zgAMfJ`h)CP_sFP!Fn=T6Vy^)xJrI?1RolTfZ+=INfp83d4 z44_JxaM+f548{^q!9*;@0(=&AG{;b9d;-<&J*e06oQr#LIPqoF(ez%mF8*1S*&hu{meN-aXP#gIYlhM~^H;|2q z#NR%At7EC^3%oBJRmGEs$!9jcglaKO)7Uy6MzJsb% zZo56&LJTKf)K2}Cz%nLuMjKE&d>(bB?nD~Zyoc)EWv|+QBU+J0H(y~Y?&+}2+lBLp z&*Kan)@d)O1*j(7f!cWs>H<35>Di3_%*0kEZeusD|B1~o{WTUN&PDBP0M#QYuiG0f z3weW04vxZiP)++O7T_T2sPd25`4ZFymthdD_1wfJ)DbjbFdjgi?JKCvPhd2j#gX_s z)WZKpmG++FHsRr@1V>^LW?%@;Lfxn(I3BA|N8r88K&9=#Q2ZFP@jCi3;-_}O8dT<6 zP|dgti}4~VQQrx>a582QFTgac!~ZucszPUQE`EqS*E7i{?ZS`Y96s=)GJYMyunTp@ zXHoC(C#Y_|gJUu74V&O}ypMQ3>g-pc9()pY=I1d6`%sm*iRpU(Lr>YOGY3=nU@LCG zBN&cRZ`xljsi@4Cpcd#rCGacM&Tcq^x@>}DQAbdOKCE={dQ2zYi

=dl-zt_|x`- zX{dO)vk^xVpGH0C_oyEE3bpWEEJWWK`{0G$yYK&CdT?IK#GENP`OW3!`@>2qs#k2R RSh0Lc%F2!1H_O+S{ts`#awGr% delta 4084 zcmXZe3sBZo8prVyDtBK%#0v%@AR+`Ih=!;rk#`zpRBBxn@j|wQBA{zJ{4LbPutE$g zO(QSSRfr6CoGIIjyKY5AX|>ZmwP@X#9H-SLtM9LKW*k4~Iq%E)Kj%5m`NRLt`+afV zukC{{ulfdK;!2DeYK(bwnK5JV7~X_m;&}9x8k2+5FdDaD7Vg90_zn)iUM#`D<#xT* z7)e}*Nw^oa&TE*8SC<>l$ujXwMy z{qZ`6V&7FHgAo{n(auEFI_axCV`3Q0WI_)pL&ckL1U~M*c+$Vk{=yWh;>HG0+cIU@|sf8Xm`i_%$ZsRgA*ntF772*{JU= z!!TTr>u@`c#cQaIrQdD8myb({i*YS_oecUjNdA*CgK!*%Vd%3Z>I48Di+ z#zNEvif{%lck?e`HgP*D(Qhz<{xg>u_%YG9!agX#=|e3Tg+7c%m3TC&+jCH#7rFUj z>`z?g;u=(<+t7!NsHS@gmEcKi;`!z+25O>`HMS|XqRzU_#iwyL@ny`z$sC-nQ7vZR z37m#KF3zYlCX;v>(l%xfK8Dv(P2Eg`sB$OJQ%2_)q~i~$>l9aIyL2K35HG@!xEu## zJx;(D%)(D_K89BtGYVH?Anrm{su{J;G4x?4YMs;7)IXfTXG}bdy*LIvUIwxqwb0k7 z#4ce32Cla|i^hJ$b*Kl`qdtEcmDnrDtH6AVlkoNpwlWQ<4ZXgB`WG;`z{D&}`LjKO z8XQF2g1LAC)nr#tXFh(Ty-pLI^DvG1RmeZHhyQeBzI$y#f51fIa@3JEVi^9_W1utX zMm_KfY6l^kY#f7=+2UB#1FE*r;n;$6uou;I6YsM}HVf6=t6f};1Bsh34qH*5pFvgL z`+xyA$XvimEV|#`^S?X0@J{AG!hFoEv)8Hy)!nb57W_Br?9XBfUdK>O-fGW08^;qD zpc2|_^-Lp!OeT)vV*D6~;P`F!jW`!|mK#wId=XW;zhE?;L3Q(ayaoNX+lu6(-WxMf z3C=~@z%0T=*o~pO|LG6diCi4R2YYcWp22?j3u=MBJ8Tz+q2>ppnllD(!z5gY<+v38 zhN?h9y?tY5pf+|ZY6E|iJl~Wvn1`ED*P{y)@Kc_nd8B`_yk4hwumxa!L z0jhV_IuD^rd=7)K7kOovYgmeF9i zm3SM5;05%@ADmaQfcRIOh6THA?>vawKofG|%(ET?U8~e4+e8(ZLi`G*;^(LZLiQNL ztHBiETznhnW9*~0GF4bed=h74P_zBH1*nSb$80=~OYpy#gWjyY{32nn6}9s|kJ;vk zME#`_k8wB^$6_g_<6hL!oW=;ef@(Vd$L;sRa42yBCgKuj9mW&4BG=Y4Z@P&dR4GHB zu%#Y?gNV~G8VfKNm!ghlAL@(`pdQ?cx&`en?!^AYr%*@Jg+uTxY6IV6l1k<0-vK2=)nPa*~R_#+k||mLGG|jkyDNp%T7`aoCHaG5jh1g2oA0iLat6mE2;FHWPis z(_5&&5?IKD&S({ChxedfsT+|-HLs((cj43acSHly=;k|&$1R6!^B%%k#2q*lf5CA$ z<*;qi4XB;hqh3IV4|_JF_n4?<;v#n7$|E+zp-0(0aWZOWJ*Xaue8#@fVv!qc5^w~* zifY=AFc*7KN0r)Y=krh-T!{Wy>bZ&4s3WMs0NjB(+ec8>>i`bKHoOu4fm--0RB3-i zmDD_I6AZ&)gwYs?<4|wZJiHl;QQ!9-V4%`AV-UWDX?PBoV&CWNf-6v&uR%5ACY*^U zP>K3IZx;^7RN^U^h~=n68&MTHf-~@+$aDGo?*+T?G@Q-{MW~FQz)(DdI^#Cf{e2(R z&6hA4gI}}>W??MxWYpO&Mm_i->dZSZ3cFC1IFCuX|35P*WFp}u+r^bwMZ6nTBL8Fd zFPA7(=7p#Qno$Y7gxcAM&TFUyhqc)w$iXn;1ukBRNyPVIsovqO3`Sx|yZvAcD!#*6 yiwVSsQ4jhTsz<& Date: Tue, 17 Aug 2010 20:56:36 +0200 Subject: [PATCH 239/301] ebuilds: change spaces to tabs as required by repoman --- packaging/gentoo/current_stable.ebuild | 56 ++++++++++++------------ packaging/gentoo/current_testing.ebuild | 56 ++++++++++++------------ packaging/gentoo/fpdb-9999.ebuild | 58 ++++++++++++------------- 3 files changed, 85 insertions(+), 85 deletions(-) diff --git a/packaging/gentoo/current_stable.ebuild b/packaging/gentoo/current_stable.ebuild index 232c82b2..6b7d7b90 100644 --- a/packaging/gentoo/current_stable.ebuild +++ b/packaging/gentoo/current_stable.ebuild @@ -19,42 +19,42 @@ KEYWORDS="~amd64 ~x86" IUSE="graph mysql postgres sqlite" RDEPEND=" - mysql? ( virtual/mysql - dev-python/mysql-python ) - postgres? ( dev-db/postgresql-server - dev-python/psycopg ) - sqlite? ( dev-lang/python[sqlite] - dev-python/numpy ) - >=x11-libs/gtk+-2.10 - dev-python/pygtk - graph? ( dev-python/numpy - dev-python/matplotlib[gtk] ) - dev-python/python-xlib - dev-python/pytz" + mysql? ( virtual/mysql + dev-python/mysql-python ) + postgres? ( dev-db/postgresql-server + dev-python/psycopg ) + sqlite? ( dev-lang/python[sqlite] + dev-python/numpy ) + >=x11-libs/gtk+-2.10 + dev-python/pygtk + graph? ( dev-python/numpy + dev-python/matplotlib[gtk] ) + dev-python/python-xlib + dev-python/pytz" DEPEND="${RDEPEND}" src_install() { - insinto "${GAMES_DATADIR}"/${PN} - doins -r gfx - doins -r pyfpdb - doins readme.txt + insinto "${GAMES_DATADIR}"/${PN} + doins -r gfx + doins -r pyfpdb + doins readme.txt - exeinto "${GAMES_DATADIR}"/${PN} - doexe run_fpdb.py + exeinto "${GAMES_DATADIR}"/${PN} + doexe run_fpdb.py - dodir "${GAMES_BINDIR}" - dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} + dodir "${GAMES_BINDIR}" + dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} - newicon gfx/fpdb-icon.png ${PN}.png - make_desktop_entry ${PN} + newicon gfx/fpdb-icon.png ${PN}.png + make_desktop_entry ${PN} - chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw - prepgamesdirs + chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw + prepgamesdirs } pkg_postinst() { - games_pkg_postinst - elog "Note that if you really want to use mysql or postgresql you will have to create" - elog "the database and user yourself and enter it into the fpdb config." - elog "You can find the instructions on the project's website." + games_pkg_postinst + elog "Note that if you really want to use mysql or postgresql you will have to create" + elog "the database and user yourself and enter it into the fpdb config." + elog "You can find the instructions on the project's website." } diff --git a/packaging/gentoo/current_testing.ebuild b/packaging/gentoo/current_testing.ebuild index c238e9a3..8b09ea9c 100644 --- a/packaging/gentoo/current_testing.ebuild +++ b/packaging/gentoo/current_testing.ebuild @@ -19,42 +19,42 @@ KEYWORDS="~amd64 ~x86" IUSE="graph mysql postgres sqlite" RDEPEND=" - mysql? ( virtual/mysql - dev-python/mysql-python ) - postgres? ( dev-db/postgresql-server - dev-python/psycopg ) - sqlite? ( dev-lang/python[sqlite] - dev-python/numpy ) - >=x11-libs/gtk+-2.10 - dev-python/pygtk - graph? ( dev-python/numpy - dev-python/matplotlib[gtk] ) - dev-python/python-xlib - dev-python/pytz" + mysql? ( virtual/mysql + dev-python/mysql-python ) + postgres? ( dev-db/postgresql-server + dev-python/psycopg ) + sqlite? ( dev-lang/python[sqlite] + dev-python/numpy ) + >=x11-libs/gtk+-2.10 + dev-python/pygtk + graph? ( dev-python/numpy + dev-python/matplotlib[gtk] ) + dev-python/python-xlib + dev-python/pytz" DEPEND="${RDEPEND}" src_install() { - insinto "${GAMES_DATADIR}"/${PN} - doins -r gfx - doins -r pyfpdb - doins readme.txt + insinto "${GAMES_DATADIR}"/${PN} + doins -r gfx + doins -r pyfpdb + doins readme.txt - exeinto "${GAMES_DATADIR}"/${PN} - doexe run_fpdb.py + exeinto "${GAMES_DATADIR}"/${PN} + doexe run_fpdb.py - dodir "${GAMES_BINDIR}" - dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} + dodir "${GAMES_BINDIR}" + dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} - newicon gfx/fpdb-icon.png ${PN}.png - make_desktop_entry ${PN} + newicon gfx/fpdb-icon.png ${PN}.png + make_desktop_entry ${PN} - chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw - prepgamesdirs + chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw + prepgamesdirs } pkg_postinst() { - games_pkg_postinst - elog "Note that if you really want to use mysql or postgresql you will have to create" - elog "the database and user yourself and enter it into the fpdb config." - elog "You can find the instructions on the project's website." + games_pkg_postinst + elog "Note that if you really want to use mysql or postgresql you will have to create" + elog "the database and user yourself and enter it into the fpdb config." + elog "You can find the instructions on the project's website." } diff --git a/packaging/gentoo/fpdb-9999.ebuild b/packaging/gentoo/fpdb-9999.ebuild index 9e5acded..19d3bd28 100644 --- a/packaging/gentoo/fpdb-9999.ebuild +++ b/packaging/gentoo/fpdb-9999.ebuild @@ -20,46 +20,46 @@ KEYWORDS="~amd64 ~x86" IUSE="graph mysql postgres sqlite" RDEPEND=" - mysql? ( virtual/mysql - dev-python/mysql-python ) - postgres? ( dev-db/postgresql-server - dev-python/psycopg ) - sqlite? ( dev-lang/python[sqlite] - dev-python/numpy ) - >=x11-libs/gtk+-2.10 - dev-python/pygtk - graph? ( dev-python/numpy - dev-python/matplotlib[gtk] ) - dev-python/python-xlib - dev-python/pytz" + mysql? ( virtual/mysql + dev-python/mysql-python ) + postgres? ( dev-db/postgresql-server + dev-python/psycopg ) + sqlite? ( dev-lang/python[sqlite] + dev-python/numpy ) + >=x11-libs/gtk+-2.10 + dev-python/pygtk + graph? ( dev-python/numpy + dev-python/matplotlib[gtk] ) + dev-python/python-xlib + dev-python/pytz" DEPEND="${RDEPEND}" src_unpack() { - git_src_unpack + git_src_unpack } src_install() { - insinto "${GAMES_DATADIR}"/${PN} - doins -r gfx - doins -r pyfpdb - doins readme.txt + insinto "${GAMES_DATADIR}"/${PN} + doins -r gfx + doins -r pyfpdb + doins readme.txt - exeinto "${GAMES_DATADIR}"/${PN} - doexe run_fpdb.py + exeinto "${GAMES_DATADIR}"/${PN} + doexe run_fpdb.py - dodir "${GAMES_BINDIR}" - dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} + dodir "${GAMES_BINDIR}" + dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} - newicon gfx/fpdb-icon.png ${PN}.png - make_desktop_entry ${PN} + newicon gfx/fpdb-icon.png ${PN}.png + make_desktop_entry ${PN} - chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw - prepgamesdirs + chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw + prepgamesdirs } pkg_postinst() { - games_pkg_postinst - elog "Note that if you really want to use mysql or postgresql you will have to create" - elog "the database and user yourself and enter it into the fpdb config." - elog "You can find the instructions on the project's website." + games_pkg_postinst + elog "Note that if you really want to use mysql or postgresql you will have to create" + elog "the database and user yourself and enter it into the fpdb config." + elog "You can find the instructions on the project's website." } From 4a457b7ab16bfac9ae49266195a0b9651ab3f2bf Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 17 Aug 2010 20:59:51 +0200 Subject: [PATCH 240/301] ebuild: move EAPI declaration to beginning as required by repoman --- packaging/gentoo/current_stable.ebuild | 2 +- packaging/gentoo/current_testing.ebuild | 2 +- packaging/gentoo/fpdb-9999.ebuild | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packaging/gentoo/current_stable.ebuild b/packaging/gentoo/current_stable.ebuild index 6b7d7b90..69d5c7b0 100644 --- a/packaging/gentoo/current_stable.ebuild +++ b/packaging/gentoo/current_stable.ebuild @@ -1,11 +1,11 @@ # Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # created by Steffen Schaumburg, steffen@schaumburger.info +EAPI="2" inherit eutils inherit games -EAPI="2" NEED_PYTHON=2.5 DESCRIPTION="A free/open source tracker/HUD for use with online poker" diff --git a/packaging/gentoo/current_testing.ebuild b/packaging/gentoo/current_testing.ebuild index 8b09ea9c..f4338fce 100644 --- a/packaging/gentoo/current_testing.ebuild +++ b/packaging/gentoo/current_testing.ebuild @@ -1,11 +1,11 @@ # Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # created by Steffen Schaumburg, steffen@schaumburger.info +EAPI="2" inherit eutils inherit games -EAPI="2" NEED_PYTHON=2.5 DESCRIPTION="A free/open source tracker/HUD for use with online poker" diff --git a/packaging/gentoo/fpdb-9999.ebuild b/packaging/gentoo/fpdb-9999.ebuild index 19d3bd28..065e0b4c 100644 --- a/packaging/gentoo/fpdb-9999.ebuild +++ b/packaging/gentoo/fpdb-9999.ebuild @@ -1,12 +1,12 @@ # Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # created by Steffen Schaumburg, steffen@schaumburger.info +EAPI="2" inherit eutils inherit games inherit git -EAPI="2" NEED_PYTHON=2.5 DESCRIPTION="A free/open source tracker/HUD for use with online poker" From 81d3f40b5be7e19d9ee70c811ba29cf13fe99d62 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 17 Aug 2010 21:07:33 +0200 Subject: [PATCH 241/301] ebuild: add metadata.xml, add Manifest to version tracking --- packaging/gentoo/Manifest | 6 ++++++ packaging/gentoo/metadata.xml | 15 +++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 packaging/gentoo/Manifest create mode 100644 packaging/gentoo/metadata.xml diff --git a/packaging/gentoo/Manifest b/packaging/gentoo/Manifest new file mode 100644 index 00000000..df6d00f4 --- /dev/null +++ b/packaging/gentoo/Manifest @@ -0,0 +1,6 @@ +DIST fpdb-0.20.1.tar.bz2 662807 RMD160 b5f22a684c605ddbba7d2154005a822b02a19490 SHA1 e4cc40de5849d3ae33a680d917b340ab37c6448b SHA256 46eff0625f300c070ce88c519ae6019f6e1c98a7725733c5e16b50a058247fe3 +DIST fpdb-0.20.904.tar.bz2 632871 RMD160 6af83a9b30e8b3f394b011a4dc92937f130b9e15 SHA1 083c51f1627f901e24801bf6abebf1d07646bd89 SHA256 5e72055fe7ebb0c6048282f8edc972ee01be21063d6f8071abef22111f3e82f9 +EBUILD fpdb-0.20.1.ebuild 1553 RMD160 24e8aa18cf2b936db23994e5c26a06692d6ebe5b SHA1 05906bea1edbb6e71a95a044fcfe849fe75a737c SHA256 d8850dc2368543062a57b0928cf9fad3d907881e904bf879f904f40e6a734b73 +EBUILD fpdb-0.20.904.ebuild 1557 RMD160 0a45c3d11cd0e5feff055324042476131ccd4285 SHA1 ce8e12fc4458a17b36ccaf3a3fee726c7e6d6751 SHA256 5e8bc7675c9e52fb89f05980f36a60f9ce0f0ef5e700286d8dd1936fbcef3f41 +EBUILD fpdb-9999.ebuild 1591 RMD160 29cd89e09ef4935a19d72bb2b1958658aa37170e SHA1 5d70a03ce14bb4bc70ebc60a6c09ef9d9519e1dc SHA256 390999733acbabd44f28c046b99c53ba2db01e441caa16c00203a81f18383333 +MISC metadata.xml 547 RMD160 3f6ca7b0d6eba60a05ef68b080a2cc73f11edcfc SHA1 cee8c2763094e28d6df20b1cf693d98b4a22bf1c SHA256 a9f0e5034bce25dfd9f0d75f0569f870b0320d73dd3e264049c49b543e9e91b0 diff --git a/packaging/gentoo/metadata.xml b/packaging/gentoo/metadata.xml new file mode 100644 index 00000000..7aa0ff64 --- /dev/null +++ b/packaging/gentoo/metadata.xml @@ -0,0 +1,15 @@ + + + + + OpenOffice is the opensource version of staroffice. + This ebuild allows you to compile it yourself. Unfortunately this + compilation can take up to a day depending on the speed of your + computer. It will however make a snappier openoffice than the binary + version. + + + Enable dependencies for making graphs + + + From 4e83734703fb49ecf69b9bbd1ea228ec962824c7 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 17 Aug 2010 21:15:22 +0200 Subject: [PATCH 242/301] remove keywords from live ebuild as required by gentoo policy --- packaging/gentoo/Manifest | 2 +- packaging/gentoo/fpdb-9999.ebuild | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/gentoo/Manifest b/packaging/gentoo/Manifest index df6d00f4..17b4aabd 100644 --- a/packaging/gentoo/Manifest +++ b/packaging/gentoo/Manifest @@ -2,5 +2,5 @@ DIST fpdb-0.20.1.tar.bz2 662807 RMD160 b5f22a684c605ddbba7d2154005a822b02a19490 DIST fpdb-0.20.904.tar.bz2 632871 RMD160 6af83a9b30e8b3f394b011a4dc92937f130b9e15 SHA1 083c51f1627f901e24801bf6abebf1d07646bd89 SHA256 5e72055fe7ebb0c6048282f8edc972ee01be21063d6f8071abef22111f3e82f9 EBUILD fpdb-0.20.1.ebuild 1553 RMD160 24e8aa18cf2b936db23994e5c26a06692d6ebe5b SHA1 05906bea1edbb6e71a95a044fcfe849fe75a737c SHA256 d8850dc2368543062a57b0928cf9fad3d907881e904bf879f904f40e6a734b73 EBUILD fpdb-0.20.904.ebuild 1557 RMD160 0a45c3d11cd0e5feff055324042476131ccd4285 SHA1 ce8e12fc4458a17b36ccaf3a3fee726c7e6d6751 SHA256 5e8bc7675c9e52fb89f05980f36a60f9ce0f0ef5e700286d8dd1936fbcef3f41 -EBUILD fpdb-9999.ebuild 1591 RMD160 29cd89e09ef4935a19d72bb2b1958658aa37170e SHA1 5d70a03ce14bb4bc70ebc60a6c09ef9d9519e1dc SHA256 390999733acbabd44f28c046b99c53ba2db01e441caa16c00203a81f18383333 +EBUILD fpdb-9999.ebuild 1580 RMD160 91fbc789bef8f2e534cb15f70b498300579df1ae SHA1 08e4c2bb6c82e6d8dd5a84ce9a37f11105836b9e SHA256 8412055bfa358b6bcc5aa6fad13e9aa43244a478d1164de672ac53fdf4e27830 MISC metadata.xml 547 RMD160 3f6ca7b0d6eba60a05ef68b080a2cc73f11edcfc SHA1 cee8c2763094e28d6df20b1cf693d98b4a22bf1c SHA256 a9f0e5034bce25dfd9f0d75f0569f870b0320d73dd3e264049c49b543e9e91b0 diff --git a/packaging/gentoo/fpdb-9999.ebuild b/packaging/gentoo/fpdb-9999.ebuild index 065e0b4c..b2eaa48b 100644 --- a/packaging/gentoo/fpdb-9999.ebuild +++ b/packaging/gentoo/fpdb-9999.ebuild @@ -15,7 +15,7 @@ EGIT_REPO_URI="git://git.assembla.com/fpdb.git" LICENSE="AGPL-3" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="" #note: this should work on other architectures too, please send me your experiences IUSE="graph mysql postgres sqlite" From 88570e5c66829fed106a1ea633e60c58e1ee6ba4 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 17 Aug 2010 21:24:52 +0200 Subject: [PATCH 243/301] ebuild: add ChangeLog and readme for deps, update metadata description, updated manifest --- packaging/gentoo/ChangeLog | 10 ++++++++++ packaging/gentoo/Manifest | 1 + packaging/gentoo/dev-readme.txt | 16 ++++++++++++++++ packaging/gentoo/metadata.xml | 6 +----- 4 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 packaging/gentoo/ChangeLog create mode 100644 packaging/gentoo/dev-readme.txt diff --git a/packaging/gentoo/ChangeLog b/packaging/gentoo/ChangeLog new file mode 100644 index 00000000..1100d61e --- /dev/null +++ b/packaging/gentoo/ChangeLog @@ -0,0 +1,10 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# created by Steffen Schaumburg, steffen@schaumburger.info + +*fpdb-0.20.1 fpdb-0.20.904 fpdb-9999 (17 Aug 2010) + + 17 Aug 2010; Steffen Schaumburg + +fpdb-0.20.1.ebuild, +fpdb-0.20.904.ebuild, +fpdb-9999.ebuild, +metadata.xml: + Initial changelogged commit, this ebuild was created by ferki and I made some changes to comply with repoman. + diff --git a/packaging/gentoo/Manifest b/packaging/gentoo/Manifest index 17b4aabd..83b320f0 100644 --- a/packaging/gentoo/Manifest +++ b/packaging/gentoo/Manifest @@ -3,4 +3,5 @@ DIST fpdb-0.20.904.tar.bz2 632871 RMD160 6af83a9b30e8b3f394b011a4dc92937f130b9e1 EBUILD fpdb-0.20.1.ebuild 1553 RMD160 24e8aa18cf2b936db23994e5c26a06692d6ebe5b SHA1 05906bea1edbb6e71a95a044fcfe849fe75a737c SHA256 d8850dc2368543062a57b0928cf9fad3d907881e904bf879f904f40e6a734b73 EBUILD fpdb-0.20.904.ebuild 1557 RMD160 0a45c3d11cd0e5feff055324042476131ccd4285 SHA1 ce8e12fc4458a17b36ccaf3a3fee726c7e6d6751 SHA256 5e8bc7675c9e52fb89f05980f36a60f9ce0f0ef5e700286d8dd1936fbcef3f41 EBUILD fpdb-9999.ebuild 1580 RMD160 91fbc789bef8f2e534cb15f70b498300579df1ae SHA1 08e4c2bb6c82e6d8dd5a84ce9a37f11105836b9e SHA256 8412055bfa358b6bcc5aa6fad13e9aa43244a478d1164de672ac53fdf4e27830 +MISC ChangeLog 474 RMD160 0068d0dd611d3deab35899b5af689d8f5e81546f SHA1 cd473e96d2e57b813cf7d85f0f30c30b9486110e SHA256 50d110c80c42d6f127b32a8edb61dd655c481cbb2d6ec60e557afe3388c6cb48 MISC metadata.xml 547 RMD160 3f6ca7b0d6eba60a05ef68b080a2cc73f11edcfc SHA1 cee8c2763094e28d6df20b1cf693d98b4a22bf1c SHA256 a9f0e5034bce25dfd9f0d75f0569f870b0320d73dd3e264049c49b543e9e91b0 diff --git a/packaging/gentoo/dev-readme.txt b/packaging/gentoo/dev-readme.txt new file mode 100644 index 00000000..3ca779d2 --- /dev/null +++ b/packaging/gentoo/dev-readme.txt @@ -0,0 +1,16 @@ +Repoman currently gives the following errors for our ebuilds: + ebuild.allmasked: This error can be ignored + changelog.missing 1 + games-util/fpdb/ChangeLog + LIVEVCS.unmasked 1 + games-util/fpdb/fpdb-9999.ebuild + ebuild.badheader 3 + games-util/fpdb/fpdb-0.20.1.ebuild: Malformed CVS Header on line: 3 + games-util/fpdb/fpdb-0.20.904.ebuild: Malformed CVS Header on line: 3 + games-util/fpdb/fpdb-9999.ebuild: Malformed CVS Header on line: 3 + + +Useful Links: +http://overlays.gentoo.org/proj/sunrise/wiki/SunriseFaq +http://www.linuxhowtos.org/manpages/1/repoman.htm +http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml The gentoo devrel handbook. Of particular relevance is the "Guides" section. \ No newline at end of file diff --git a/packaging/gentoo/metadata.xml b/packaging/gentoo/metadata.xml index 7aa0ff64..ebbe2f40 100644 --- a/packaging/gentoo/metadata.xml +++ b/packaging/gentoo/metadata.xml @@ -2,11 +2,7 @@ - OpenOffice is the opensource version of staroffice. - This ebuild allows you to compile it yourself. Unfortunately this - compilation can take up to a day depending on the speed of your - computer. It will however make a snappier openoffice than the binary - version. + FPDB (Free Poker Database) is a free/open source suite of steadily growing tools to track and analyse your poker game. FPDB is able to import the hand histories that poker sites write to your computer, store additional data from each hand in a database for use in later analysis. Enable dependencies for making graphs From c7a471e41f324e740aead68910801ce9a4783e8e Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 17 Aug 2010 21:27:08 +0200 Subject: [PATCH 244/301] update gentoo ebuild dev readme --- packaging/gentoo/dev-readme.txt | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/packaging/gentoo/dev-readme.txt b/packaging/gentoo/dev-readme.txt index 3ca779d2..b81776fc 100644 --- a/packaging/gentoo/dev-readme.txt +++ b/packaging/gentoo/dev-readme.txt @@ -1,14 +1,10 @@ Repoman currently gives the following errors for our ebuilds: - ebuild.allmasked: This error can be ignored - changelog.missing 1 - games-util/fpdb/ChangeLog - LIVEVCS.unmasked 1 - games-util/fpdb/fpdb-9999.ebuild + ebuild.allmasked: This error can be ignored, as all our packages are supposed to be masked ebuild.badheader 3 games-util/fpdb/fpdb-0.20.1.ebuild: Malformed CVS Header on line: 3 games-util/fpdb/fpdb-0.20.904.ebuild: Malformed CVS Header on line: 3 games-util/fpdb/fpdb-9999.ebuild: Malformed CVS Header on line: 3 - + not sure what the correct header is for a sunrise ebuild so leaving as-is for now Useful Links: http://overlays.gentoo.org/proj/sunrise/wiki/SunriseFaq From 7b56b5b5427b884944ca438797d10843b48b6a4a Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 17 Aug 2010 21:30:40 +0200 Subject: [PATCH 245/301] minor ebuild updates --- packaging/gentoo/ChangeLog | 2 +- packaging/gentoo/Manifest | 10 +++++----- packaging/gentoo/current_stable.ebuild | 2 +- packaging/gentoo/current_testing.ebuild | 2 +- packaging/gentoo/fpdb-9999.ebuild | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packaging/gentoo/ChangeLog b/packaging/gentoo/ChangeLog index 1100d61e..f72a9a13 100644 --- a/packaging/gentoo/ChangeLog +++ b/packaging/gentoo/ChangeLog @@ -6,5 +6,5 @@ 17 Aug 2010; Steffen Schaumburg +fpdb-0.20.1.ebuild, +fpdb-0.20.904.ebuild, +fpdb-9999.ebuild, +metadata.xml: - Initial changelogged commit, this ebuild was created by ferki and I made some changes to comply with repoman. + Initial changelog for repoman. diff --git a/packaging/gentoo/Manifest b/packaging/gentoo/Manifest index 83b320f0..2b12bcf1 100644 --- a/packaging/gentoo/Manifest +++ b/packaging/gentoo/Manifest @@ -1,7 +1,7 @@ DIST fpdb-0.20.1.tar.bz2 662807 RMD160 b5f22a684c605ddbba7d2154005a822b02a19490 SHA1 e4cc40de5849d3ae33a680d917b340ab37c6448b SHA256 46eff0625f300c070ce88c519ae6019f6e1c98a7725733c5e16b50a058247fe3 DIST fpdb-0.20.904.tar.bz2 632871 RMD160 6af83a9b30e8b3f394b011a4dc92937f130b9e15 SHA1 083c51f1627f901e24801bf6abebf1d07646bd89 SHA256 5e72055fe7ebb0c6048282f8edc972ee01be21063d6f8071abef22111f3e82f9 -EBUILD fpdb-0.20.1.ebuild 1553 RMD160 24e8aa18cf2b936db23994e5c26a06692d6ebe5b SHA1 05906bea1edbb6e71a95a044fcfe849fe75a737c SHA256 d8850dc2368543062a57b0928cf9fad3d907881e904bf879f904f40e6a734b73 -EBUILD fpdb-0.20.904.ebuild 1557 RMD160 0a45c3d11cd0e5feff055324042476131ccd4285 SHA1 ce8e12fc4458a17b36ccaf3a3fee726c7e6d6751 SHA256 5e8bc7675c9e52fb89f05980f36a60f9ce0f0ef5e700286d8dd1936fbcef3f41 -EBUILD fpdb-9999.ebuild 1580 RMD160 91fbc789bef8f2e534cb15f70b498300579df1ae SHA1 08e4c2bb6c82e6d8dd5a84ce9a37f11105836b9e SHA256 8412055bfa358b6bcc5aa6fad13e9aa43244a478d1164de672ac53fdf4e27830 -MISC ChangeLog 474 RMD160 0068d0dd611d3deab35899b5af689d8f5e81546f SHA1 cd473e96d2e57b813cf7d85f0f30c30b9486110e SHA256 50d110c80c42d6f127b32a8edb61dd655c481cbb2d6ec60e557afe3388c6cb48 -MISC metadata.xml 547 RMD160 3f6ca7b0d6eba60a05ef68b080a2cc73f11edcfc SHA1 cee8c2763094e28d6df20b1cf693d98b4a22bf1c SHA256 a9f0e5034bce25dfd9f0d75f0569f870b0320d73dd3e264049c49b543e9e91b0 +EBUILD fpdb-0.20.1.ebuild 1591 RMD160 56ccbca72353e56718a927178e58d148177f5846 SHA1 770df692b29b7314d70703010e1f6afac623c3f3 SHA256 e3f434df58d98760a118458166f9fdfcf3612712c78c704f089f6e8ec72bd224 +EBUILD fpdb-0.20.904.ebuild 1595 RMD160 b5cbcdb8d2984b149c833db8b6aee362168e9c7d SHA1 7151fd3cef087c38060b44adb622843a84209f33 SHA256 41c6ed71aa0ff727d670c94cc72cf595bcd038f601121e51222532df727a6d01 +EBUILD fpdb-9999.ebuild 1618 RMD160 843d309bbc2ccdd95dbb4b0eb08571d8e16d06ad SHA1 b1ebdbe0e40bd6c0d4ec417dd2b8a135884547a6 SHA256 72205c1f94bcf2c3f310d396928e357fabaee4861773044c1dac71f98f6596bf +MISC ChangeLog 395 RMD160 b195ccf198011356ca79b16071093c4d92e5927a SHA1 9aa56e5dc9c5d03b62fb60bc81069f3440b1f606 SHA256 b7ba8c180da0e6a405d939c4485f9c8e52fdcafb04207ef6de217a807015bd03 +MISC metadata.xml 550 RMD160 a6fa8799f644c0882f832a12cc9e6a0f4f09ae7f SHA1 3a40c442cadb1f532e0299040c2da79e9721dd4f SHA256 b5a1c538de3786446a87479b1023cdb4f084085feb7290959619739969ce7d3b diff --git a/packaging/gentoo/current_stable.ebuild b/packaging/gentoo/current_stable.ebuild index 69d5c7b0..a62b2fe0 100644 --- a/packaging/gentoo/current_stable.ebuild +++ b/packaging/gentoo/current_stable.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# created by Steffen Schaumburg, steffen@schaumburger.info +# created by Steffen Schaumburg, steffen@schaumburger.info and Erki Ferenc, erkiferenc@gmail.com EAPI="2" inherit eutils diff --git a/packaging/gentoo/current_testing.ebuild b/packaging/gentoo/current_testing.ebuild index f4338fce..e2a9c67c 100644 --- a/packaging/gentoo/current_testing.ebuild +++ b/packaging/gentoo/current_testing.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# created by Steffen Schaumburg, steffen@schaumburger.info +# created by Steffen Schaumburg, steffen@schaumburger.info and Erki Ferenc, erkiferenc@gmail.com EAPI="2" inherit eutils diff --git a/packaging/gentoo/fpdb-9999.ebuild b/packaging/gentoo/fpdb-9999.ebuild index b2eaa48b..a2e28197 100644 --- a/packaging/gentoo/fpdb-9999.ebuild +++ b/packaging/gentoo/fpdb-9999.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# created by Steffen Schaumburg, steffen@schaumburger.info +# created by Steffen Schaumburg, steffen@schaumburger.info and Erki Ferenc, erkiferenc@gmail.com EAPI="2" inherit eutils From 0e8c9af16f87f14c3f63de3188cf2378cb409fd8 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 17 Aug 2010 21:49:55 +0200 Subject: [PATCH 246/301] remove log entry that's over 90% of my log --- pyfpdb/Database.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index f27fbc4b..9204f271 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -496,7 +496,7 @@ class Database: for i in xrange(maxtimes): try: ret = self.connection.commit() - log.debug(_("commit finished ok, i = ")+str(i)) + #log.debug(_("commit finished ok, i = ")+str(i)) ok = True except: log.debug(_("commit %s failed: info=%s value=%s") % (str(i), str(sys.exc_info()), str(sys.exc_value))) From 3fa87d74432883967bdc57221fb6241f12f45fe6 Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Tue, 17 Aug 2010 22:51:04 +0200 Subject: [PATCH 247/301] l10n: updated Hungarian translation --- pyfpdb/locale/fpdb-hu_HU.po | 483 +++++++++++++++++------------------- 1 file changed, 226 insertions(+), 257 deletions(-) diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index ea1a3f23..63fd9888 100644 --- a/pyfpdb/locale/fpdb-hu_HU.po +++ b/pyfpdb/locale/fpdb-hu_HU.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.904\n" "POT-Creation-Date: 2010-08-17 20:08+CEST\n" -"PO-Revision-Date: 2010-08-16 00:47+0200\n" +"PO-Revision-Date: 2010-08-17 22:43+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -140,318 +140,314 @@ msgstr "Hiba a(z) %s olvasása közben. Nézz bele a naplófájlba." #: Database.py:74 msgid "Not using sqlalchemy connection pool." -msgstr "" +msgstr "SQLAlchemy connection pool használatának kihagyása." #: Database.py:81 msgid "Not using numpy to define variance in sqlite." -msgstr "" +msgstr "A variancia SQLite-ban való definiálásához nincs használva a NumPy." #: Database.py:246 msgid "Creating Database instance, sql = %s" -msgstr "" +msgstr "Adatbázis-példány létrehozása, sql = %s" #: Database.py:382 msgid "*** WARNING UNKNOWN MYSQL ERROR:" -msgstr "" +msgstr "*** FIGYELEM: ISMERETLEN MYSQL HIBA: " #: Database.py:436 -#, fuzzy msgid "Connecting to SQLite: %(database)s" -msgstr "Kapcsolódva a %(database)s SQLite adatbázishoz" +msgstr "Kapcsolódás a %(database)s SQLite adatbázishoz" #: Database.py:448 msgid "Some database functions will not work without NumPy support" -msgstr "" +msgstr "Néhány adatbázis-funkció nem fog működni NumPy támogatás nélkül" #: Database.py:469 msgid "outdated or too new database version (%s) - please recreate tables" msgstr "" +"elavult vagy túl új adatbázis verzió (%s) - kérlek hozd létre újra a táblákat" #: Database.py:475 Database.py:476 -#, fuzzy msgid "Failed to read settings table - recreating tables" -msgstr "Erősítsd meg a táblák törlését és újra létrehozását" +msgstr "Nem sikerült az olvasás a beállítások táblából - táblák létrehozása" #: Database.py:480 Database.py:481 msgid "Failed to read settings table - please recreate tables" msgstr "" +"Nem sikerült az olvasás a beállítások táblából - kérlek hozd létre újra a " +"táblákat" #: Database.py:499 msgid "commit finished ok, i = " -msgstr "" +msgstr "a véglegesítés sikeresen befejeződött, i = " #: Database.py:502 msgid "commit %s failed: info=%s value=%s" -msgstr "" +msgstr "%s. véglegesítés nem sikerült: info=%s érték=%s" #: Database.py:506 msgid "commit failed" -msgstr "" +msgstr "a véglegesítés nem sikerült" #: Database.py:675 Database.py:704 -#, fuzzy msgid "*** Database Error: " -msgstr "***Hiba: " +msgstr "*** Adatbázis hiba: " #: Database.py:701 msgid "Database: date n hands ago = " -msgstr "" +msgstr "Adatbázis: n-nel ezelőtti leosztás dátuma = " #: Database.py:858 msgid "ERROR: query %s result does not have player_id as first column" -msgstr "" +msgstr "ERROR: a(z) %s lekérdezés eredményének nem a player_id az első oszlopa" #: Database.py:900 msgid "getLastInsertId(): problem fetching insert_id? ret=%d" -msgstr "" +msgstr "getLastInsertId(): probléma insert_id lekérdezése közben? ret=%d" #: Database.py:912 msgid "getLastInsertId(%s): problem fetching lastval? row=%d" -msgstr "" +msgstr "getLastInsertId(%s): probléma lastval lekérdezése közben? sor=%d" #: Database.py:919 msgid "getLastInsertId(): unknown backend: %d" -msgstr "" +msgstr "getLastInsertId(): ismeretlen backend: %d" #: Database.py:924 msgid "*** Database get_last_insert_id error: " -msgstr "" +msgstr "*** get_last_insert_id adatbázis hiba: " #: Database.py:978 Database.py:1398 msgid "warning: drop pg fk %s_%s_fkey failed: %s, continuing ..." msgstr "" +"figyelem: a(z) %s_%s_fkey pg idegen kulcs eldobása nem sikerült: %s, " +"folytatás ..." #: Database.py:982 Database.py:1402 msgid "warning: constraint %s_%s_fkey not dropped: %s, continuing ..." -msgstr "" +msgstr "figyelem: a(z) %s_%s_fkey megkötés nem lett eldobva: %s, folytatás ..." #: Database.py:990 Database.py:1276 msgid "dropping mysql index " -msgstr "" +msgstr "MySQL index eldobása: " #: Database.py:996 Database.py:1281 Database.py:1289 Database.py:1296 -#, fuzzy msgid " drop index failed: " -msgstr "Indexek eldobása" +msgstr " index eldobása nem sikerült: " #: Database.py:1001 Database.py:1283 msgid "dropping pg index " -msgstr "" +msgstr "pg index eldobása: " #: Database.py:1014 msgid "warning: drop index %s_%s_idx failed: %s, continuing ..." msgstr "" +"figyelem: a(z) %s_%s_idx index eldobása nem sikerült: %s, folytatás ..." #: Database.py:1018 msgid "warning: index %s_%s_idx not dropped %s, continuing ..." -msgstr "" +msgstr "figyelem: a(z) %s_%s_idx index nem lett eldobva: %s, folytatás ..." #: Database.py:1058 Database.py:1066 Database.py:1329 Database.py:1337 msgid "creating foreign key " -msgstr "" +msgstr "idegen kulcs létrehozása: " #: Database.py:1064 Database.py:1085 Database.py:1335 msgid " create foreign key failed: " -msgstr "" +msgstr " idegen kulcs létrehozása sikertelen: " #: Database.py:1073 Database.py:1344 msgid " create foreign key failed: " -msgstr "" +msgstr " idegen kulcs létrehozása sikertelen: " #: Database.py:1080 msgid "creating mysql index " -msgstr "" +msgstr "MySQL index létrehozása: " #: Database.py:1089 -#, fuzzy msgid "creating pg index " -msgstr "Hello létrehozása" +msgstr "pg index létrehozása: " #: Database.py:1094 msgid " create index failed: " -msgstr "" +msgstr " index létrehozása nem sikerült: " #: Database.py:1134 Database.py:1135 -#, fuzzy msgid "Finished recreating tables" -msgstr "A felhasználó mégsem generálja újra a táblákat." +msgstr "A táblák létrehozása befejeződött" #: Database.py:1172 msgid "***Error creating tables: " -msgstr "" +msgstr "*** Hiba a táblák létrehozása közben: " #: Database.py:1182 msgid "*** Error unable to get databasecursor" -msgstr "" +msgstr "*** Hiba: nem olvasható a databasecursor" #: Database.py:1194 Database.py:1205 Database.py:1215 Database.py:1222 -#, fuzzy msgid "***Error dropping tables: " -msgstr "Hibanaplózási szint:" +msgstr "*** Hiba a táblák eldobása közben: " #: Database.py:1220 msgid "*** Error in committing table drop" -msgstr "" +msgstr "*** Hiba a tábla-eldobás véglegesítése közben" #: Database.py:1234 Database.py:1235 msgid "Creating mysql index %s %s" -msgstr "" +msgstr "MySQL index létrehozása: %s %s" #: Database.py:1240 Database.py:1249 msgid " create index failed: " -msgstr "" +msgstr " Index létrehozása nem sikerült: " #: Database.py:1243 Database.py:1244 msgid "Creating pgsql index %s %s" -msgstr "" +msgstr "pgsql index létrehozása: %s %s" #: Database.py:1251 Database.py:1252 msgid "Creating sqlite index %s %s" -msgstr "" +msgstr "SQLite index létrehozása: %s %s" #: Database.py:1257 msgid "Create index failed: " -msgstr "" +msgstr "Index létrehozása nem sikerült: " #: Database.py:1259 msgid "Unknown database: MySQL, Postgres and SQLite supported" -msgstr "" +msgstr "Ismeretlen adatbázis: a MySQL, a Postgres és az SQLite támogatott" #: Database.py:1264 -#, fuzzy msgid "Error creating indexes: " -msgstr "Hiba a(z) '%s' konvertálása közben" +msgstr "Hiba az indexek létrehozása közben: " #: Database.py:1291 msgid "Dropping sqlite index " -msgstr "" +msgstr "SQLite index eldobása: " #: Database.py:1298 msgid "" "Fpdb only supports MySQL, Postgres and SQLITE, what are you trying to use?" msgstr "" +"Fpdb csak a MySQL-t, a Postgres-t és az SQLite-ot támogatja. Mit próbáltál " +"használni?" #: Database.py:1312 Database.py:1352 msgid " set_isolation_level failed: " -msgstr "" +msgstr " set_isolation_level meghiúsult: " #: Database.py:1346 Database.py:1405 msgid "Only MySQL and Postgres supported so far" -msgstr "" +msgstr "Egyelőre csak a MySQL és a Postgres támogatott" #: Database.py:1376 msgid "dropping mysql foreign key" -msgstr "" +msgstr "MySQL idegen kulcs eldobása" #: Database.py:1380 msgid " drop failed: " -msgstr "" +msgstr " az eldobás sikertelen: " #: Database.py:1383 msgid "dropping pg foreign key" -msgstr "" +msgstr "pg idegen kulcs eldobása" #: Database.py:1395 msgid "dropped pg foreign key %s_%s_fkey, continuing ..." -msgstr "" +msgstr "%s_%s_fkey pg idegen kulcs eldobva, folytatás ..." #: Database.py:1496 msgid "Rebuild hudcache took %.1f seconds" -msgstr "" +msgstr "A HUD cache újraépítése %.1f másodpercig tartott" #: Database.py:1499 Database.py:1532 -#, fuzzy msgid "Error rebuilding hudcache:" -msgstr "A felhasználó megszakította a HUD gyorstár újraépítését." +msgstr "Hiba a HUD cache újraépítése közben:" #: Database.py:1544 Database.py:1550 -#, fuzzy msgid "Error during analyze:" -msgstr "Hibanaplózási szint:" +msgstr "Hiba analyze közben:" #: Database.py:1554 msgid "Analyze took %.1f seconds" -msgstr "" +msgstr "Analyze %1.f másodpercig tartott" #: Database.py:1564 Database.py:1570 -#, fuzzy msgid "Error during vacuum:" -msgstr "Hibanaplózási szint:" +msgstr "Hiba vacuum közben:" #: Database.py:1574 msgid "Vacuum took %.1f seconds" -msgstr "" +msgstr "Vacuum %.1f másodpercig tartott" #: Database.py:1586 msgid "Error during lock_for_insert:" -msgstr "" +msgstr "Hiba lock_for_insert közben:" #: Database.py:1959 msgid "queue empty too long - writer stopping ..." -msgstr "" +msgstr "Queue.Empty túl sokáig tart - az írás befejeződik ..." #: Database.py:1962 msgid "writer stopping, error reading queue: " -msgstr "" +msgstr "az írás megállt, hiba a sor olvasásakor: " #: Database.py:1987 msgid "deadlock detected - trying again ..." -msgstr "" +msgstr "deadlock történt - újrapróbálás ..." #: Database.py:1992 msgid "too many deadlocks - failed to store hand " -msgstr "" +msgstr "túl sok deadlock - nem sikerült tárolni a leosztást " #: Database.py:1996 -#, fuzzy msgid "***Error storing hand: " -msgstr "***Hiba: " +msgstr "***Hiba a leosztás tárolása közben: " #: Database.py:2006 -#, fuzzy msgid "db writer finished: stored %d hands (%d fails) in %.1f seconds" -msgstr "%d leosztás beolvasva (%d sikertelen) %.3f mp alatt" +msgstr "" +"adatbázisba írás befejeződött: %d leosztás tárolva (%d sikertelen) %.1f mp " +"alatt" #: Database.py:2016 msgid "***Error sending finish: " -msgstr "" +msgstr "***Hiba a befejezés küldésekor: " #: Database.py:2096 msgid "invalid source in Database.createOrUpdateTourney" -msgstr "" +msgstr "érvénytelen forrás a Database.createOrUpdateTourney-ban" #: Database.py:2109 msgid "invalid source in Database.createOrUpdateTourneysPlayers" -msgstr "" +msgstr "érvénytelen forrás a Database.createOrUpdateTourneysPlayers-ben" #: Database.py:2235 msgid "HandToWrite.init error: " -msgstr "" +msgstr "HandToWrite.init hiba: " #: Database.py:2285 msgid "HandToWrite.set_all error: " -msgstr "" +msgstr "HandToWrite.set_all hiba: " #: Database.py:2316 msgid "nutOmatic is id_player = %d" -msgstr "" +msgstr "nutOmatic id_player értéke = %d" #: Database.py:2324 msgid "query plan: " -msgstr "" +msgstr "lekérdezési terv: " #: Database.py:2333 msgid "cards =" -msgstr "" +msgstr "kezdőkéz =" #: Database.py:2336 msgid "get_stats took: %4.3f seconds" -msgstr "" +msgstr "get_stats időigény: %4.3f mp" #: Database.py:2338 Tables.py:448 -#, fuzzy msgid "press enter to continue" -msgstr " - nyomj ENTER-t a folytatáshoz\n" +msgstr "nyomj ENTER-t a folytatáshoz" #: Filters.py:62 msgid "All" @@ -824,8 +820,8 @@ msgid "" "GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d " "in %s seconds - %.0f/sec" msgstr "" -"GuiBulkImport kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d \tHibák: %d " -"%s másodperc alatt - %.0f/mp" +"GuiBulkImport kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d \tHibák: %d %" +"s másodperc alatt - %.0f/mp" #: GuiDatabase.py:106 GuiLogView.py:96 msgid "Refresh" @@ -1115,33 +1111,28 @@ msgid "Stats page displayed in %4.2f seconds" msgstr "Statisztikák megjelenítve %4.2f mp alatt" #: GuiRingPlayerStats.py:370 -#, fuzzy msgid "***sortnums error: " -msgstr "***sortCols hiba: " +msgstr "***sortnums hiba: " #: GuiRingPlayerStats.py:392 -#, fuzzy msgid "***sortcols error: " msgstr "***sortCols hiba: " #: GuiRingPlayerStats.py:683 msgid "Detailed Filters" -msgstr "" +msgstr "Részletes szűrők" #: GuiRingPlayerStats.py:692 -#, fuzzy msgid "Hand Filters:" -msgstr "és mások" +msgstr "Leosztás szűrők:" #: GuiRingPlayerStats.py:705 -#, fuzzy msgid "between" msgstr "Min:" #: GuiRingPlayerStats.py:706 -#, fuzzy msgid "and" -msgstr "Leosztások" +msgstr "Max:" #: GuiSessionViewer.py:41 msgid "Failed to load numpy and/or matplotlib in Session Viewer" @@ -1281,11 +1272,11 @@ msgstr "\"%s\" nevű asztal már nem létezik\n" #: HUD_main.pyw:321 msgid "" -"HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f," -"%4.3f,%4.3f)" +"HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f,%" +"4.3f,%4.3f)" msgstr "" -"HUD_main.read_stdin: leosztás beolvasva %4.3f mp alatt (%4.3f,%4.3f,%4.3f," -"%4.3f,%4.3f,%4.3f)" +"HUD_main.read_stdin: leosztás beolvasva %4.3f mp alatt (%4.3f,%4.3f,%4.3f,%" +"4.3f,%4.3f,%4.3f)" #: HUD_run_me.py:45 msgid "HUD_main starting\n" @@ -1964,36 +1955,35 @@ msgstr "Meg kell adnod a játékos nevét" #: PartyPokerToFpdb.py:215 msgid "Cannot fetch field '%s'" -msgstr "" +msgstr "Nem található mező: '%s'" #: PartyPokerToFpdb.py:219 msgid "Unknown limit '%s'" -msgstr "" +msgstr "Ismeretlen limit: '%s'" #: PartyPokerToFpdb.py:224 msgid "Unknown game type '%s'" -msgstr "" +msgstr "Ismeretlen játéktípus: '%s'" #: PartyPokerToFpdb.py:258 msgid "Cannot read HID for current hand" -msgstr "" +msgstr "HID nem olvasható az aktuális leosztásból" #: PartyPokerToFpdb.py:263 msgid "Cannot read Handinfo for current hand" -msgstr "" +msgstr "Handinfo nem olvasható az aktuális leosztásból" #: PartyPokerToFpdb.py:268 msgid "Cannot read GameType for current hand" -msgstr "" +msgstr "GameType nem olvasható az aktuális leosztásból" #: PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:320 msgid "readButton: not found" msgstr "readButton: nem található" #: PartyPokerToFpdb.py:479 -#, fuzzy msgid "Unimplemented readAction: '%s' '%s'" -msgstr "DEBUG: nem ismert readAction: '%s' '%s'" +msgstr "Nem ismert readAction: '%s' '%s'" #: PokerStarsSummary.py:72 msgid "didn't recognise buyin currency in:" @@ -2029,162 +2019,159 @@ msgstr "antek olvasása" #: Stats.py:103 msgid "exception getting stat %s for player %s %s" -msgstr "" +msgstr "hiba a %s statisztika számításakor %s játékosnál: %s" #: Stats.py:104 msgid "Stats.do_stat result = %s" -msgstr "" +msgstr "Stats.do_stat eredmény = %s" #: Stats.py:113 -#, fuzzy msgid "error: %s" -msgstr "A hiba a következő: %s" +msgstr "hiba: %s" #: Stats.py:132 Stats.py:133 msgid "Total Profit" -msgstr "" +msgstr "teljes profit" #: Stats.py:154 Stats.py:161 msgid "Voluntarily Put In Pot Pre-Flop%" -msgstr "" +msgstr "önként befizet preflop %" #: Stats.py:174 Stats.py:182 msgid "Pre-Flop Raise %" -msgstr "" +msgstr "preflop emelés" #: Stats.py:195 Stats.py:203 msgid "% went to showdown" -msgstr "" +msgstr "terítésig megy %" #: Stats.py:216 Stats.py:224 msgid "% won money at showdown" -msgstr "" +msgstr "pénzt nyer terítéskor %" #: Stats.py:237 Stats.py:246 msgid "profit/100hands" -msgstr "" +msgstr "profit/100 leosztás" #: Stats.py:240 msgid "exception calcing p/100: 100 * %d / %d" -msgstr "" +msgstr "hiba a p/100 számítása közben: 100 * %d / %d" #: Stats.py:259 Stats.py:268 msgid "big blinds/100 hands" -msgstr "" +msgstr "nagyvak/100 leosztás" #: Stats.py:281 Stats.py:290 msgid "Big Bets/100 hands" -msgstr "" +msgstr "nagytét/100 leosztás" #: Stats.py:284 msgid "exception calcing BB/100: " -msgstr "" +msgstr "hiba a BB/100 számítása közben: " #: Stats.py:304 Stats.py:315 msgid "Flop Seen %" -msgstr "" +msgstr "flopot néz %" #: Stats.py:338 Stats.py:346 -#, fuzzy msgid "number hands seen" -msgstr "Leosztások száma:" +msgstr "látott leosztások száma" #: Stats.py:359 Stats.py:367 msgid "folded flop/4th" -msgstr "" +msgstr "dobott flopon/4. utcán" #: Stats.py:380 msgid "% steal attempted" -msgstr "" +msgstr "lopási kísérlet %" #: Stats.py:395 Stats.py:402 msgid "% folded SB to steal" -msgstr "" +msgstr "kisvakból dob lopásra %" #: Stats.py:414 Stats.py:421 msgid "% folded BB to steal" -msgstr "" +msgstr "nagyvakból dob lopásra %" #: Stats.py:436 Stats.py:443 msgid "% folded blind to steal" -msgstr "" +msgstr "dob lopásra %" #: Stats.py:455 Stats.py:462 msgid "% 3/4 Bet preflop/3rd" -msgstr "" +msgstr "3/4-bet preflop/3. utcán %" #: Stats.py:474 Stats.py:481 msgid "% won$/saw flop/4th" -msgstr "" +msgstr "$nyer/flopot/4. utcát néz %" #: Stats.py:493 Stats.py:500 msgid "Aggression Freq flop/4th" -msgstr "" +msgstr "agresszió gyakoriság flopon/4. utcán" #: Stats.py:512 Stats.py:519 msgid "Aggression Freq turn/5th" -msgstr "" +msgstr "agresszió gyakoriság turnön/5. utcán" #: Stats.py:531 Stats.py:538 msgid "Aggression Freq river/6th" -msgstr "" +msgstr "agresszió gyakoriság riveren/6. utcán" #: Stats.py:550 Stats.py:557 msgid "Aggression Freq 7th" -msgstr "" +msgstr "agresszió gyakoriság 7. utcán" #: Stats.py:576 Stats.py:583 msgid "Post-Flop Aggression Freq" -msgstr "" +msgstr "postflop agresszió gyakoriság" #: Stats.py:604 Stats.py:611 msgid "Aggression Freq" -msgstr "" +msgstr "agresszió gyakoriság" #: Stats.py:630 Stats.py:637 -#, fuzzy msgid "Aggression Factor" -msgstr "Session statisztikák" +msgstr "agresszió faktor" #: Stats.py:654 Stats.py:661 msgid "% continuation bet " -msgstr "" +msgstr "folytató nyitás %" #: Stats.py:673 Stats.py:680 msgid "% continuation bet flop/4th" -msgstr "" +msgstr "folytató nyitás flopon/4. utcán %" #: Stats.py:692 Stats.py:699 msgid "% continuation bet turn/5th" -msgstr "" +msgstr "folytató nyitás turnön/5. utcán %" #: Stats.py:711 Stats.py:718 msgid "% continuation bet river/6th" -msgstr "" +msgstr "folytató nyitás riveren/6. utcán %" #: Stats.py:730 Stats.py:737 msgid "% continuation bet 7th" -msgstr "" +msgstr "folytató nyitás 7. utcán %" #: Stats.py:749 Stats.py:756 msgid "% fold frequency flop/4th" -msgstr "" +msgstr "dobási gyakoriság flopon/4. utcán %" #: Stats.py:768 Stats.py:775 msgid "% fold frequency turn/5th" -msgstr "" +msgstr "dobási gyakoriság turnön/5. utcán %" #: Stats.py:787 Stats.py:794 msgid "% fold frequency river/6th" -msgstr "" +msgstr "dobási gyakoriság riveren/6. utcán %" #: Stats.py:806 Stats.py:813 msgid "% fold frequency 7th" -msgstr "" +msgstr "dobási gyakoriság 7. utcán %" #: Stats.py:833 msgid "Example stats, player = %s hand = %s:" -msgstr "" +msgstr "Példa statisztikák, játékos = %s leosztás = %s:" #: Stats.py:866 msgid "" @@ -2192,20 +2179,25 @@ msgid "" "\n" "Legal stats:" msgstr "" +"\n" +"\n" +"Érvényes statisztikák:" #: Stats.py:867 msgid "" "(add _0 to name to display with 0 decimal places, _1 to display with 1, " "etc)\n" msgstr "" +"(írj a név után _0-t tizedesjegy nélküli megjelenítéshez, _1-et az egy " +"tizedesjegyhez, stb.)\n" #: Tables.py:234 msgid "Found unknown table = %s" -msgstr "" +msgstr "Ismeretlen asztal = %s" #: Tables.py:261 msgid "attach to window" -msgstr "" +msgstr "csatolás ezen ablakhoz: " #: Tables_Demo.py:72 msgid "Fake HUD Main Window" @@ -2220,266 +2212,240 @@ msgid "calling main" msgstr "main hívása" #: TournamentTracker.py:50 -#, fuzzy msgid "" "Note: error output is being diverted to fpdb-error-log.txt and HUD-error." "txt. Any major error will be reported there _only_." msgstr "" -"\n" "Megjegyzés: a hibakimenet átirányítva az fpdb-errors.txt és HUD-errors.txt " -"fájlokba itt:\n" +"fájlokba. Bármilyen nagyobb hiba _csak_oda_ kerül kiírásra." #: TournamentTracker.py:111 msgid "tournament edit window=" -msgstr "" +msgstr "versenyszerkesztő ablak=" #: TournamentTracker.py:114 msgid "FPDB Tournament Entry" -msgstr "" +msgstr "FPDB Versenybeírás" #: TournamentTracker.py:154 -#, fuzzy msgid "Closing this window will stop the Tournament Tracker" -msgstr "Ezen ablak bezárása a HUD-ot is bezárja." +msgstr "Ezen ablak bezárása leállítja a Versenykövetőt" #: TournamentTracker.py:156 msgid "Enter Tournament" -msgstr "" +msgstr "Verseny beírása" #: TournamentTracker.py:161 msgid "FPDB Tournament Tracker" -msgstr "" +msgstr "FPDB Versenykövető" #: TournamentTracker.py:172 msgid "Edit" -msgstr "" +msgstr "Szerkeszt" #: TournamentTracker.py:175 msgid "Rebuy" -msgstr "" +msgstr "Rebuy" #: TournamentTracker.py:274 msgid "db error: skipping " -msgstr "" +msgstr "adatbázis hiba: kihagyásra kerül a(z)" #: TournamentTracker.py:276 msgid "Database error %s in hand %d. Skipping.\n" -msgstr "" +msgstr "%s adatbázishiba a %d leosztásban. Kihagyás.\n" #: TournamentTracker.py:285 msgid "could not find tournament: skipping" -msgstr "" +msgstr "nem található a verseny: kihagyás" #: TournamentTracker.py:286 msgid "Could not find tournament %d in hand %d. Skipping.\n" -msgstr "" +msgstr "Nem található a %d versenyazonosító a%d leosztásban. Kihagyás.\n" #: TournamentTracker.py:309 -#, fuzzy msgid "table name %s not found, skipping.\n" -msgstr "HUD létrehozás: %s nevű asztal nincs meg, kihagyás." +msgstr "%s nevű asztal nincs meg, kihagyás.\n" #: TournamentTracker.py:316 msgid "tournament tracker starting\n" -msgstr "" +msgstr "versenykövető indítása\n" #: TourneyFilters.py:61 -#, fuzzy msgid "Tourney Type" -msgstr "Versenyek" +msgstr "Verseny típusa" #: TourneyFilters.py:88 msgid "setting numTourneys:" -msgstr "" +msgstr "numTourneys beállítása:" #: TourneySummary.py:136 msgid "END TIME" -msgstr "" +msgstr "BEFEJEZÉS IDŐPONTJA" #: TourneySummary.py:137 -#, fuzzy msgid "TOURNEY NAME" -msgstr "VERSENY MEGJEGYZÉS" +msgstr "VERSENY NEVE" #: TourneySummary.py:138 -#, fuzzy msgid "TOURNEY NO" -msgstr "VERSENYAZONOSÍTÓ" +msgstr "VERSENY SZÁMA" #: TourneySummary.py:143 -#, fuzzy msgid "CURRENCY" -msgstr "NEVEZÉSI DÍJ PÉNZNEME" +msgstr "PÉNZNEM" #: TourneySummary.py:146 msgid "ENTRIES" -msgstr "" +msgstr "NEVEZÉSEK SZÁMA" #: TourneySummary.py:147 msgid "SPEED" -msgstr "" +msgstr "GYORS" #: TourneySummary.py:148 msgid "PRIZE POOL" -msgstr "" +msgstr "DÍJALAP" #: TourneySummary.py:149 msgid "STARTING CHIP COUNT" -msgstr "" +msgstr "KEZDŐ ZSETONKÉSZLET" #: TourneySummary.py:151 -#, fuzzy msgid "REBUY" msgstr "REBUY" #: TourneySummary.py:152 -#, fuzzy msgid "ADDON" msgstr "ADDON" #: TourneySummary.py:153 msgid "KO" -msgstr "" +msgstr "KIÜTÉSES" #: TourneySummary.py:154 -#, fuzzy msgid "MATRIX" msgstr "MÁTRIX" #: TourneySummary.py:155 msgid "MATRIX ID PROCESSED" -msgstr "" +msgstr "MÁTRIX AZONOSÍTÓ FELDOLGOZOTT" #: TourneySummary.py:156 -#, fuzzy msgid "SHOOTOUT" msgstr "SHOOTOUT" #: TourneySummary.py:157 msgid "MATRIX MATCH ID" -msgstr "" +msgstr "MÁTRIX MECCSAZONOSÍTÓ" #: TourneySummary.py:158 -#, fuzzy msgid "SUB TOURNEY BUY IN" -msgstr "VERSENYTÍPUS AZONOSÍTÓ" +msgstr "ALVERSENY NEVEZÉSI DÍJ" #: TourneySummary.py:159 -#, fuzzy msgid "SUB TOURNEY FEE" -msgstr "VERSENYAZONOSÍTÓ" +msgstr "ALVERSENY DÍJ" #: TourneySummary.py:160 -#, fuzzy msgid "REBUY CHIPS" -msgstr "KEZDŐ ZSETONOK" +msgstr "REBUY ZSETONOK" #: TourneySummary.py:161 -#, fuzzy msgid "ADDON CHIPS" -msgstr "KEZDŐ ZSETONOK" +msgstr "ADDON ZSETONOK" #: TourneySummary.py:162 msgid "REBUY COST" -msgstr "" +msgstr "REBUY ÁRA" #: TourneySummary.py:163 msgid "ADDON COST" -msgstr "" +msgstr "ADDON ÁRA" #: TourneySummary.py:164 -#, fuzzy msgid "TOTAL REBUYS" -msgstr "REBUY" +msgstr "ÖSSZES REBUY" #: TourneySummary.py:165 -#, fuzzy msgid "TOTAL ADDONS" -msgstr "TELJES KASSZA" +msgstr "ÖSSZES ADDON" #: TourneySummary.py:168 -#, fuzzy msgid "SNG" -msgstr "ÜLTETÉS" +msgstr "SIT'N'GO" #: TourneySummary.py:169 msgid "SATELLITE" -msgstr "" +msgstr "SZATELIT" #: TourneySummary.py:170 msgid "DOUBLE OR NOTHING" -msgstr "" +msgstr "DUPLA VAGY SEMMI" #: TourneySummary.py:171 msgid "GUARANTEE" -msgstr "" +msgstr "GARANTÁLT DÍJ" #: TourneySummary.py:172 msgid "ADDED" -msgstr "" +msgstr "HOZZÁADOTT DÍJ" #: TourneySummary.py:173 -#, fuzzy msgid "ADDED CURRENCY" -msgstr "NEVEZÉSI DÍJ PÉNZNEME" +msgstr "HOZZÁADOTT DÍJ PÉNZNEME" #: TourneySummary.py:174 -#, fuzzy msgid "COMMENT" -msgstr "VERSENY MEGJEGYZÉS" +msgstr "MEGJEGYZÉS" #: TourneySummary.py:175 msgid "COMMENT TIMESTAMP" -msgstr "" +msgstr "MEGJEGYZÉS IDŐBÉLYEG" #: TourneySummary.py:178 -#, fuzzy msgid "PLAYER IDS" -msgstr "JÁTÉKOSOK" +msgstr "JÁTÉKOS AZONOSÍTÓK" #: TourneySummary.py:180 -#, fuzzy msgid "TOURNEYS PLAYERS IDS" msgstr "VERSENYJÁTÉKOS AZONOSÍTÓK" #: TourneySummary.py:181 msgid "RANKS" -msgstr "" +msgstr "HELYEZÉSEK" #: TourneySummary.py:182 msgid "WINNINGS" -msgstr "" +msgstr "NYEREMÉNY" #: TourneySummary.py:183 -#, fuzzy msgid "WINNINGS CURRENCY" -msgstr "NEVEZÉSI DÍJ PÉNZNEME" +msgstr "NYEREMÉNY PÉNZNEME" #: TourneySummary.py:184 -#, fuzzy msgid "COUNT REBUYS" -msgstr "SZÁMOLT SZÉKEK" +msgstr "REBUYOK SZÁMA" #: TourneySummary.py:185 -#, fuzzy msgid "COUNT ADDONS" -msgstr "SZÁMOLT SZÉKEK" +msgstr "ADDONOK SZÁMA" #: TourneySummary.py:186 msgid "NB OF KO" -msgstr "" +msgstr "KO SZÁMA" #: TourneySummary.py:233 msgid "Tourney Insert/Update done" -msgstr "" +msgstr "Verseny beszúrás/frissítés kész" #: TourneySummary.py:253 msgid "addPlayer: rank:%s - name : '%s' - Winnings (%s)" -msgstr "" +msgstr "addPlayer: helyezés:%s - név : '%s' - Nyeremény (%s)" #: TourneySummary.py:280 msgid "incrementPlayerWinnings: name : '%s' - Add Winnings (%s)" -msgstr "" +msgstr "incrementPlayerWinnings: név : '%s' - plusz nyeremény (%s)" #: WinTables.py:70 msgid "Window %s not found. Skipping." @@ -3108,8 +3074,8 @@ msgstr "" "GPL2 vagy újabb licensszel.\n" "A Windows telepítő csomag tartalmaz MIT licensz hatálya alá eső részeket " "is.\n" -"A licenszek szövegét megtalálod az fpdb főkönyvtárában az agpl-3.0.txt, " -"gpl-2.0.txt, gpl-3.0.txt és mit.txt fájlokban." +"A licenszek szövegét megtalálod az fpdb főkönyvtárában az agpl-3.0.txt, gpl-" +"2.0.txt, gpl-3.0.txt és mit.txt fájlokban." #: fpdb.pyw:1080 msgid "Help" @@ -3162,108 +3128,111 @@ msgstr "Válaszd ki a leosztásarchívum könyvtárát" #: fpdb_import.py:60 msgid "Import database module: MySQLdb not found" -msgstr "" +msgstr "Nem található a következő adatbázis-modul: MySQLdb" #: fpdb_import.py:67 msgid "Import database module: psycopg2 not found" -msgstr "" +msgstr "Nem található a következő adatbázis-modul: psycopg2" #: fpdb_import.py:178 msgid "Database ID for %s not found" -msgstr "" +msgstr "Azonosító nem található a(z) %s teremhez" #: fpdb_import.py:180 msgid "" "[ERROR] More than 1 Database ID found for %s - Multiple currencies not " "implemented yet" msgstr "" +"[ERROR] Egynél több azonosítót találtam a(z) %s teremhez - Termenként több " +"pénznem még nem támogatott" #: fpdb_import.py:216 msgid "Attempted to add non-directory: '%s' as an import directory" -msgstr "" +msgstr "Nem könyvtár ('%s') megadása importálási könyvtárként" #: fpdb_import.py:226 msgid "Started at %s -- %d files to import. indexes: %s" -msgstr "" +msgstr "Elindítva: %s -- %d fájl importálása. Indexek: %s" #: fpdb_import.py:235 msgid "No need to drop indexes." -msgstr "" +msgstr "Nem szükséges az indexek eldobása." #: fpdb_import.py:254 msgid "writers finished already" -msgstr "" +msgstr "az írások már befejeződtek" #: fpdb_import.py:257 msgid "waiting for writers to finish ..." -msgstr "" +msgstr "várakozás az írások befejeződésére ..." #: fpdb_import.py:267 msgid " ... writers finished" -msgstr "" +msgstr " ... az írások befejeződtek" #: fpdb_import.py:273 -#, fuzzy msgid "No need to rebuild indexes." -msgstr "A felhasználó megszakította az adatbázis indexeinek újraépítését." +msgstr "Nem szükséges az adatbázis indexeinek újraépítése." #: fpdb_import.py:277 -#, fuzzy msgid "No need to rebuild hudcache." -msgstr "A felhasználó megszakította a HUD gyorstár újraépítését." +msgstr "Nem szükséges a HUD gyorstár újraépítése." #: fpdb_import.py:302 msgid "sending finish msg qlen =" -msgstr "" +msgstr "befejező üzenet küldése; qlen =" #: fpdb_import.py:428 fpdb_import.py:430 -#, fuzzy msgid "Converting " -msgstr "Hiba a(z) '%s' konvertálása közben" +msgstr "Konvertálás" #: fpdb_import.py:466 msgid "Hand processed but empty" -msgstr "" +msgstr "A leosztás feldolgozva, de üres volt" #: fpdb_import.py:479 msgid "fpdb_import: sending hand to hud" -msgstr "" +msgstr "fpdb_import: leosztás küldése a HUD számára" #: fpdb_import.py:482 msgid "Failed to send hand to HUD: %s" -msgstr "" +msgstr "Nem sikerült a leosztás elküldése a HUD számára: %s" #: fpdb_import.py:493 msgid "Unknown filter filter_name:'%s' in filter:'%s'" -msgstr "" +msgstr "Ismeretlen szűrő: filter_name:'%s' a '%s' szűrőben" #: fpdb_import.py:504 msgid "" "Error No.%s please send the hand causing this to fpdb-main@lists.sourceforge." "net so we can fix the problem." msgstr "" +"%s számú hiba. Kérlek küldd el az ezt okozo leosztást az fpdb-main@lists." +"sourceforge.net címre, hogy ki tudjuk javítani a hibát." #: fpdb_import.py:505 msgid "Filename:" -msgstr "" +msgstr "Fájlnév:" #: fpdb_import.py:506 msgid "" "Here is the first line of the hand so you can identify it. Please mention " "that the error was a ValueError:" msgstr "" +"Itt az első sora a leosztásnak azonosítás céljából. Kérlek említsd majd meg, " +"hogy a hiba ValueError volt:" #: fpdb_import.py:508 msgid "Hand logged to hand-errors.txt" -msgstr "" +msgstr "A leosztás naplózva a hand-errors.txt fájlba" #: fpdb_import.py:516 msgid "CLI for fpdb_import is now available as CliFpdb.py" -msgstr "" +msgstr "az fpdb_import már parancssorból is elérhető a CliFpdb.py segítségével" #: interlocks.py:49 msgid "lock already held by:" -msgstr "" +msgstr "a zárolást már elvégezte:" #: test_Database.py:50 msgid "DEBUG: Testing variance function" From eb65a0775cb5a399c9d751a5a128edb24de3a81f Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 17 Aug 2010 23:01:47 +0200 Subject: [PATCH 248/301] update hungarian mo file --- pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo | Bin 45677 -> 63088 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo index 3d96804b9a9558ca0a27cc7c15bd773086008922..3eb282d45d9fa0e832ba09cba500ee6a5221e4c0 100644 GIT binary patch delta 26108 zcmbW931C#!z5j0z0a-+l9g&L=Hc8kQ1E_%v5Xb^aSZjqz<|Y|3nF%wKK;klDZL3eM z!nG8w+J{RmE~t%luZodYt+v`)+gi8QXKS(6t?IKrpYQX%=gwpj(D(j-pD&+#&OP@m zzw`V3&hMNv_MQLe@!sE$NxeF_=XWjsd8UVDodnMvrc~!YFHf_q0VH36$HTYbsqkNL z5}cT4SuBx)i4*1q`1|>g9=;;$HE^%efTpt4t@yL zz|iTIRSuWIWpEFi1z&;s{sann9fGQ-4AOuVg@fS5P#w4i+VIElWZJiW!@~$NK7hx; zelv|EhQgCc&w^v%8rUDkU|)EypZ+%NL;5P%8(s%h&&^OByAuw9hoIVd$xnX>PojOR z55v%lT&NzN4hO(>P@)XMQScn7a(kdgb|*xt)>F_EF+7p<0Omp8jf11%0;s92^3&U( zI&?WqsiGTrPy-J`rGMuac;9EQIi_Qy;UM16hJ#_i&))z~B;5qn@r&T`a5t31_Cb|D z0Q{X}^egFr;o(oI`L!eE1 z5|jj2_^g4FpT$LBtuxBI-$ z=i@$~_4#|BZ}|KN>_z>bLQPT1DzL0$c^C+lG1N~_fSRkRP(7dLrwic-(xvcBSPLbY zTc9NK0MrPdf-3h490@=6()>G7|7IT4^ElLp7eak-8Jq?8 zLP_8kQ1<;IR0m%5`JT@ni;cDq@i`7khw`BsTm+>H0k{o*9p=jZf5n3hKT-x9cDj+o zB6uq4br1uwE`;jXeNfiX0cXOuptO3_8J0C37D9PW2TJR|4U6EdP~X1`C&SNRYAO#C z&a|w0SPr+q`=RD;WTENtEI5qxN;n$^q0H{Pa1^}FfB!S6j=ci)eUByP{b--_;AryK zKuuNS66A05knmqz1##!rT~PV2!=*5XKk8@zN|a4dQ_u=ef|o)m-H)I~_And+--K%D z7>2L%$N3x$HI;cqDHM)}xnzumx51O)FQ7zq7|K6<3^k(O0i!E6EGIn!_JkKeDc3il z=KLxsiQNFD#1BAq{4J=4--pba^=XO+Rj^>08R=rEIo%1>a68O{PrwHF0hH*^UXDq^ zBwPS*gX-XaK)wGQN&+XYFrINHl<1fF>1sHUbZR>fn#1eineYMs#lPS&q{kJT3Ui^f zcOjHduY?-u7AVn2;pOl`s1BX5(sZyGYCso2N%qH3uKIb%GM}>k!oxT+PF!WoY%V;G z^qEi}tc2=d81{n~`MlE4zZS}G+y^Cr=izOL^f07qYtL#^|DPc0U>&o@vgo6=9QKj@ z@8UrXUIV2}H^E-;Ak-W_2{qE!{Pa8i`<@l%yMAyB?}tJMw!l8{WvHor6Qak~VJI`s ztF+{Ft!mhx_O0u9PzP>>r@(vQsqlADj_H^x(}5GAlxZ9s3|GTkSOaImOW<1g5Y$u+ zA~6+Cff_&+ltincB()Q!Ch>5MpYb@9lKc@K3qOJV;OFo}c-%Tu@fbLT^jxU-o1sS9 z0Jp*>sPF#>1Mp7}uWe0Yg;Tj2sQmi%$Um2d17zgE7obGfV}q%nACzPULFJEzYH$Kn zg)^YcC<5oh+n}cI4JgSShBC{4L3Q}JjYcA~q28ap5&27-qhv@~&Vha5&)^97JS>5S zVGlTelj%?aJV3e#O0*xs-Z1BDrsKy!DfK|8{FzYgoaS>GR6CU^9yFq}p*pY?Y6L%l z68XbWJ$(*J0$-CP#*L(sHyw{s^fWQ8%ZvPs%IV4_X)@V zQ`QwcOe5n)C}n)kys-Wgsw4e3TNcu{20>Na0Hrfm!)5SMcrNU<#dPo+P;-4d90Xs4 zvX-}eeg-w*w1O7z!5Rdloeem|5M-UDUt ze}S5^Db;3*WjJotbOeUrkKh70fW%_B461^Q;5_&M zlT4;uLcP)hSOlv4c;$_n0qL*aix z&EeoWBbn(?b6E)`>KN<^cfw=gw|rg(Ro`wXNnQ^%Mf>ZJzwGljWQ>7-hH6OBh~{h< zRK-)^DR3cF#b-lVM+o+YJK!*Q0aORR2ld^xa6CK!^(5a7=^g*%YV>mqIDoN;pLYp~04)sau(aqzf^$v+Wl#5UCX ze5mhE_um(rbjn)i7YIU)cpKD6zX_#m*FY)feXu`#5=uvY3sv#kP!jtLj)NyQ8jm*@ zofkprIq`ao%U9<<>aDCLSnN%R~jGrj^!2Yv)q&yz4^^Y97}4*YMZo`w>pf*0T* zy@#5+ci}DYU+`pjL()j#Ae6N{2YF?^0Hrf4n$1+jAt8WuF`NrugG1oZ7VKZ5oZ4dM zW3gQ05u(^S8o&q~lOib3PmfuZ9EQT~Os8fhWQz{PgdkrtDQe{Z0$= zS5H19Lk_0Tc2n`Ga3bmXP#roO&VY4LBHRl#;``wm_%M`&j^AOFbtIH7Oof`F=}-fz zf@<$9I2~?F@gNE8^9vk+YT#a|4!sC9qEF!n*c(+|0Bxu#*a$WEJD^5(EgTAO^LY>s zCjC1oNgRf!!~cfrSZZ;bnX778K*nWI75*G*L~lbmkdL88Gz*)W3FpI6Fbvh;MQ}L0 z2CBgyLk;W@RJmV6P1!q8X85VePg%#XcuUkL!>KR;Pl8QwB)lBzgInN0csEpq2jL|6 zGL(+=JkMzVFeoLP@3RrA{u`kr_B50v{su>C{r{YY(PRui-;7{3l!#Zs)8Iu=bN`5+ z|1PviPv%>u-71Fa*g>c{eI808ITx5^eK=GHS3_I!UB<%_cpKD*|A3n7 zo;yv4#z2X5E>uG+phUX?N@5PwcUMB`$`7HY;vP5*J_AeO8&LJmxX?(p7^aj_!-IIP z&+o#qqz^z%!7rh-_AMyS_BlKO_WXv?m7!1_ISs1e5IhN<3r~et!*TEsJRSZOE`Sp+ zLjDr*=8MeYay67_o`;&VH=#P#|C=nGIV@CA9lGUPMwADkl<^ff4G#Rasb>*Xy-6rt zIRIzFr=SM*IaIx4E=K-ac$jywsrY+P9k?5+1Bak0`a9G}CSJl43oBqV+zqQ?pMNt} z(g3{Dh@D$Q-!KJX@cgzUOp&E!l8(si4;(c&3{F!0OdY1=PFyaa$@`X^6sP=g|lrr59 zHS*uWf$)7OWy`tJbZ{ip2&X}Hd^wx~9jN-QfG5KT;i>QsaE$E#*j=Va<6#~zN}#m8 z4Tj(qP`dC>C^H+q+i<4O@9XRq&>a)W%Hisr27q-B~@OG$<9ENJ}BiIA>zQ&kiU!Q}Zz8?WK zfH6=yG7XM^i&B1pwSLAXzd!;?BH!@SyI?8leNZER*XL(&IO*QsHw}!1qe$ob>0+N7 zpaxh6`@kJ=G)(Q}0X?&>gR|hwYmG|{!Fioq9HwBz5+TwenheI0OFD=NGUy=@~bfsagPs)4sKw2UV~c;?%4rC{bBA z8_t57vk;WMH$shYCzSGC2PLsP;jwVU4^0P7hI&8WPZvWCq#6!|dtgchZs$RB_Xw0@ z=zELV4-A2eNw-0jyB}(bo`x60&tWe7){o2u!|iY->G$CzxM;sI!w?)p`W!d}UJa!) z2lgZXVLZG<#zOc$oC5Q1HTJw7%IvOzJ>hdu75vucVV__49CDlSd{ba6<<`Sh@Oiiy zj=A03vYiK|oWH#t`DLrC}kiCI?1 zLA_rBr9-7K0?&rq;4k2DaPhr{%i%`SYv2-?x{ZewJp2RpgY)k*6)uGuX&IafTVQ{< z4;~K>!1?f}P#yZnXW#pcj*Nw0C%*#98t#IV;Zsmb`~jRU`|tIDSzhNsY3JABaJUP~ z&i6xg>)Z+NwzzYq2yeG3f0yWl$bF_f~E{?th94mgpCdA-vX8Iz-cfH=fFKsI`a!CNqhmN zJAI!pW_Ajc#8yLfXfMo#2cXRSg(p(R5gdESDBBru7B4pWyc}x8k3pHyA7C?l1FnD@ ze`ZE>1FY72cqLr)b5qZ=P#v_MG*dIj=L#rgJ}bpT4;~^uV{j(vIFwo41joY%pho-( z90mtJWvpTf)D+D1xd`?ly%ZL~61WWRf||K?{ZlxA_dkQ0(-)w0;V_iQ z--jA$-`|+@NGM6of+`<`-u{0(4>F%Cp(OBq*dP7`o(La@lE{m268sFR!{c8tBgun< zNze1s#ZVoufa>4|DCMh##V`uT!TVo8{u1R&WT@g3eruF(0X&Ix4fI3>w~)RBo(>N~ zxzH&u8j;sRH57;H@CAPQDxWv_yvu+82vmoE{UY+$NZ%wwqWSB-w_z9c{?cehaTn;zDC!hv4CiMrS%@g4i6@cf!ZBQe6 z2X2F(L5aNaCDW1Za0uyZp*nIm)Bq0p>F1zy;dLmb{3{H=58)no+8>P)r=H`%CZpHO zX1$&SUA{&F}7J^@F;7oiQ` zhtp*LgI_ZvIRmOd6+9otU_1N=lyctix+!-D)JPwPkHP1mB)9udrrg7@C+VNV-S8PW z4sQOl8Nf~$BfS?cl>PU4!zfJ=9L9?cP$G*#iSQgheIe9be+NpN_d!k3ey9=N2Q?*6 z!IR*tP|Elj)YJ|957Y6HPy?C_N7KGFn+GXFIUEi*!0E6FYNY=T=fXRoDtZ&nhws8X zIO$C@;H4K9Lj!=7;RUy#2>oX0~kEP@)*cc84|TBwffhw8u| z;8-~DuV(q24o@Y$1x|pM`Meuyxq`@mP>EcjQb21Xq=5?lZ^^3_mNvK4ATDJZ4A432nr;KxupF#VsVL&fk6(hkgnH^Y@yB?kyRtRmy&kIcxo!lk4SLW%C!kIe_;q2_uG zwEFf9#N)BJ9ZnS3HmMS)E*P;B$zU>3(0cX~{*kM>V~e!jgu9!@&(gk2ksh7MH012)`X&^QH611AC?yk4 za&tHliv*M5Safs5X>lUv!-ak;|4S#1+K2XsPWeYp%AP%aj=jW5+D&n%HWF)^K06+= za_yQ}G#QRIdkxyvygpjq{AB&nvb}2N9Q|E9+~UNi&&#|_b!jBo9FI<)>%FXvMM8FM z+}YObL~B}Y(^R+2tcJS1$!@0GtFCRNLQcqDvcyitPy&a$>|ACtqRh&pWmZR+o$SKi zM|LoobQ+tIjwH9;i6*@g^|9@t*!HNhVo|#>7DY3HNjuRc|M&^h6T$6vdL-^G6Wo$u zC}eM*p*o_$Mn?>V6HSp|tGzv(thZ;_A*UwXh}x1@<0Pipn`a(TXy!EAN!Cp1>n_N> zY(Y^l8LSQ_9NW`<^m6Ldsdgr_4&{mj6KGg8;lx46c4Q+3w)<%A%>mzDqNqe;V>pRc z)Y()Qact?YSCuK!9QAVPE;ZUAzs;KFcp?^W-#l>?y0*TsqO7=VxxKb*RayD^GP`tR z<(d*ZP*G7{QJ|VkMV_{1n!!*zU#ZEaqrXZx(U9I4^UVGzk&MOlrdNG1ioLkalkAge zjBX`sVv$68v}#3p(dNeXODB!bnNd^}D6$Im*Iv4|q9RbXbfc2xW#+HFbVc#%%Jg%2 zWtDsT~3W;>TpEiPQC8_iLcf<_3q#)<->!K z);4KQtijIBpIK`s91J>?aL=AHuOO|f(iy2*G#1SZh2xHT+ge~x%1unNg9$qrwZn}~ z$OG;3U%I=eR1XT*$z3F-&zv#CmOvBk2U8}mD=C%-v}>C})tmj#!U?M0ZUC#Ae8AbA&TCJt!B_)BSRe?YykENx7vZ^%gs^Zc>WmRG6YIpq9sY`87<|?(etjewk zELpqJPcSi+fx;?M>FHS-j7DQgyB6KAM-v=;h{oftotjLUS9t4?y&Su$YHjkowvC3y zWwRQLYbahBqwZd@^6$ja7%C{>U!k%&D_qCRqMXBpj;$ED$XmrNxvG!yzTH{Q!6Wb#8VmmkCKA1OZjrXOj zrLk4{riR=EuT7Knf+P&Z}N`M$tz#Gq$FUMSJ-9cRV#1-R;C}mkZHmj zVyrnDa$n0IvDA1h&lA!3mkl&sO@SPaV;gCpymc{#Yk&X`$QR^(})g*sLgqngGy*{nkGR&@j8ZjN9QF~{_`KG@>O54SpTIZjl( zHXKhRah8$h#;6qtg_G`GGtTSVIoIyQnR8QRv3x3Pia7Gh@?4%mNCWMfU~@u3PS#^U zn5axDuQ3>oo*4-zl8O8TT2td-Y;{h46i1tgvE=Yol$LjR)ilLpxaY=v%Xg=-C~L0g zw`B{;b)z#AU(2{zZ;l=LS@S`t*>jh{sOLory5>e=H4U3--Cr%by=@8BG&eUExG&Az zG{K9r;!bsQIN~|x`sPqgu%_PO6Z*r@Yi-+&tvtouJZtENz>Z)e;xLieG+&~gR@z3v zrJx1YvOvIEwz_CZw(SI>$$0A#xoL~qKI_wzqA`imvua`~$pYDWPAM-v3-~x=G+utf zT4vPdOF#3=dsC&FvcK?V)SFE{U(suAQ31Vo8)wIRM;uvvf&238ak+jRNw+dnk#3tn z%&v5tsGaM6HhbxC8HL>(ZNQ&K{eDXx?ThBz-E)~8i$+@QM01mzb;2%fWlf!CuZ|^> zT8i-F#4>A2imL+C?CtdgAi=m}x5k=nq~>)#W;Z9CGu*cpJk)z_VMSqCRiORfPrLV+ z!nDN{SSwUVBvw~v#HfMgd4`$DPwq&X*C-va2u{zgZcf^YhFaY zo4CUJBK<o^zjIp`pO?acFh96RV@w2HjvcG*v=MY(BaqUEL-@~dZL1wl=G&`{ zLCK|R1x{+Xs>W;A-mX>6UKflsJD#F5Fee`4uL8ct^2T6&P$SLX?5;k&Py680hxRDV zgfYZ#q2`EFV8k1$?sQgGvA;^DgRFGPrbKH^tf_8Rrl>pi%vah!J@fpW$@rEHR%xMN z45?Hzo>&9}-375x{! z!P#kRJL=2yhwhU_ua`6Z(gVVtrdC-=$RUJs?3Q3Wto1>j*Z4_QmGn!K6O3TYjjh@$ zcuN)nZ;Hht?u~&a_aAn@lk(6Q>4&F*E7lenl~GQ*l&ou6kr#VcDum%Zn+@Uq7hxa_prF>Mknz?nKXrWkiaQy2Vvi z1#Yg@9ah?uDy#~W$k?pPC6mRjG;nM$mK6_4l?QV=t))%_;WwFVojHd7(gv z4VUFDyX?DGdn>eEseOJXQxTy1X~h@rWBJ3~w<}ksdj*NUN$eCOTFopLM{)Z}MB;dgp6fopc8Hr=`^3oNGHtsmt@ZvxWQCu%QuuF-2!dj$FKwJ|>Bcw^F1mOlg7oBN!lI<_8zbq%uNW8#~ z2cr!I-sj$C*56;`+3Um6sJ9GH&P_~lt2a(?FWk6!U@}RBAT`^Li;8V`U)wlsw3FP< zN@!KH@$k0a*;|j}Hl5Kc7!M`v#qLSBjdV9}>bFeNqrLPQjNdeiKsXKF<>il@wVqNi< zNHxI!;g^+Zj-F5>bMi#{?A4GqhN;CkVNaHc60jtu$X#b|`K%Bd9tCaq^&~qBzRF84 z{lPlIN}IDS_wL(gEB`n!_Qim%G&2L8UD$Grb4>Q z(reK`31=$CB^8IHcq1boS_vXWTON~ zhEQsI=gP@e#XHT>II$c&owjVVPEU} z=*8LjNpp^&ZJf8`?CZX^IX@K)d&VXsOCO?Bwcmd^k?p~_7J~vgmjrc$ITGpgIo=}U zdnUyjNBE%3=PKm;QuBE@#F;zod&lwr>zDFK9GGRCU1kyasxOUO>ugRdqTgA+uUon} z%uE25*(CP0eE*)FYR+!`&2!M(IeQ9%qNIhFUI%Pn`Q5Qws(a73XU!^@GrRrbEpu~5 z_3gMM-qNu@+Ug`U7s+s<4%37E%?mNM9@xzIm1diC?lO!6UE-8 zNB3e;r_mH`e&*sx(l1KGSa7VGrjM-0$k<8w1%jC9QK~rFElHzOS0Cyv65%MW znzM#=a%9d{%<_9qBBQ6Y~0tR~E< zEy+~LtEXQh9$rl#b7XwFH~wU1b|~Aizs=5Vf2nR-P715q%IO1HE$D^jZu5*hPA9@` zPRL1YRU5pEG;};139HGiG9%N6dZ$fyJbCm?Rzk_Fue_IuWOe?OzSiWe!D+N%jFUK~ zCB{)DdX46}c6fV1AT5 zRGQM*e3!?>^ZwyThzEx`&Ja5JlJeMa72k`?X2wbQK) zOLIzBlyBNp_{`42qVlRLyQuh?ohvP6b)<7TE?;S{?zp6EQ(1t0a`uJPrpiE7d0F`? z|4yo7XGNj=_eeAq^zNkE!ic^$*q}?PtemuwckHXnWXngS^O1A5@n_0VS-J?H9%1~M za4>7Zm@|6vf-^sFv-;&?OdM_2cnGdV60;{aF-dGY1$0v;4m}H~Yc@yEgzmI-5mAN77Zn|wY8q~~p3@u{` z8mp!2vh31QB1EL(h^(``HlfLRZHxgUp?urdNIpWZd2vXcCyIe=4 z?nGOe#uiCC+5T{BVNU;GQw=|y=xEoByU#a82COpIA!gRw7j1hyC)`~atRf*>fj`v+ z+hWm}=i2aFWOt4^7|pj=h3nA}s^-qk4|ckEBMr=pif|?bAnxb!lKf6DoX47ikJ(4` z-NlJ@Udb`bzq)ytyCu;lWll-Eha?gvz6NK{rZxLst}|-sQiPj;&ilD8jixIpuiV6m zT$NSCMeFhcj?2Ac;Bb2?F(D^aw3Y)ndtKr3joiGJmKIxuS>n-Pvvn#sxowJi#%k#_ zvQAl@BkvlNS`_MBa^xzR&ZEitw2ZJjt73J@i}HIIr_G5l>&bBE6xql&+1wc9Jg5Dk z!#}DmlaR0OUsS#bIl35~{ug6;Erj`Vj1y%-Ri=O?hE-$O% ze^9F|u+Ga1WNgpBDol?$;^0Q&A*W4?2@(i3Djw(mod(ZLg8qSncWtQPH-U#>Wl>0C zRkk_t28U(F>To}9xp9!M+pJF}IuE*gx6er-wnSUUzQ&FRz4aV*q(#~_YZpJ`h37LY`g@XQqzL6i&u-B4$W@ z=$C8=COyCH)$i?{G7ZSa)xvm(r$~fgHmNMN0twgn<3-Dy{q0T+&9U6iZyIT%AektK zuO&;PPy6DYPjPG8TKg{R*ta#Ju(iN_wQW4tf>bct;y{k|xM=@e{e)=ZVymBA-=1r;Mq>1@G=Ri=QE@oDssHB+j zzo=LZYK~G%qdI+o)2J0P5#p3*D}S6i-=aO^&AtxxMo?g_Oj`vPqc?`Xb&RLdOrR8t zSixJ>ZJ95tY=hGld*)K(yLr#XBG0@1%v_Tm5odUjviVX0QD&c!{w{rK>ffqzPwP%S zbAX$=?o6o}ptOF2LqE zj02Xmc6+Mn-O=S+7)IgIZ(cLS*<|gLax|o)lVHAk&Xp;5X3gn6xO;u1ah^MP*DQC? zuEfkhU8|N&?tik4(imaJDl;ai!1^1zb_~cC^(y!MU8DQR+6qewSGV`u{Z7xZP5k&k zF2O$fKBN7UJtK1l`UfQ(d@4jvv=7`nAm`K-0fJktwFIl#*Rq+djk%fiwl<@${^P>J zuUG-RYmlRD4*cudkFLHawMqB2#ayp0u{y3TsR~pnBcjd4D4=x)}a5DT)o#ZCK5 zEjsBV1$W-Hw77y`8Y^8^9HZ1NxuRE=M;Pv^wGT&;8+RIdvGn6odiaTV0*Cl(e(xdV9lUu+dJ(v*{?FSf$E| zb4z5}H{W`PV^TF3g z`meyqd|bJytF`ts9kVvDcbF|t|oZ%QH^(X3N& zzUy>0{xM-@9U=bUgrB{vrxjTRiR{hBr0XEr@@8-2q!b*OxihXFI+q_MH?ltPpEM+` z^wpCTQIbZj^GxuYj`ifrxSrsi`U@s5eHpE5>Mj!SmS{y~>GO8;Sy~d=cNbn!VwOZO z{nopy$Sm^6;i$EDjNrJhQ+QeB-8*kDOUY$g3gGZF=6afNf@T`iAvqH4JfZXpdY9E- zQLgJPw*OIX_RS7^8*d{xibHGq=N(HYIyX3qkllaYzJ3Jf-xy@q!#a8wbywce()Ch1 z6J_FP{ew`3)Mbls#C3J&C3nYucHRE%HUTSU=kJ6wr^9D(Q5^4bd7V|M=pEY@5qy2gMR*r))f8z? z5UO?aSqy{pMYU>DL8XzK~zhS6+$d5fNJdf1f7&%WNR+aMFp$;W=$det^31&Xs2$o{$S=4BNfo&Lu;g zNU%k}h;HF%2K#+5BExkHuRAf{^WgvIovr)Eoon4Q_6~3--8DAVd0pPQ+p)40fYS&k z-hz#;(cO7|z}%gybw<#!&p!vIapLzQ98oe|} z4Ib+aYi!067N&39vu@h)d{~+GTC%_bT_LdyW?j6SZJp)TT$G#Q-retP=H8vosu!8% z$9I;5by-_J{yQvxWk{q?h_sE;O1L=vCVe0w_wM(muN73(!jEWm3DdF99rNQ^sTQ;Y zPl1wn+Z-dNF4w+9SWLL%Nvk%jor2Ry0A-H#GESH+B~9YC2{#!4$7}r1S2wjL&dfMt zsaIB2scv=Ys@~gbnU5vJt^$#3{j$os)umr59er`=tTw32YI7|6f3CN)k6$@bNmQ#< p*^kGTb}Arpl7g`A`yLzzn4S>NWozk8t1I*1-6v#}PnX+A&=1`~5lRy53&BeD3>x&bgQW|9_wA-EZpL z`KO=nN|^r!i+_IcSXN6s7p&g@|FgP{Wi_I^2IFuG#^7JD2Y!d~==EAwQ_RCISc(z& zB1Ymt9Eqo~IYzd9^t;dMNrO48VW=0UBL7-1@P`(78*}h0Ov8TB&cusQ8+id6;4#zz zPGf7lfvwQ5on-}~7Xz`Y+wYG7md~ho2!&Pp77iys+?)U}N z3BN-{s(yPX5)l|hzYFU9VW^WAVppujMyzk`rqLMRM(y+zhT&Okh&SEezsHXBtqztI z3Ngr#^%&~;iLSFNPAB8<}Fp@26Hd2Syi>O<442R+sBnVbJ63-M?7EVLoTpEQmuAxGfL}{v;^HKM? z0#(H;-Tp4rbALuf;v9PM61Knx*c~GYr^bh23Qj{UydM>ri%6~btZOth(NCyI{MR*z zS?beojZb4o)OX@#)crn&4e>H+LtkMqs^W4W1eLNvY>Xw?2&<4KtR25fcc4yq8TDQG1r_q3UQUt4ql&BwgK!>d!R4r1VQ>w;j+(DeJoD)O z&!j>0t)-}(9l}67i#q9-sFOZKr6QoWQxolQA4g0?z4tYVvfd zbz9y;rS>%Xw8Jmmf!po_egm9pZGeUR9*!kgg_`gZDzrB+8UKy!!HVNf(X&M4Tj@t)brbr8)*H>{rx)X0N*AOf4%r41F3i)*_<_akn_L-)OZbcz|+_jzd=PJ zYOwQuJJd-#qsHS=8ySe2FCBTsT890w7L|$zJ{k&z-w>xt!%+RUs1WwV;W!9Y6Dv{G z{sLy<0o20(#e?XdUhyGmDh8LhVvsukioDk=t zLi!|*$7!f*bplm1zhE!yPCVmr5~{d1VlkdYeOUTs@J+y3sP_+|K4dpgDUIR}vSF2= zPdndDqX!@+c*(>=Q;Bk)cm`#Jsv{U%6ata{@Qw1{9)CZ~*=X zm81A4oCU^V0{uz&=-Qx)b0q#nBHEaW({s&GwGxkt=o3$pe}!fS z1A1XGw!keIiSOWJ_$hj^!34hh7>g>-9jKGOg}v}PYQ6|6P$%q+%6U3A!-*J%bKUXh zd^D7+ZKwqgqH=f|`3PEHqF#(Ga5k8N>Q8W;JH@3kqP#bxOg%~l}nQ#tjp|z;m*@cSW zN2ra|E#@nUJ@IMX|JgK{!}TzoOz}?FE+t;^n1Deu^3Ii3R7?s zs+cchEY_Xo)Itwb1aeRtSb&{a-`Y$=U$hgbYj_tsV%_OZ@pN%bc6}W6+)PvvF2xEo z*c0PIp}UXC7&*iF9^|7A zP=M(;%N;+0`qUmrt@9J=-v5Sv7&?>qYoR7H9b2G3{b*Ei#h^mm7ggRRbkX$ID(KMgzJEYyc- zBM!iW7>{3L9=57-KB*NLK>sCFq;{g_Ifjk#Bx;_|Fa&So^Sb{JY4l`ZHD3dH95vBh z)W+^(C`Qb2P8Nf8>90jCv=R0D8>o$afP50Hdzgq%%ylBO8Fiq);ZXbmhwJ|Lo9Cop z2{z@2gP4G)P(|jM@8o%e=%yK+t7=LQNLe6 zh5mn$3uOI(zS%SimN@tPAFh{iJmWVp83!+QuGJD$b$^7K@FK?Gb&SQpWzHwK4=U%$ z*bhgcHnh@pEB2yqFC+dFX#9(TW;k@Y^S@vdP`O-zTJR_;bf+;2FQBUVd+d+FE1Za= zqptH<)CMOYWnfLiC-5o;VZt*`Km8fvucF(ETF^QnMMg^LMc!{($xHSJ%4hoexV8rZGMWRXZ=D4zLZman{?YTh*UDr0V`Jpb?87 zU>tsfnxNSW{GA>Pa3o&BJdE4mM5YF_>7T(&Y`W2TZxSjZd$13lK>iwO{Rbbzaho_K zu0x+r9`d479A0cqzdL$y1op;q?1sBgsrd{;(X-hpx^UEUEwMR{!uD9|x)!79A4Xl< z|8e_2Zzlf=W%HMuP1I@7*gK!as<0{liUcneViQ2$7s15v#VfdTd4}00!Pz%&X z+M;TpJGRAssCmYtQoh(nLlf=CLOhIvu<0MT!#D;Nq4lT@ZADG|mh1cO_$R21Tt^+` z9=5{Ztq)4)!LjrydnKnm6R8>)II@8CO*n~_4d ze!*y5v(uUA5DusRJ|caaqjLT}M&M;s zB)-Rv*x;b^x#6Ts!f(lXi8_wTcqES1~M@_I3wShmQPWDgNdWW11c0#2f z4TEu#+pj<^{Ck{)hp_`T8~>*B!ywc^iR&tCNB>RKLg!I6@(XI>-*7MnzvV2PgH~W* zYDGnPg?D=80I%1+-{p>D>WrAH8t0KH!wCJb*MKtH7PIGJegQ!5(lN3KMgu- z4h+t=>kWC*WA-NvFb$JK>>0_8JYhvuMU#puOT4*NMOD))tENw`G=4+xnSj(S=4fhn zGbn9=`Di$x6>PN7IMYNlQ&NqciTC&xV(qtjyMCU1pMfJM#^Hb93a|_N$}p zI%eybPUgXwdG?jDJ^f7a`1AI_`~@ES`V$o%GhxCFvwq?i=0riM*;`m<1{aME%C$!3 zp`QsTFEY!@ zBg|{%Kb!YwCE9Cd^Tytac=Kz;Mf+~$Hjn+)(@Q;O%UrK{Z|)N&ZeFaZn3rhYnHO!^ z%^%ySqJ(J8oa#+4DJv^CMb#I~sRez^?1d@j)#cd6^r_tPQK4gWKF!8SJT&g zUz1R$WM;Ab{Nf=V^XrmGvw3M(b9Py{>9D-0eqV2o9s_#!v)3%|^ZeSj_KLNE9&>NqI&*6MZu=vX?=jzQh%!AlK4wqd=<%4hH_b42Uo0@QHz$}| zn`fEIm%24fP8~M>)S=;dr`Beg)?4C2a`S5!XXj+)d1^^SZ-ZM8Kbxuh|SxM0pQ}o9UX4&4R{zGfm47Y#X+s0#p z56m;`4@8?=2Zq>52UF^rYxX(&HJ=7~%%A>#$$at;J1W_#eL0KgYFFl3*<63~Ecunz7 iNv+FD$}6j@Sjjt+XUa+{tGy* Date: Tue, 17 Aug 2010 23:30:15 +0200 Subject: [PATCH 249/301] a couple of l10n related fixes to fpdb.pyw --- pyfpdb/fpdb.pyw | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index f0d73b8f..d3004bdb 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -873,7 +873,7 @@ class fpdb: sys.exit() log = Configuration.get_logger("logging.conf", "fpdb", log_dir=self.config.dir_log) - print _("Logfile is ") + os.path.join(self.config.dir_log, self.config.log_file) + "\n" + print (_("Logfile is %s\n") % os.path.join(self.config.dir_log, self.config.log_file)) if self.config.example_copy: self.info_box(_("Config file") , _("has been created at:\n%s.\n") % self.config.file @@ -901,7 +901,7 @@ class fpdb: self.db = Database.Database(self.config, sql = self.sql) if self.db.get_backend_name() == 'SQLite': # tell sqlite users where the db file is - print _("Connected to SQLite: %(database)s") % {'database':self.db.db_path} + print (_("Connected to SQLite: %s") % self.db.db_path) except Exceptions.FpdbMySQLAccessDenied: err_msg = _("MySQL Server reports: Access denied. Are your permissions set correctly?") except Exceptions.FpdbMySQLNoDatabase: From 9494cf95c02676fa12b0ef9f6bb3172fbff4a5e9 Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Tue, 17 Aug 2010 23:49:30 +0200 Subject: [PATCH 250/301] l10n: fixes some typos in Hungarian translation --- pyfpdb/locale/fpdb-hu_HU.po | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index 63fd9888..e57b8877 100644 --- a/pyfpdb/locale/fpdb-hu_HU.po +++ b/pyfpdb/locale/fpdb-hu_HU.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.904\n" "POT-Creation-Date: 2010-08-17 20:08+CEST\n" -"PO-Revision-Date: 2010-08-17 22:43+0200\n" +"PO-Revision-Date: 2010-08-17 23:49+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -18,7 +18,7 @@ msgstr "" #: Anonymise.py:55 msgid "Could not find file %s" -msgstr "%s fájl nem találhatópd" +msgstr "%s fájl nem található" #: Anonymise.py:61 msgid "Output being written to" @@ -1183,7 +1183,7 @@ msgid "" "Player or tourney not found - please ensure you imported it and selected the " "correct site" msgstr "" -"A játékos vagy averseny nem található - kérlek ellenőrizd, hogy importáltad-" +"A játékos vagy a verseny nem található - kérlek ellenőrizd, hogy importáltad-" "e már, és hogy a helyes termet választottad" #: GuiTourneyViewer.py:119 @@ -1714,7 +1714,7 @@ msgstr "Standard bemenet olvasása ezzel: %s" #: HandHistoryConverter.py:451 msgid "unable to read file with any codec in list!" -msgstr "a file olvasása nem sikerült egyik listabeli kódolással sem" +msgstr "a fájl olvasása nem sikerült egyik listabeli kódolással sem" #: HandHistoryConverter.py:605 msgid "Unable to create output directory %s for HHC!" @@ -1788,11 +1788,11 @@ msgstr " A jelenlegi 0.5-2-szerese" #: Hud.py:180 Hud.py:249 msgid " 0.33 to 3.0 x Current Blinds" -msgstr "A jelenlegi 0.33-3-szorosa" +msgstr " A jelenlegi 0.33-3-szorosa" #: Hud.py:185 Hud.py:254 msgid " 0.1 to 10 x Current Blinds" -msgstr "A jelenlegi 0.1-10-szerese" +msgstr " A jelenlegi 0.1-10-szerese" #: Hud.py:190 Hud.py:259 msgid " All Levels" @@ -1816,7 +1816,7 @@ msgstr " Csak ez" #: Hud.py:213 Hud.py:282 msgid "Since:" -msgstr "Ez óta:" +msgstr "Szűkítés:" #: Hud.py:216 Hud.py:285 msgid " All Time" @@ -2007,7 +2007,7 @@ msgstr "Nem sikerült felismerni a játéktípust innen: '%s'" #: PokerStarsToFpdb.py:221 msgid "Lim_Blinds has no lookup for '%s'" -msgstr "Lim_Blindsban nincs '%s'" +msgstr "Lim_Blinds nem tartalmazza ezt: '%s'" #: PokerStarsToFpdb.py:273 msgid "failed to detect currency" @@ -2023,7 +2023,7 @@ msgstr "hiba a %s statisztika számításakor %s játékosnál: %s" #: Stats.py:104 msgid "Stats.do_stat result = %s" -msgstr "Stats.do_stat eredmény = %s" +msgstr "Stats.do_stat eredménye = %s" #: Stats.py:113 msgid "error: %s" @@ -2261,7 +2261,7 @@ msgstr "nem található a verseny: kihagyás" #: TournamentTracker.py:286 msgid "Could not find tournament %d in hand %d. Skipping.\n" -msgstr "Nem található a %d versenyazonosító a%d leosztásban. Kihagyás.\n" +msgstr "Nem található a %d versenyazonosító a %d leosztásban. Kihagyás.\n" #: TournamentTracker.py:309 msgid "table name %s not found, skipping.\n" @@ -2802,7 +2802,7 @@ msgstr "P" #: fpdb.pyw:838 msgid "Ring _Player Stats (tabulated view)" -msgstr "Kész_pénzes játékos statisztikák (táblázatos nézet)" +msgstr "Kész_pénzes statisztikák (táblázatos nézet)" #: fpdb.pyw:839 msgid "T" @@ -3236,7 +3236,7 @@ msgstr "a zárolást már elvégezte:" #: test_Database.py:50 msgid "DEBUG: Testing variance function" -msgstr "DEBUG: Varianciafügvény tesztelésa" +msgstr "DEBUG: Varianciafügvény tesztelése" #: test_Database.py:51 msgid "DEBUG: result: %s expecting: 0.666666 (result-expecting ~= 0.0): %s" From 351d58b757d2a991caa762b96e1d1a5ac34aec48 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Wed, 18 Aug 2010 00:27:06 +0200 Subject: [PATCH 251/301] update HU .mo file --- pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo | Bin 63088 -> 63100 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo index 3eb282d45d9fa0e832ba09cba500ee6a5221e4c0..d8ce15cbe6a39c34b60de45311d753f1dc766a79 100644 GIT binary patch delta 5659 zcmXZfd0>rK8prWBkq{vXAqgRo5L*Z$q7gf>hKbfzv?5f+lCg#1T5hXoZDWajqQo+~ zS+8l;(y@$v-^RWTouZZ?46QQXpL72Doaemvo^zh(ob%o!|9+uY_X};z4s(}x94BI? zip#BEV>qz~Bk(wu!uvLMW;sqYaU|+<%}}4~HOp~3 z!8FF&j+t1A_!}D^$BM-Fu_Xrm)hx6#YJy=Hg_AJ`*I+d~Y<-IQe)-vsQw5u1EPiaA zJKJpr+(CyjzlcHj48zcOj`Mbb5vY~dL9IL$tK&e_fH@e6KVc2Liuzp9xn@CCF^;$s zmd1(r5$3pQXk{-j1S`xlCR$TbU&uf$Y_#p4ipn$>N8moJhebVs^~&(*-F%c_M^_mBMiou z*5V6ITmc8tUl*G*zmrSDpN?zRyVe5h8>{~!^SKafl(mMnzO}iv1M2X0MZ$V1eGFVP!|Ej1YhT0>A1lt(2HjXEQBunab{&wJRo zw|)K>R7E~Vx4y7|Mn_zO%KWMI4TcdH`RT#QZeHa5VRFUb~rqXwRht#LOh zL%-$bc_?ZDZ7>sE$Zj~dmb=Yfj9+2)`b$*lcAy42hgx9yJjbbp%}|*Q#hN$+BXKM0 zMRVTz8%7gHtaO|r*c5ep+Mp_$g~>R@O(TKEF6@E@sKeB5l_}+LRB2uKc0$wwx1usX zW%XWdCQ3k^g@&k!+M~YT7kQ^SBT5aEX1s0kw6zQSXI-wR{G{u(9s{1R5G>J8F-P;TPz9WlA;;QwTR; zdn~}J*z{|24F_NZ@kA_*xu`R<$v(e|4T%e|I@bBdT<4ycsQbT+h7S+Upa!^LePH$e z*7S#A9M5awSnP?Zcox$!>N{RG_zCK8UO*)lyw3bM#h|vV9qQJ((4YC8=`?g$7N9cw z0R!+lhT;R%KtAhD9BPfjChSQH_Tu?x9<#vf*pWD33$JPHg&OZG)WqMT4()z)`_uT@ zcI0De;-G(+pVb)D^H!)s)Cq@R1`fyLSQMLmZ)}e}h`V45T#s$>F&4w*AIx~IQHj3$ z1ND!kF_wqxp4hfI6Ig zFbwCTUS!|>Nd2|419Ye~XY7Mps6+J{ld$|YQ^KxTn7AK~z(J@AUB%IO2elRH+f72- zQSm{H$Cw@F1=kIAn`XFaXn?s`1as|!)#yk34YooLcEgvb!`5l1nP4LZ6Ys<_coG}o zUDU#>{A3bKw+_X3>35?l?LI}L5{(xJQ9l~iCf=jU+ZnPf7 z`owpz7gpF~G98DS@E8`tjJ@Wt_D3Jx|DiPWARBAq7_5hDP>1FcsuF?!GKZ%u#u3M( zDwd8~&|0jFJ5l%i7B;}r`^;hc6Y2#w(3*>7nBO@;L)YjIj>0FXYm>R(WV8wU>N(EA z)B|RqE2sqq9W-0h(%Kz$mlTkMUQs4X~v6VdC0smv$VIVY%pAP-j1 z5s4cx3Xh{I@(62T%t^E7ol&RzQ&c5#Q16di^u@1GZe3^HZl51QE%+*G!TG34{eh}L z@$+T@Riy5J3Jq1DFKRD8#~@sZ8fdfa--pWV23AAw3+C6Y2976w58uZVsLEBlXby8c zR@ZYJhvQKRy+HSH8ig;Jl8-?xWD=IfwWx*cKxJ^$#+OlN;aAk5e1fg;H7>-I%ck^~ zF^ah474vgl7gLDmV0}Dyh5GB-6~Agua}8WT+yZqgE}$0hJGRGS*WUiq=yXF3uoz3? z2@J=Z7=^E}CPrL0iL^&OPsfSqLJz*Y?lz}$-3{}>t*A_o;V!&_D&4Z1=5q(ohxjzk z!}A!8gZ^U@n2AG)S7Adeb<3QYGz=x~hpLzhRl%ul+c68Z*Go{R`8(7eZ9!$Y2el<< zu{_>I9mc}9&DMpZ79NATZV6Zpo1o4@PYlC;SR2QoKJWgPMk0-Es24>(zJtGE9M=8W zWZVbSiTk4_*oS5DBr2nO*a)Aa4<`KAWSoS$mT9PjmY{CMT4W(^XA2E2;5Jsk@L$Z& zXEN3x9*i-#$hrfS`At+Mo?!$A-!U(uI#`Xk9d^eNs4YB<+NuI@dh@>H>k{;-!~QNiYdfXtw*praft`!d&#I%-vdK18+8VzV-;M9 zZtdA28Xd9lL$k6j*n)UAM&W53iBB;Q2Rt%oWHhQW>#;2!wQ)$kDRlyB!mg+Uv#=X3 zw9g;pQ-AGA&|@=DyfqC~+AQlNOeS80I@PB!2p`(`H7cX;8$V_LwSWxU@foUQYq1FKK}~cRHP9tYLazdI29i+=>VnO17{=iyY>(G56=R>7 z%tvEO;$x`Fl`Qexe4#dKuRru$thw=hpM>Ok4Lq}^%qi?06_pb)vmAJmW-czBb9zN= z&dpVkp0asqUS9n@16OX32#NZ0|E#F&j1k!xL$Welu8gSuuIyw_+^)+-b6#B>?iq9V yQjwh9w_`k?oId1Ltg~z1ronsHW$*oZq^Hx_SPkMj_b}3DZ{DCGp1}pa-v0+jj}LhO delta 5634 zcmXZfd3eoN9>?)t$R?H$K^BQbEQtmc5kW8rN$gt*LoKySZB+~%*D_{w#I6y$XjP5< zxmB_6d+lOsE5leCTVj2lN&A@h$2os^Ugvv$_nvdU-*e9I#_vyy7d$P#eS9TXh~qe6 znT{h9F%-LD861t?I2B9bEcC@iSOQmA*Q36_4a4vZmdD37{v9KUL*|;#C80jobFSlZ z0%&|`J7!}P@%J`9gH?$iV=F8<&v7baC)5NP7=hEU8s=a$p0K_^eLrZvvp=7PayejKRUE0q0{l?!k}nI_h&?3(bO}ur_gf z48+Me2=4^dxyXZuTj<2coctD-VV#hN$)wPmYO3p#>28&5C* z-&lRKOdN{C>92z=nBU2!;YY^}>jP_nwaDtd)O@a-wX(IQHO|`9nuiQusPnvMi{Z$aX!Z0sDbBT8{Ch| z&~uG>9)MavD;$Osklk?ZtZ|vWn6%dH^>S2(x!4-7pcWXML)O?7m01SH;%p4Zov0Vh zRqH#9Bo0|e^)Lx_dy-KV9f6H;hKojh8vC(37NQPQn{Q1iN1;kP5kE|b+S{F|%+Fij zqbBu$v z&l}n}4VB11tbkee`DWDC9YDPo{5J5`#6WDS`#+h62FgY4(HWeLe_(a|`wx^2H)C5Y z#G072(Oknp7)Cq=192JZ%xtyKZ(tMRLX5%M|1#IPCpOUiUrxi52NzKT`hh-5evmdcE z-olEQj~d8htBK27Yhg3?qy_$&=hNI~fw!;&vEPrpoG=|V-g?x;Zq%VYiY`AI_iV>A z3?weK)BLPPqMo-z9ik4HfuG`7Jc}i;=}*QK>_yxKTjC~6#phTO8}2gWwL&G@aToQk zMPmXTr7#D};8tvi`%w#eWA)25XQT@DrN1lcHf+aeJdHZUFR?Cq?>4`#38=%_7c1dH z)HUC@oBC^I$LLULF4_loQHQDs6ES#?DPdRiChm{pa44!mH*f+zKy5{zy(XbtRD2xk zVdOsZg6oF5O|xAzG{8Lc!DaSA4*C*rz}C1Od*EBtVe7EpOt1w5i1%O+p2H-3h+25m z0h3rCYX)|q|0`6bUFT^;(YTE%=yA{toQ7Ih4_t@?P^EokpZgp#83dvx4nZxrK9<8I z)WSMi2cRY#kBf08lCaCEbl4oWDyV_}ggOhoP^BJXvKt zvPVp&8K?;lU~%kv)Ew3x=&AePpN1X`##kJV@tB1=G-pwjc#k?fe#gu;tBR^vXVikS zu{v%=-Sey12)&M*!`2+*h;UB@r+KBi)?6DFf|I8e`V0VbU^1D!)H z&^cwcCf=HgI?R2r7-m>UqYmLX)UEmsT~Rc4(@@5@u_6YXHn$=MwFM2VN$5-53X`!t zw!wwSUOK;^DsdO5<6CTrlg^k!yccT`dz>||=-9K=UjwAmF&WojXAJq-{2Go#mG}_q zjplpKymEV>zPAo_W`4s4SnRyxRKZ026w^^#unVVRA*wQCE*Pg>p#Ej(SU^WOuE7XA zfU3wHtb>6U&7QYHo$j%yO3XyPKQhq^vr*%%MxB{0sBv;J7@uJ^^toh=b?vApj85gIDV zHLQt6s1-+DHJQ}L0OAB2r=eEf6}7;0)ZrU~X*dcaF&9n&1=9$Bnh?R*yLtowh zX*BxN@ijKXeAFv6=9($_5Y$BDkQF=AY`ny}&br+`KY&{BWmKjQP?dU#s({D8%~pp> z-Ty{3RDqrtf?uIOE=3Kr!S?S#WtNB0_zr7e#4mgYQ!pKmq0T_qb#s_&V2qyQ6da36 z=oz}k(kP;#l7D`~EMy`E60bxpWCtpP!#2K%ItzDEhw>4&##fkyjc%IKU&IJv?_1{Q zx+dzqF$)v$%q{A#Yv*y>oaPAphPWZ>R-8jEpa9#V^XrHIG&=221I)#8cnm}E8b)9t z#$v!7lSp&a^X@nmN242`-*K7Kx$ds{;1*P-NAM6{LX~dOf6V9hp(pW4T!cSkB=);! z5}1yoiL+7H(f7VNGs#$yI2~27(WnYeaoLU;sJ)(tI?Xw#J=%!Ma2IMzPGe>K6?GVk zP+RB!U$gLF)OCx-P^^zS3!ShMrej?kgG$u3mPP{_+fV~Nz=rq&Yh%p^CgV@AA8~Kg z1bZ+TkE1fWgGu-VJu&*B$+$MA5htS(nuod-E0Kk`oQ*WJfa_QV{U4d1&${>#aeu6a znbsYs%&(y;k&j{M^VqzIs$(>9Gwg{&QCoNrwN<}iDwh0B^RoZlX()q#VhU!VFaC;g z_y{#YNWLjyA}aIFs4W?R%E*N}w3!%$+fd`2!f3pN@%TS%jCG&b`#*w)J}?{oa0hCD zeHe~;*aBapGEaDFD%2K}iKkc(VGOa?GxNQ=s8in&E8uX{8E|0@T#7F3*#R0Iun4uX zwCCn``)?RQd=kIF$5;mYyf9~EB&sssVk#cCv0s5Hbu?{@N4I zLNibeYci^|1FaKL3(G{E>XYb?_ig+Nm688T^OsTrRwrJD>OW}Xht^WB%pbjRuh@Sr zpoi_4geuue^ub-Ii4LL$x`2uJ7Ig;dzBUU=!{)?;u{N&9ws-~GVfY)9`3P)9d>BPZBzyYHoMhzeJ*%$7lLpMvfgU+<|^&N3EXZ+EPBS*XYUw+}?(|U5mQTO-(?%r2x VdAMigJr6HFJY%qX;%l#B{|7$4{;~i7 From 3f0f421c0d0435f4978246f97f6ca68357548808 Mon Sep 17 00:00:00 2001 From: Worros Date: Wed, 18 Aug 2010 13:12:11 +0800 Subject: [PATCH 252/301] FTP: Make FTP.fr hand histories parse. Had to adjust the currency character match, and the tablename which required \u2013 or 'En Dash' Works for the 5 hand sample provided. --- pyfpdb/FulltiltToFpdb.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/pyfpdb/FulltiltToFpdb.py b/pyfpdb/FulltiltToFpdb.py index 179824ac..4d7a7b62 100755 --- a/pyfpdb/FulltiltToFpdb.py +++ b/pyfpdb/FulltiltToFpdb.py @@ -32,12 +32,13 @@ class Fulltilt(HandHistoryConverter): siteId = 1 # Needs to match id entry in Sites database substitutions = { - 'LEGAL_ISO' : "USD|EUR|GBP|CAD|FPP", # legal ISO currency codes - 'LS' : "\$|\xe2\x82\xac|" # legal currency symbols - Euro(cp1252, utf-8) + 'LEGAL_ISO' : "USD|EUR|GBP|CAD|FPP", # legal ISO currency codes + 'LS' : u"\$|\u20AC|\xe2\x82\xac|", # legal currency symbols - Euro(cp1252, utf-8) + 'TAB' : u"-\u2013\s\da-zA-Z" } # Static regexes - re_GameInfo = re.compile('''.*\#(?P[0-9]+):\s + re_GameInfo = re.compile(u'''.*\#(?P[0-9]+):\s (?:(?P.+)\s\((?P\d+)\),\s)? .+ -\s(?P[%(LS)s]|)? @@ -54,7 +55,7 @@ class Fulltilt(HandHistoryConverter): (?:(?P.+)\s\((?P\d+)\),\s)? (Table|Match)\s (?PPlay\sChip\s|PC)? - (?P

[-\s\da-zA-Z]+)\s + (?P
[%(TAB)s]+)\s (\((?P.+)\)\s)?-\s [%(LS)s]?(?P[.0-9]+)/[%(LS)s]?(?P[.0-9]+)\s(Ante\s[%(LS)s]?(?P[.0-9]+)\s)?-\s [%(LS)s]?(?P[.0-9]+\sCap\s)? @@ -168,12 +169,14 @@ class Fulltilt(HandHistoryConverter): # Full Tilt Poker Game #10773265574: Table Butte (6 max) - $0.01/$0.02 - Pot Limit Hold'em - 21:33:46 ET - 2009/02/21 # Full Tilt Poker Game #9403951181: Table CR - tay - $0.05/$0.10 - No Limit Hold'em - 9:40:20 ET - 2008/12/09 # Full Tilt Poker Game #10809877615: Table Danville - $0.50/$1 Ante $0.10 - Limit Razz - 21:47:27 ET - 2009/02/23 + # Full Tilt Poker.fr Game #23057874034: Table Douai–Lens (6 max) - €0.01/€0.02 - No Limit Hold'em - 21:59:17 CET - 2010/08/13 info = {'type':'ring'} m = self.re_GameInfo.search(handText) - if not m: + if not m: return None mg = m.groupdict() + # translations from captured groups to our info strings limits = { 'No Limit':'nl', 'Pot Limit':'pl', 'Limit':'fl' } games = { # base, category @@ -205,6 +208,7 @@ class Fulltilt(HandHistoryConverter): if m is None: logging.info("Didn't match re_HandInfo") logging.info(hand.handText) + # Should this throw an exception? - CG return None hand.handid = m.group('HID') hand.tablename = m.group('TABLE') From 8b49f46d1cd5f85831db5583a8cc4bcba68c2bb6 Mon Sep 17 00:00:00 2001 From: Worros Date: Wed, 18 Aug 2010 13:17:42 +0800 Subject: [PATCH 253/301] HHC: Correct error count for unmatched gametype regex --- pyfpdb/HandHistoryConverter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index eb1d7de8..34619c40 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -272,8 +272,8 @@ which it expects to find at self.re_TailSplitHands -- see for e.g. Everleaf.py. l = None if gametype is None: gametype = "unmatched" - # TODO: not ideal, just trying to not error. - # TODO: Need to count failed hands. + # TODO: not ideal, just trying to not error. Throw ParseException? + self.numErrors += 1 else: # See if gametype is supported. type = gametype['type'] From 4d0e438de1cfe2da530a5d8dd677b63d793e78fe Mon Sep 17 00:00:00 2001 From: Worros Date: Wed, 18 Aug 2010 16:36:16 +0800 Subject: [PATCH 254/301] Regression: Add FTP.fr hand history for testing. --- ...UR-0.01-0.02.201008.Weird.table.character.txt | Bin 0 -> 1900 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pyfpdb/regression-test-files/cash/FTP/Flop/NLHE-6max-EUR-0.01-0.02.201008.Weird.table.character.txt diff --git a/pyfpdb/regression-test-files/cash/FTP/Flop/NLHE-6max-EUR-0.01-0.02.201008.Weird.table.character.txt b/pyfpdb/regression-test-files/cash/FTP/Flop/NLHE-6max-EUR-0.01-0.02.201008.Weird.table.character.txt new file mode 100644 index 0000000000000000000000000000000000000000..6330c44b5e1dd83c621076a473cbac0572d0228f GIT binary patch literal 1900 zcmbtU%T60X5Ug{gobm%BaR8zO>|JaiH^d`3I0?e$5Jfqx*Ctr782KTHluzOtlT^*@ zcpu}9P@>g($J5i*)m=UP`_~zkxaDIoz=YogSLc}G24l>ygDd_TyhnnJI|dtw(5gHK z{MW`ii;!SQ44pe6#*$tWyfQuR++oh$Ep+*tasLt9T)pM{WLk_PjNR2b%59&BV$dT> z##h`vaOV~yY!WlePenF<2ZvR+Q0)=-r|h1xzN&f|Pwdv= z4TM_XU57}u8K2ydu^c6R85HqjwMy~p6=usbiW?!9hb&MliuwVOJJF9q} zSWkB!gsfXp^oN*#WoKOTdx#X@ET8fTRr88|>eYE*Rev>G)l1D*_05d+R-R*NTgjIF-vRp;w zno-@9^C+yMtPfUcar51%juHp;vYRZO{HA#A`?$nMKGOXQPZp{Vtgm|6b*69%6oa4q zf5D739i8PllVn7WBj&wndHEV`t*Wki)bHo|3G**VO_Qg5Ycz{f+pU`3DS0}Lsx^GW zQ(g_(tGPGLtM$`C5q;OWSgMP5)G39UXVhZKDN&8pH0i?0@qcmFPs!)2AlCl<1A>Mj AGynhq literal 0 HcmV?d00001 From f19afd656d460b4bbe9256382511aef4842ff37e Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 02:22:42 +0200 Subject: [PATCH 255/301] rename dump result folder --- pyfpdb/regression-test-files/{results => dumps}/0001_empty_DB.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename pyfpdb/regression-test-files/{results => dumps}/0001_empty_DB.txt (100%) diff --git a/pyfpdb/regression-test-files/results/0001_empty_DB.txt b/pyfpdb/regression-test-files/dumps/0001_empty_DB.txt similarity index 100% rename from pyfpdb/regression-test-files/results/0001_empty_DB.txt rename to pyfpdb/regression-test-files/dumps/0001_empty_DB.txt From c6180340550895dae1ffd8149fbc0598288f8b58 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 02:26:55 +0200 Subject: [PATCH 256/301] add new testfile, with expected dumpdiff from empty db --- ...-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt | 40 + ...-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt | 1627 +++++++++++++++++ 2 files changed, 1667 insertions(+) create mode 100644 pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt create mode 100644 pyfpdb/regression-test-files/dumps/0002_diff_after_cash-Stars-Flop-LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt diff --git a/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt b/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt new file mode 100644 index 00000000..d06de0e5 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt @@ -0,0 +1,40 @@ +PokerStars Game #46290540537: Hold'em Limit ($0.05/$0.10 USD) - 2010/07/03 14:46:30 CET [2010/07/03 8:46:30 ET] +Table 'Elektra II' 10-max Seat #6 is the button +Seat 1: steffen780 ($2.77 in chips) +Seat 2: ialexiv ($1.93 in chips) +Seat 4: seregaserg ($2.80 in chips) +Seat 5: GREEN373 ($2.38 in chips) +Seat 6: Swann99 ($2.93 in chips) +Seat 7: ToolTheSheep ($1.22 in chips) +Seat 9: bigsergv ($2.26 in chips) +Seat 10: garikoitz_22 ($1.69 in chips) +ToolTheSheep: posts small blind $0.02 +Tora-Usagi: is sitting out +bigsergv: posts big blind $0.05 +Ted the Mad: sits out +*** HOLE CARDS *** +Dealt to steffen780 [8h 3c] +garikoitz_22: folds +steffen780: folds +ialexiv: folds +seregaserg: folds +GREEN373: folds +Swann99: folds +ToolTheSheep: folds +Uncalled bet ($0.03) returned to bigsergv +bigsergv collected $0.04 from pot +bigsergv: doesn't show hand +*** SUMMARY *** +Total pot $0.04 | Rake $0 +Seat 1: steffen780 folded before Flop (didn't bet) +Seat 2: ialexiv folded before Flop (didn't bet) +Seat 4: seregaserg folded before Flop (didn't bet) +Seat 5: GREEN373 folded before Flop (didn't bet) +Seat 6: Swann99 (button) folded before Flop (didn't bet) +Seat 7: ToolTheSheep (small blind) folded before Flop +Seat 9: bigsergv (big blind) collected ($0.04) +Seat 10: garikoitz_22 folded before Flop (didn't bet) + + + + diff --git a/pyfpdb/regression-test-files/dumps/0002_diff_after_cash-Stars-Flop-LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt b/pyfpdb/regression-test-files/dumps/0002_diff_after_cash-Stars-Flop-LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt new file mode 100644 index 00000000..e198c8ce --- /dev/null +++ b/pyfpdb/regression-test-files/dumps/0002_diff_after_cash-Stars-Flop-LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt @@ -0,0 +1,1627 @@ +17c17,29 +< empty table +--- +> id=1 +> siteId=2 +> currency=USD +> type=ring +> base=hold +> category=holdem +> limitType=fl +> hiLo=h +> smallBlind=2 +> bigBlind=5 +> smallBet=5 +> bigBet=10 +> +22c34,68 +< empty table +--- +> id=1 +> tableName=Elektra II +> siteHandNo=46290540537 +> tourneyId=None +> gametypeId=1 +> startTime=2010-07-03 12:46:30+00:00 +> importTime=2010-08-11 10:06:55.759561 +> seats=8 +> maxSeats=10 +> rush=None +> boardcard1=0 +> boardcard2=0 +> boardcard3=0 +> boardcard4=0 +> boardcard5=0 +> texture=None +> playersVpi=0 +> playersAtStreet1=0 +> playersAtStreet2=0 +> playersAtStreet3=0 +> playersAtStreet4=0 +> playersAtShowdown=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> street1Pot=0 +> street2Pot=0 +> street3Pot=0 +> street4Pot=0 +> showdownPot=0 +> comment=None +> commentTs=None +> +32c78,893 +< empty table +--- +> id=1 +> handId=1 +> playerId=8 +> startCash=169 +> position=5 +> seatNo=10 +> sitout=0 +> wentAllInOnStreet=None +> card1=0 +> card2=0 +> card3=0 +> card4=0 +> card5=0 +> card6=0 +> card7=0 +> startCards=0 +> ante=None +> winnings=0 +> rake=0 +> totalProfit=0 +> comment=None +> commentTs=None +> tourneysPlayersId=None +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=0 +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=0 +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> actionString=None +> +> id=2 +> handId=1 +> playerId=3 +> startCash=280 +> position=2 +> seatNo=4 +> sitout=0 +> wentAllInOnStreet=None +> card1=0 +> card2=0 +> card3=0 +> card4=0 +> card5=0 +> card6=0 +> card7=0 +> startCards=0 +> ante=None +> winnings=0 +> rake=0 +> totalProfit=0 +> comment=None +> commentTs=None +> tourneysPlayersId=None +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=0 +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=0 +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> actionString=None +> +> id=3 +> handId=1 +> playerId=6 +> startCash=122 +> position=S +> seatNo=7 +> sitout=0 +> wentAllInOnStreet=None +> card1=0 +> card2=0 +> card3=0 +> card4=0 +> card5=0 +> card6=0 +> card7=0 +> startCards=0 +> ante=None +> winnings=0 +> rake=0 +> totalProfit=-2 +> comment=None +> commentTs=None +> tourneysPlayersId=None +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=0 +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=0 +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> actionString=None +> +> id=4 +> handId=1 +> playerId=5 +> startCash=293 +> position=0 +> seatNo=6 +> sitout=0 +> wentAllInOnStreet=None +> card1=0 +> card2=0 +> card3=0 +> card4=0 +> card5=0 +> card6=0 +> card7=0 +> startCards=0 +> ante=None +> winnings=0 +> rake=0 +> totalProfit=0 +> comment=None +> commentTs=None +> tourneysPlayersId=None +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=0 +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=0 +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> actionString=None +> +> id=5 +> handId=1 +> playerId=7 +> startCash=226 +> position=B +> seatNo=9 +> sitout=0 +> wentAllInOnStreet=None +> card1=0 +> card2=0 +> card3=0 +> card4=0 +> card5=0 +> card6=0 +> card7=0 +> startCards=0 +> ante=None +> winnings=4 +> rake=0 +> totalProfit=2 +> comment=None +> commentTs=None +> tourneysPlayersId=None +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=0 +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=0 +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=0 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> actionString=None +> +> id=6 +> handId=1 +> playerId=1 +> startCash=277 +> position=4 +> seatNo=1 +> sitout=0 +> wentAllInOnStreet=None +> card1=7 +> card2=28 +> card3=0 +> card4=0 +> card5=0 +> card6=0 +> card7=0 +> startCards=20 +> ante=None +> winnings=0 +> rake=0 +> totalProfit=0 +> comment=None +> commentTs=None +> tourneysPlayersId=None +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=0 +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=0 +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> actionString=None +> +> id=7 +> handId=1 +> playerId=4 +> startCash=238 +> position=1 +> seatNo=5 +> sitout=0 +> wentAllInOnStreet=None +> card1=0 +> card2=0 +> card3=0 +> card4=0 +> card5=0 +> card6=0 +> card7=0 +> startCards=0 +> ante=None +> winnings=0 +> rake=0 +> totalProfit=0 +> comment=None +> commentTs=None +> tourneysPlayersId=None +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=0 +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=0 +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> actionString=None +> +> id=8 +> handId=1 +> playerId=2 +> startCash=193 +> position=3 +> seatNo=2 +> sitout=0 +> wentAllInOnStreet=None +> card1=0 +> card2=0 +> card3=0 +> card4=0 +> card5=0 +> card6=0 +> card7=0 +> startCards=0 +> ante=None +> winnings=0 +> rake=0 +> totalProfit=0 +> comment=None +> commentTs=None +> tourneysPlayersId=None +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=0 +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=0 +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> actionString=None +> +35c896 +< Table HudCache +--- +> Table HudCache -> haven't checked this table +37c898,1593 +< empty table +--- +> id=1 +> gametypeId=1 +> playerId=1 +> activeSeats=8 +> position=M +> tourneyTypeId=None +> styleKey=d100703 +> HDs=1 +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=None +> wonWhenSeenStreet3=None +> wonWhenSeenStreet4=None +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=None +> street0_4BDone=None +> other3BStreet0=None +> other4BStreet0=None +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=None +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> totalProfit=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> +> id=2 +> gametypeId=1 +> playerId=2 +> activeSeats=8 +> position=M +> tourneyTypeId=None +> styleKey=d100703 +> HDs=1 +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=None +> wonWhenSeenStreet3=None +> wonWhenSeenStreet4=None +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=None +> street0_4BDone=None +> other3BStreet0=None +> other4BStreet0=None +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=None +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> totalProfit=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> +> id=3 +> gametypeId=1 +> playerId=3 +> activeSeats=8 +> position=M +> tourneyTypeId=None +> styleKey=d100703 +> HDs=1 +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=None +> wonWhenSeenStreet3=None +> wonWhenSeenStreet4=None +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=None +> street0_4BDone=None +> other3BStreet0=None +> other4BStreet0=None +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=None +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> totalProfit=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> +> id=4 +> gametypeId=1 +> playerId=4 +> activeSeats=8 +> position=C +> tourneyTypeId=None +> styleKey=d100703 +> HDs=1 +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=None +> wonWhenSeenStreet3=None +> wonWhenSeenStreet4=None +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=None +> street0_4BDone=None +> other3BStreet0=None +> other4BStreet0=None +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=None +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> totalProfit=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> +> id=5 +> gametypeId=1 +> playerId=5 +> activeSeats=8 +> position=D +> tourneyTypeId=None +> styleKey=d100703 +> HDs=1 +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=None +> wonWhenSeenStreet3=None +> wonWhenSeenStreet4=None +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=None +> street0_4BDone=None +> other3BStreet0=None +> other4BStreet0=None +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=None +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> totalProfit=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> +> id=6 +> gametypeId=1 +> playerId=6 +> activeSeats=8 +> position=S +> tourneyTypeId=None +> styleKey=d100703 +> HDs=1 +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=None +> wonWhenSeenStreet3=None +> wonWhenSeenStreet4=None +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=None +> street0_4BDone=None +> other3BStreet0=None +> other4BStreet0=None +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=None +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> totalProfit=-2 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> +> id=7 +> gametypeId=1 +> playerId=7 +> activeSeats=8 +> position=B +> tourneyTypeId=None +> styleKey=d100703 +> HDs=1 +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=None +> wonWhenSeenStreet3=None +> wonWhenSeenStreet4=None +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=None +> street0_4BDone=None +> other3BStreet0=None +> other4BStreet0=None +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=None +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=0 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> totalProfit=2 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> +> id=8 +> gametypeId=1 +> playerId=8 +> activeSeats=8 +> position=E +> tourneyTypeId=None +> styleKey=d100703 +> HDs=1 +> wonWhenSeenStreet1=0.0 +> wonWhenSeenStreet2=None +> wonWhenSeenStreet3=None +> wonWhenSeenStreet4=None +> wonAtSD=0.0 +> street0VPI=0 +> street0Aggr=0 +> street0_3BChance=0 +> street0_3BDone=0 +> street0_4BChance=None +> street0_4BDone=None +> other3BStreet0=None +> other4BStreet0=None +> street1Seen=0 +> street2Seen=0 +> street3Seen=0 +> street4Seen=0 +> sawShowdown=0 +> street1Aggr=0 +> street2Aggr=0 +> street3Aggr=0 +> street4Aggr=0 +> otherRaisedStreet0=None +> otherRaisedStreet1=0 +> otherRaisedStreet2=0 +> otherRaisedStreet3=0 +> otherRaisedStreet4=0 +> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet1=0 +> foldToOtherRaisedStreet2=0 +> foldToOtherRaisedStreet3=0 +> foldToOtherRaisedStreet4=0 +> raiseFirstInChance=1 +> raisedFirstIn=0 +> foldBbToStealChance=0 +> foldedBbToSteal=0 +> foldSbToStealChance=0 +> foldedSbToSteal=0 +> street1CBChance=0 +> street1CBDone=0 +> street2CBChance=0 +> street2CBDone=0 +> street3CBChance=0 +> street3CBDone=0 +> street4CBChance=0 +> street4CBDone=0 +> foldToStreet1CBChance=0 +> foldToStreet1CBDone=0 +> foldToStreet2CBChance=0 +> foldToStreet2CBDone=0 +> foldToStreet3CBChance=0 +> foldToStreet3CBDone=0 +> foldToStreet4CBChance=0 +> foldToStreet4CBDone=0 +> totalProfit=0 +> street1CheckCallRaiseChance=0 +> street1CheckCallRaiseDone=0 +> street2CheckCallRaiseChance=0 +> street2CheckCallRaiseDone=0 +> street3CheckCallRaiseChance=0 +> street3CheckCallRaiseDone=0 +> street4CheckCallRaiseChance=0 +> street4CheckCallRaiseDone=0 +> street0Calls=0 +> street1Calls=0 +> street2Calls=0 +> street3Calls=0 +> street4Calls=0 +> street0Bets=0 +> street1Bets=0 +> street2Bets=0 +> street3Bets=0 +> street4Bets=0 +> street0Raises=0 +> street1Raises=0 +> street2Raises=0 +> street3Raises=0 +> street4Raises=0 +> +42c1598,1645 +< empty table +--- +> id=1 +> name=steffen780 +> siteId=2 +> comment=None +> commentTs=None +> +> id=2 +> name=ialexiv +> siteId=2 +> comment=None +> commentTs=None +> +> id=3 +> name=seregaserg +> siteId=2 +> comment=None +> commentTs=None +> +> id=4 +> name=GREEN373 +> siteId=2 +> comment=None +> commentTs=None +> +> id=5 +> name=Swann99 +> siteId=2 +> comment=None +> commentTs=None +> +> id=6 +> name=ToolTheSheep +> siteId=2 +> comment=None +> commentTs=None +> +> id=7 +> name=bigsergv +> siteId=2 +> comment=None +> commentTs=None +> +> id=8 +> name=garikoitz_22 +> siteId=2 +> comment=None +> commentTs=None +> From d5fb0b3c3697fdf86dbcaf72054756b632e88d5d Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 03:55:12 +0200 Subject: [PATCH 257/301] add wonWhenSeenStreet2-4 to DerivedStats' unimplemented section, store 0.0 by default --- pyfpdb/Database.py | 3 +++ pyfpdb/DerivedStats.py | 3 +++ pyfpdb/SQL.py | 5 ++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 9204f271..cfcf856c 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -1673,6 +1673,9 @@ class Database: pdata[p]['street3CBDone'], pdata[p]['street4CBDone'], pdata[p]['wonWhenSeenStreet1'], + pdata[p]['wonWhenSeenStreet2'], + pdata[p]['wonWhenSeenStreet3'], + pdata[p]['wonWhenSeenStreet4'], pdata[p]['street0Calls'], pdata[p]['street1Calls'], pdata[p]['street2Calls'], diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index 938e7b3b..eb6b6eda 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -77,6 +77,9 @@ class DerivedStats(): for i in range(1,5): self.handsplayers[player[1]]['foldToStreet%dCBChance' %i] = False self.handsplayers[player[1]]['foldToStreet%dCBDone' %i] = False + self.handsplayers[player[1]]['wonWhenSeenStreet2'] = 0.0 + self.handsplayers[player[1]]['wonWhenSeenStreet3'] = 0.0 + self.handsplayers[player[1]]['wonWhenSeenStreet4'] = 0.0 self.assembleHands(self.hand) self.assembleHandsPlayers(self.hand) diff --git a/pyfpdb/SQL.py b/pyfpdb/SQL.py index 7f8c4108..2d42587f 100644 --- a/pyfpdb/SQL.py +++ b/pyfpdb/SQL.py @@ -4021,6 +4021,9 @@ class Sql: street3CBDone, street4CBDone, wonWhenSeenStreet1, + wonWhenSeenStreet2, + wonWhenSeenStreet3, + wonWhenSeenStreet4, street0Calls, street1Calls, street2Calls, @@ -4090,7 +4093,7 @@ class Sql: %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, - %s + %s, %s, %s, %s )""" ################################ From 8aecf117bb8f33014c72e4277a45606be479a0ae Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 04:01:44 +0200 Subject: [PATCH 258/301] add otherRaisedStreet0 and foldToOtherRaisedStreet0 with defualt false --- pyfpdb/Database.py | 2 ++ pyfpdb/DerivedStats.py | 2 ++ pyfpdb/SQL.py | 5 ++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index cfcf856c..ec139c52 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -1691,10 +1691,12 @@ class Database: pdata[p]['startCards'], pdata[p]['street0_3BChance'], pdata[p]['street0_3BDone'], + pdata[p]['otherRaisedStreet0'], pdata[p]['otherRaisedStreet1'], pdata[p]['otherRaisedStreet2'], pdata[p]['otherRaisedStreet3'], pdata[p]['otherRaisedStreet4'], + pdata[p]['foldToOtherRaisedStreet0'], pdata[p]['foldToOtherRaisedStreet1'], pdata[p]['foldToOtherRaisedStreet2'], pdata[p]['foldToOtherRaisedStreet3'], diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index eb6b6eda..4c896114 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -74,6 +74,8 @@ class DerivedStats(): self.handsplayers[player[1]]['foldToOtherRaisedStreet%d' %i] = False #FIXME - Everything below this point is incomplete. + self.handsplayers[player[1]]['otherRaisedStreet0'] = False + self.handsplayers[player[1]]['foldToOtherRaisedStreet0'] = False for i in range(1,5): self.handsplayers[player[1]]['foldToStreet%dCBChance' %i] = False self.handsplayers[player[1]]['foldToStreet%dCBDone' %i] = False diff --git a/pyfpdb/SQL.py b/pyfpdb/SQL.py index 2d42587f..be5f6e99 100644 --- a/pyfpdb/SQL.py +++ b/pyfpdb/SQL.py @@ -4039,10 +4039,12 @@ class Sql: startCards, street0_3BChance, street0_3BDone, + otherRaisedStreet0, otherRaisedStreet1, otherRaisedStreet2, otherRaisedStreet3, otherRaisedStreet4, + foldToOtherRaisedStreet0, foldToOtherRaisedStreet1, foldToOtherRaisedStreet2, foldToOtherRaisedStreet3, @@ -4093,7 +4095,8 @@ class Sql: %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, - %s, %s, %s, %s + %s, %s, %s, %s, %s, + %s )""" ################################ From 69c1c41b36e1acffc875646774e94610da138f82 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 04:09:24 +0200 Subject: [PATCH 259/301] add these stats to DB/DerivedStats/SQL: street0_4BChance/Done, other3/4BStreet0 --- pyfpdb/Database.py | 4 ++++ pyfpdb/DerivedStats.py | 6 ++++-- pyfpdb/SQL.py | 6 +++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index ec139c52..cd18147f 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -1691,6 +1691,10 @@ class Database: pdata[p]['startCards'], pdata[p]['street0_3BChance'], pdata[p]['street0_3BDone'], + pdata[p]['street0_4BChance'], + pdata[p]['street0_4BDone'], + pdata[p]['other3BStreet0'], + pdata[p]['other4BStreet0'], pdata[p]['otherRaisedStreet0'], pdata[p]['otherRaisedStreet1'], pdata[p]['otherRaisedStreet2'], diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index 4c896114..dde8ecca 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -51,8 +51,8 @@ class DerivedStats(): self.handsplayers[player[1]]['position'] = 2 self.handsplayers[player[1]]['street0_3BChance'] = False self.handsplayers[player[1]]['street0_3BDone'] = False - self.handsplayers[player[1]]['street0_4BChance'] = False - self.handsplayers[player[1]]['street0_4BDone'] = False + self.handsplayers[player[1]]['street0_4BChance'] = False #FIXME: this might not actually be implemented + self.handsplayers[player[1]]['street0_4BDone'] = False #FIXME: this might not actually be implemented self.handsplayers[player[1]]['raiseFirstInChance'] = False self.handsplayers[player[1]]['raisedFirstIn'] = False self.handsplayers[player[1]]['foldBbToStealChance'] = False @@ -74,6 +74,8 @@ class DerivedStats(): self.handsplayers[player[1]]['foldToOtherRaisedStreet%d' %i] = False #FIXME - Everything below this point is incomplete. + self.handsplayers[player[1]]['other3BStreet0'] = False + self.handsplayers[player[1]]['other4BStreet0'] = False self.handsplayers[player[1]]['otherRaisedStreet0'] = False self.handsplayers[player[1]]['foldToOtherRaisedStreet0'] = False for i in range(1,5): diff --git a/pyfpdb/SQL.py b/pyfpdb/SQL.py index be5f6e99..79b27ce7 100644 --- a/pyfpdb/SQL.py +++ b/pyfpdb/SQL.py @@ -4039,6 +4039,10 @@ class Sql: startCards, street0_3BChance, street0_3BDone, + street0_4BChance, + street0_4BDone, + other3BStreet0, + other4BStreet0, otherRaisedStreet0, otherRaisedStreet1, otherRaisedStreet2, @@ -4096,7 +4100,7 @@ class Sql: %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, - %s + %s, %s, %s, %s, %s )""" ################################ From 2a673b8975a2a7d4e4cfca38544a94cca369ed1b Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 04:24:38 +0200 Subject: [PATCH 260/301] assume bb=SB and BB=2*SB and store accordingly --- pyfpdb/Database.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index cd18147f..354536eb 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -1886,7 +1886,8 @@ class Database: elif game['category'] in ['razz','27_3draw','badugi']: hilo = "l" tmp = self.insertGameTypes( (siteid, game['currency'], game['type'], game['base'], game['category'], game['limitType'], hilo, - int(Decimal(game['sb'])*100), int(Decimal(game['bb'])*100), 0, 0) ) + int(Decimal(game['sb'])*100), int(Decimal(game['bb'])*100), + int(Decimal(game['bb'])*100), int(Decimal(game['bb'])*200)) ) #FIXME: recognise currency return tmp[0] From 9dafddff4911c7b7d44ae1629deb39051ebc092c Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 05:58:22 +0200 Subject: [PATCH 261/301] add another test file --- .../LHE-USD-STT-5-20100607.allInPreflop.txt | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 pyfpdb/regression-test-files/tour/Stars/Flop/LHE-USD-STT-5-20100607.allInPreflop.txt diff --git a/pyfpdb/regression-test-files/tour/Stars/Flop/LHE-USD-STT-5-20100607.allInPreflop.txt b/pyfpdb/regression-test-files/tour/Stars/Flop/LHE-USD-STT-5-20100607.allInPreflop.txt new file mode 100644 index 00000000..9a35a552 --- /dev/null +++ b/pyfpdb/regression-test-files/tour/Stars/Flop/LHE-USD-STT-5-20100607.allInPreflop.txt @@ -0,0 +1,60 @@ +PokerStars Game #45201040897: Tournament #280631121, $5.00+$0.50 USD Hold'em Limit - Level III (50/100) - 2010/06/07 16:14:48 ET +Table '280631121 1' 9-max Seat #2 is the button +Seat 1: Slush11 (110 in chips) +Seat 2: zsoccerino (1430 in chips) is sitting out +Seat 3: 101ripcord (1250 in chips) +Seat 4: Lawwill (3300 in chips) +Seat 5: nakamurov (1890 in chips) +Seat 6: 67_fredf_67 (1425 in chips) +Seat 7: NICk.nico333 (1960 in chips) +Seat 8: steffen780 (1745 in chips) +Seat 9: PORCHES996 (390 in chips) +101ripcord: posts small blind 25 +Lawwill: posts big blind 50 +*** HOLE CARDS *** +Dealt to steffen780 [Td Th] +nakamurov: folds +67_fredf_67: calls 50 +NICk.nico333: folds +steffen780: raises 50 to 100 +PORCHES996: folds +Slush11: raises 10 to 110 and is all-in +zsoccerino: folds +101ripcord: calls 85 +Lawwill: folds +67_fredf_67: calls 60 +steffen780: calls 10 +*** FLOP *** [2c Qh 6c] +101ripcord: checks +67_fredf_67: checks +steffen780: bets 50 +101ripcord: calls 50 +67_fredf_67: folds +*** TURN *** [2c Qh 6c] [9s] +101ripcord: checks +steffen780: bets 100 +101ripcord: calls 100 +*** RIVER *** [2c Qh 6c 9s] [4d] +101ripcord: bets 100 +steffen780: calls 100 +*** SHOW DOWN *** +101ripcord: shows [9c 4c] (two pair, Nines and Fours) +steffen780: mucks hand +101ripcord collected 500 from side pot +Slush11: mucks hand +101ripcord collected 490 from main pot +*** SUMMARY *** +Total pot 990 Main pot 490. Side pot 500. | Rake 0 +Board [2c Qh 6c 9s 4d] +Seat 1: Slush11 mucked [9d As] +Seat 2: zsoccerino (button) folded before Flop (didn't bet) +Seat 3: 101ripcord (small blind) showed [9c 4c] and won (990) with two pair, Nines and Fours +Seat 4: Lawwill (big blind) folded before Flop +Seat 5: nakamurov folded before Flop (didn't bet) +Seat 6: 67_fredf_67 folded on the Flop +Seat 7: NICk.nico333 folded before Flop (didn't bet) +Seat 8: steffen780 mucked [Td Th] +Seat 9: PORCHES996 folded before Flop (didn't bet) + + + From 13ce5117c8d6793fcd76895af606849d32332797 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 05:59:00 +0200 Subject: [PATCH 262/301] add wonWhenSeenStreet2-4 storing to HudCache --- pyfpdb/SQL.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pyfpdb/SQL.py b/pyfpdb/SQL.py index 79b27ce7..884c6bff 100644 --- a/pyfpdb/SQL.py +++ b/pyfpdb/SQL.py @@ -3057,6 +3057,9 @@ class Sql: ,styleKey ,HDs ,wonWhenSeenStreet1 + ,wonWhenSeenStreet2 + ,wonWhenSeenStreet3 + ,wonWhenSeenStreet4 ,wonAtSD ,street0VPI ,street0Aggr @@ -3147,6 +3150,9 @@ class Sql: ,date_format(h.startTime, 'd%y%m%d') ,count(1) ,sum(wonWhenSeenStreet1) + ,sum(wonWhenSeenStreet2) + ,sum(wonWhenSeenStreet3) + ,sum(wonWhenSeenStreet4) ,sum(wonAtSD) ,sum(street0VPI) ,sum(street0Aggr) @@ -3237,6 +3243,9 @@ class Sql: ,styleKey ,HDs ,wonWhenSeenStreet1 + ,wonWhenSeenStreet2 + ,wonWhenSeenStreet3 + ,wonWhenSeenStreet4 ,wonAtSD ,street0VPI ,street0Aggr @@ -3327,6 +3336,9 @@ class Sql: ,'d' || to_char(h.startTime, 'YYMMDD') ,count(1) ,sum(wonWhenSeenStreet1) + ,sum(wonWhenSeenStreet2) + ,sum(wonWhenSeenStreet3) + ,sum(wonWhenSeenStreet4) ,sum(wonAtSD) ,sum(CAST(street0VPI as integer)) ,sum(CAST(street0Aggr as integer)) @@ -3417,6 +3429,9 @@ class Sql: ,styleKey ,HDs ,wonWhenSeenStreet1 + ,wonWhenSeenStreet2 + ,wonWhenSeenStreet3 + ,wonWhenSeenStreet4 ,wonAtSD ,street0VPI ,street0Aggr @@ -3507,6 +3522,9 @@ class Sql: ,'d' || substr(strftime('%Y%m%d', h.startTime),3,7) ,count(1) ,sum(wonWhenSeenStreet1) + ,sum(wonWhenSeenStreet2) + ,sum(wonWhenSeenStreet3) + ,sum(wonWhenSeenStreet4) ,sum(wonAtSD) ,sum(CAST(street0VPI as integer)) ,sum(CAST(street0Aggr as integer)) @@ -3618,6 +3636,9 @@ class Sql: foldToOtherRaisedStreet3, foldToOtherRaisedStreet4, wonWhenSeenStreet1, + wonWhenSeenStreet2, + wonWhenSeenStreet3, + wonWhenSeenStreet4, wonAtSD, raiseFirstInChance, raisedFirstIn, @@ -3707,6 +3728,9 @@ class Sql: foldToOtherRaisedStreet3=foldToOtherRaisedStreet3+%s, foldToOtherRaisedStreet4=foldToOtherRaisedStreet4+%s, wonWhenSeenStreet1=wonWhenSeenStreet1+%s, + wonWhenSeenStreet2=wonWhenSeenStreet2+%s, + wonWhenSeenStreet3=wonWhenSeenStreet3+%s, + wonWhenSeenStreet4=wonWhenSeenStreet4+%s, wonAtSD=wonAtSD+%s, raiseFirstInChance=raiseFirstInChance+%s, raisedFirstIn=raisedFirstIn+%s, From 97dcc4561ba7232cc0fb155cc2ca2813990e7ad4 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 06:05:59 +0200 Subject: [PATCH 263/301] add (foldTo)otherRaisedStreet0 storing to HudCache --- pyfpdb/SQL.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pyfpdb/SQL.py b/pyfpdb/SQL.py index 884c6bff..88b8455f 100644 --- a/pyfpdb/SQL.py +++ b/pyfpdb/SQL.py @@ -3074,10 +3074,12 @@ class Sql: ,street2Aggr ,street3Aggr ,street4Aggr + ,otherRaisedStreet0 ,otherRaisedStreet1 ,otherRaisedStreet2 ,otherRaisedStreet3 ,otherRaisedStreet4 + ,foldToOtherRaisedStreet0 ,foldToOtherRaisedStreet1 ,foldToOtherRaisedStreet2 ,foldToOtherRaisedStreet3 @@ -3167,10 +3169,12 @@ class Sql: ,sum(street2Aggr) ,sum(street3Aggr) ,sum(street4Aggr) + ,sum(otherRaisedStreet0) ,sum(otherRaisedStreet1) ,sum(otherRaisedStreet2) ,sum(otherRaisedStreet3) ,sum(otherRaisedStreet4) + ,sum(foldToOtherRaisedStreet0) ,sum(foldToOtherRaisedStreet1) ,sum(foldToOtherRaisedStreet2) ,sum(foldToOtherRaisedStreet3) @@ -3260,10 +3264,12 @@ class Sql: ,street2Aggr ,street3Aggr ,street4Aggr + ,otherRaisedStreet0 ,otherRaisedStreet1 ,otherRaisedStreet2 ,otherRaisedStreet3 ,otherRaisedStreet4 + ,foldToOtherRaisedStreet0 ,foldToOtherRaisedStreet1 ,foldToOtherRaisedStreet2 ,foldToOtherRaisedStreet3 @@ -3353,10 +3359,12 @@ class Sql: ,sum(CAST(street2Aggr as integer)) ,sum(CAST(street3Aggr as integer)) ,sum(CAST(street4Aggr as integer)) + ,sum(CAST(otherRaisedStreet0 as integer)) ,sum(CAST(otherRaisedStreet1 as integer)) ,sum(CAST(otherRaisedStreet2 as integer)) ,sum(CAST(otherRaisedStreet3 as integer)) ,sum(CAST(otherRaisedStreet4 as integer)) + ,sum(CAST(foldToOtherRaisedStreet0 as integer)) ,sum(CAST(foldToOtherRaisedStreet1 as integer)) ,sum(CAST(foldToOtherRaisedStreet2 as integer)) ,sum(CAST(foldToOtherRaisedStreet3 as integer)) @@ -3446,10 +3454,12 @@ class Sql: ,street2Aggr ,street3Aggr ,street4Aggr + ,otherRaisedStreet0 ,otherRaisedStreet1 ,otherRaisedStreet2 ,otherRaisedStreet3 ,otherRaisedStreet4 + ,foldToOtherRaisedStreet0 ,foldToOtherRaisedStreet1 ,foldToOtherRaisedStreet2 ,foldToOtherRaisedStreet3 @@ -3539,10 +3549,12 @@ class Sql: ,sum(CAST(street2Aggr as integer)) ,sum(CAST(street3Aggr as integer)) ,sum(CAST(street4Aggr as integer)) + ,sum(CAST(otherRaisedStreet0 as integer)) ,sum(CAST(otherRaisedStreet1 as integer)) ,sum(CAST(otherRaisedStreet2 as integer)) ,sum(CAST(otherRaisedStreet3 as integer)) ,sum(CAST(otherRaisedStreet4 as integer)) + ,sum(CAST(foldToOtherRaisedStreet0 as integer)) ,sum(CAST(foldToOtherRaisedStreet1 as integer)) ,sum(CAST(foldToOtherRaisedStreet2 as integer)) ,sum(CAST(foldToOtherRaisedStreet3 as integer)) @@ -3627,10 +3639,12 @@ class Sql: street2Aggr, street3Aggr, street4Aggr, + otherRaisedStreet0, otherRaisedStreet1, otherRaisedStreet2, otherRaisedStreet3, otherRaisedStreet4, + foldToOtherRaisedStreet0, foldToOtherRaisedStreet1, foldToOtherRaisedStreet2, foldToOtherRaisedStreet3, @@ -3719,10 +3733,12 @@ class Sql: street2Aggr=street2Aggr+%s, street3Aggr=street3Aggr+%s, street4Aggr=street4Aggr+%s, + otherRaisedStreet0=otherRaisedStreet0+%s, otherRaisedStreet1=otherRaisedStreet1+%s, otherRaisedStreet2=otherRaisedStreet2+%s, otherRaisedStreet3=otherRaisedStreet3+%s, otherRaisedStreet4=otherRaisedStreet4+%s, + foldToOtherRaisedStreet0=foldToOtherRaisedStreet0+%s, foldToOtherRaisedStreet1=foldToOtherRaisedStreet1+%s, foldToOtherRaisedStreet2=foldToOtherRaisedStreet2+%s, foldToOtherRaisedStreet3=foldToOtherRaisedStreet3+%s, From 0c939633787763b7b6d90fdc62780dc5238fe4ae Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 06:14:12 +0200 Subject: [PATCH 264/301] add these to HudCache storing: street0_4BChance/Done, other3/4BStreet0 --- pyfpdb/SQL.py | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/pyfpdb/SQL.py b/pyfpdb/SQL.py index 88b8455f..6afb1d2a 100644 --- a/pyfpdb/SQL.py +++ b/pyfpdb/SQL.py @@ -3065,6 +3065,10 @@ class Sql: ,street0Aggr ,street0_3BChance ,street0_3BDone + ,street0_4BChance + ,street0_4BDone + ,other3BStreet0 + ,other4BStreet0 ,street1Seen ,street2Seen ,street3Seen @@ -3160,6 +3164,10 @@ class Sql: ,sum(street0Aggr) ,sum(street0_3BChance) ,sum(street0_3BDone) + ,sum(street0_4BChance) + ,sum(street0_4BDone) + ,sum(other3BStreet0) + ,sum(other4BStreet0) ,sum(street1Seen) ,sum(street2Seen) ,sum(street3Seen) @@ -3255,6 +3263,10 @@ class Sql: ,street0Aggr ,street0_3BChance ,street0_3BDone + ,street0_4BChance + ,street0_4BDone + ,other3BStreet0 + ,other4BStreet0 ,street1Seen ,street2Seen ,street3Seen @@ -3350,6 +3362,10 @@ class Sql: ,sum(CAST(street0Aggr as integer)) ,sum(CAST(street0_3BChance as integer)) ,sum(CAST(street0_3BDone as integer)) + ,sum(CAST(street0_4BChance as integer)) + ,sum(CAST(street0_4BDone as integer)) + ,sum(CAST(other3BStreet0 as integer)) + ,sum(CAST(other4BStreet0 as integer)) ,sum(CAST(street1Seen as integer)) ,sum(CAST(street2Seen as integer)) ,sum(CAST(street3Seen as integer)) @@ -3445,6 +3461,10 @@ class Sql: ,street0Aggr ,street0_3BChance ,street0_3BDone + ,street0_4BChance + ,street0_4BDone + ,other3BStreet0 + ,other4BStreet0 ,street1Seen ,street2Seen ,street3Seen @@ -3540,6 +3560,10 @@ class Sql: ,sum(CAST(street0Aggr as integer)) ,sum(CAST(street0_3BChance as integer)) ,sum(CAST(street0_3BDone as integer)) + ,sum(CAST(street0_4BChance as integer)) + ,sum(CAST(street0_4BDone as integer)) + ,sum(CAST(other3BStreet0 as integer)) + ,sum(CAST(other4BStreet0 as integer)) ,sum(CAST(street1Seen as integer)) ,sum(CAST(street2Seen as integer)) ,sum(CAST(street3Seen as integer)) @@ -3630,6 +3654,10 @@ class Sql: street0Aggr, street0_3BChance, street0_3BDone, + street0_4BChance, + street0_4BDone, + other3BStreet0, + other4BStreet0, street1Seen, street2Seen, street3Seen, @@ -3715,7 +3743,8 @@ class Sql: %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, - %s)""" + %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s)""" self.query['update_hudcache'] = """ UPDATE HudCache SET From 26df39c46932a35a320f658021d35c17f175432e Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 06:37:59 +0200 Subject: [PATCH 265/301] checked hudcache dump --- ...-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt | 166 +++++++++--------- 1 file changed, 81 insertions(+), 85 deletions(-) diff --git a/pyfpdb/regression-test-files/dumps/0002_diff_after_cash-Stars-Flop-LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt b/pyfpdb/regression-test-files/dumps/0002_diff_after_cash-Stars-Flop-LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt index e198c8ce..5da42951 100644 --- a/pyfpdb/regression-test-files/dumps/0002_diff_after_cash-Stars-Flop-LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt +++ b/pyfpdb/regression-test-files/dumps/0002_diff_after_cash-Stars-Flop-LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt @@ -23,7 +23,7 @@ > tourneyId=None > gametypeId=1 > startTime=2010-07-03 12:46:30+00:00 -> importTime=2010-08-11 10:06:55.759561 +> importTime=ignore > seats=8 > maxSeats=10 > rush=None @@ -871,10 +871,6 @@ > street4Raises=0 > actionString=None > -35c896 -< Table HudCache ---- -> Table HudCache -> haven't checked this table 37c898,1593 < empty table --- @@ -884,21 +880,21 @@ > activeSeats=8 > position=M > tourneyTypeId=None -> styleKey=d100703 +> styleKey=ignore > HDs=1 > wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=None -> wonWhenSeenStreet3=None -> wonWhenSeenStreet4=None +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 > wonAtSD=0.0 > street0VPI=0 > street0Aggr=0 > street0_3BChance=0 > street0_3BDone=0 -> street0_4BChance=None -> street0_4BDone=None -> other3BStreet0=None -> other4BStreet0=None +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 > street1Seen=0 > street2Seen=0 > street3Seen=0 @@ -908,12 +904,12 @@ > street2Aggr=0 > street3Aggr=0 > street4Aggr=0 -> otherRaisedStreet0=None +> otherRaisedStreet0=0 > otherRaisedStreet1=0 > otherRaisedStreet2=0 > otherRaisedStreet3=0 > otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet0=0 > foldToOtherRaisedStreet1=0 > foldToOtherRaisedStreet2=0 > foldToOtherRaisedStreet3=0 @@ -971,21 +967,21 @@ > activeSeats=8 > position=M > tourneyTypeId=None -> styleKey=d100703 +> styleKey=ignore > HDs=1 > wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=None -> wonWhenSeenStreet3=None -> wonWhenSeenStreet4=None +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 > wonAtSD=0.0 > street0VPI=0 > street0Aggr=0 > street0_3BChance=0 > street0_3BDone=0 -> street0_4BChance=None -> street0_4BDone=None -> other3BStreet0=None -> other4BStreet0=None +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 > street1Seen=0 > street2Seen=0 > street3Seen=0 @@ -995,12 +991,12 @@ > street2Aggr=0 > street3Aggr=0 > street4Aggr=0 -> otherRaisedStreet0=None +> otherRaisedStreet0=0 > otherRaisedStreet1=0 > otherRaisedStreet2=0 > otherRaisedStreet3=0 > otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet0=0 > foldToOtherRaisedStreet1=0 > foldToOtherRaisedStreet2=0 > foldToOtherRaisedStreet3=0 @@ -1058,21 +1054,21 @@ > activeSeats=8 > position=M > tourneyTypeId=None -> styleKey=d100703 +> styleKey=ignore > HDs=1 > wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=None -> wonWhenSeenStreet3=None -> wonWhenSeenStreet4=None +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 > wonAtSD=0.0 > street0VPI=0 > street0Aggr=0 > street0_3BChance=0 > street0_3BDone=0 -> street0_4BChance=None -> street0_4BDone=None -> other3BStreet0=None -> other4BStreet0=None +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 > street1Seen=0 > street2Seen=0 > street3Seen=0 @@ -1082,12 +1078,12 @@ > street2Aggr=0 > street3Aggr=0 > street4Aggr=0 -> otherRaisedStreet0=None +> otherRaisedStreet0=0 > otherRaisedStreet1=0 > otherRaisedStreet2=0 > otherRaisedStreet3=0 > otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet0=0 > foldToOtherRaisedStreet1=0 > foldToOtherRaisedStreet2=0 > foldToOtherRaisedStreet3=0 @@ -1145,21 +1141,21 @@ > activeSeats=8 > position=C > tourneyTypeId=None -> styleKey=d100703 +> styleKey=ignore > HDs=1 > wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=None -> wonWhenSeenStreet3=None -> wonWhenSeenStreet4=None +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 > wonAtSD=0.0 > street0VPI=0 > street0Aggr=0 > street0_3BChance=0 > street0_3BDone=0 -> street0_4BChance=None -> street0_4BDone=None -> other3BStreet0=None -> other4BStreet0=None +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 > street1Seen=0 > street2Seen=0 > street3Seen=0 @@ -1169,12 +1165,12 @@ > street2Aggr=0 > street3Aggr=0 > street4Aggr=0 -> otherRaisedStreet0=None +> otherRaisedStreet0=0 > otherRaisedStreet1=0 > otherRaisedStreet2=0 > otherRaisedStreet3=0 > otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet0=0 > foldToOtherRaisedStreet1=0 > foldToOtherRaisedStreet2=0 > foldToOtherRaisedStreet3=0 @@ -1232,21 +1228,21 @@ > activeSeats=8 > position=D > tourneyTypeId=None -> styleKey=d100703 +> styleKey=ignore > HDs=1 > wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=None -> wonWhenSeenStreet3=None -> wonWhenSeenStreet4=None +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 > wonAtSD=0.0 > street0VPI=0 > street0Aggr=0 > street0_3BChance=0 > street0_3BDone=0 -> street0_4BChance=None -> street0_4BDone=None -> other3BStreet0=None -> other4BStreet0=None +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 > street1Seen=0 > street2Seen=0 > street3Seen=0 @@ -1256,12 +1252,12 @@ > street2Aggr=0 > street3Aggr=0 > street4Aggr=0 -> otherRaisedStreet0=None +> otherRaisedStreet0=0 > otherRaisedStreet1=0 > otherRaisedStreet2=0 > otherRaisedStreet3=0 > otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet0=0 > foldToOtherRaisedStreet1=0 > foldToOtherRaisedStreet2=0 > foldToOtherRaisedStreet3=0 @@ -1319,21 +1315,21 @@ > activeSeats=8 > position=S > tourneyTypeId=None -> styleKey=d100703 +> styleKey=ignore > HDs=1 > wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=None -> wonWhenSeenStreet3=None -> wonWhenSeenStreet4=None +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 > wonAtSD=0.0 > street0VPI=0 > street0Aggr=0 > street0_3BChance=0 > street0_3BDone=0 -> street0_4BChance=None -> street0_4BDone=None -> other3BStreet0=None -> other4BStreet0=None +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 > street1Seen=0 > street2Seen=0 > street3Seen=0 @@ -1343,12 +1339,12 @@ > street2Aggr=0 > street3Aggr=0 > street4Aggr=0 -> otherRaisedStreet0=None +> otherRaisedStreet0=0 > otherRaisedStreet1=0 > otherRaisedStreet2=0 > otherRaisedStreet3=0 > otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet0=0 > foldToOtherRaisedStreet1=0 > foldToOtherRaisedStreet2=0 > foldToOtherRaisedStreet3=0 @@ -1406,21 +1402,21 @@ > activeSeats=8 > position=B > tourneyTypeId=None -> styleKey=d100703 +> styleKey=ignore > HDs=1 > wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=None -> wonWhenSeenStreet3=None -> wonWhenSeenStreet4=None +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 > wonAtSD=0.0 > street0VPI=0 > street0Aggr=0 > street0_3BChance=0 > street0_3BDone=0 -> street0_4BChance=None -> street0_4BDone=None -> other3BStreet0=None -> other4BStreet0=None +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 > street1Seen=0 > street2Seen=0 > street3Seen=0 @@ -1430,12 +1426,12 @@ > street2Aggr=0 > street3Aggr=0 > street4Aggr=0 -> otherRaisedStreet0=None +> otherRaisedStreet0=0 > otherRaisedStreet1=0 > otherRaisedStreet2=0 > otherRaisedStreet3=0 > otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet0=0 > foldToOtherRaisedStreet1=0 > foldToOtherRaisedStreet2=0 > foldToOtherRaisedStreet3=0 @@ -1493,21 +1489,21 @@ > activeSeats=8 > position=E > tourneyTypeId=None -> styleKey=d100703 +> styleKey=ignore > HDs=1 > wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=None -> wonWhenSeenStreet3=None -> wonWhenSeenStreet4=None +> wonWhenSeenStreet2=0.0 +> wonWhenSeenStreet3=0.0 +> wonWhenSeenStreet4=0.0 > wonAtSD=0.0 > street0VPI=0 > street0Aggr=0 > street0_3BChance=0 > street0_3BDone=0 -> street0_4BChance=None -> street0_4BDone=None -> other3BStreet0=None -> other4BStreet0=None +> street0_4BChance=0 +> street0_4BDone=0 +> other3BStreet0=0 +> other4BStreet0=0 > street1Seen=0 > street2Seen=0 > street3Seen=0 @@ -1517,12 +1513,12 @@ > street2Aggr=0 > street3Aggr=0 > street4Aggr=0 -> otherRaisedStreet0=None +> otherRaisedStreet0=0 > otherRaisedStreet1=0 > otherRaisedStreet2=0 > otherRaisedStreet3=0 > otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=None +> foldToOtherRaisedStreet0=0 > foldToOtherRaisedStreet1=0 > foldToOtherRaisedStreet2=0 > foldToOtherRaisedStreet3=0 From f191e5d77c873d5c1b92181a38082c45742addda Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 07:23:42 +0200 Subject: [PATCH 266/301] Revert "remove useless ongametofpdb file" its not actually useless This reverts commit a0f9d0ddee18486d4564727e487e4e9e2e9d8de4. --- pyfpdb/OnGameToFpdb.py | 242 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100755 pyfpdb/OnGameToFpdb.py diff --git a/pyfpdb/OnGameToFpdb.py b/pyfpdb/OnGameToFpdb.py new file mode 100755 index 00000000..80d8d646 --- /dev/null +++ b/pyfpdb/OnGameToFpdb.py @@ -0,0 +1,242 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright 2008-2010, Carl Gherardi +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +######################################################################## + +import sys +import Configuration +from HandHistoryConverter import * + +# OnGame HH Format + +#Texas Hold'em $.5-$1 NL (real money), hand #P4-76915775-797 +#Table Kuopio, 20 Sep 2008 11:59 PM + +#Seat 1: .Lucchess ($4.17 in chips) +#Seat 3: Gloff1 ($108 in chips) +#Seat 4: far a ($13.54 in chips) +#Seat 5: helander2222 ($49.77 in chips) +#Seat 6: lopllopl ($62.06 in chips) +#Seat 7: crazyhorse6 ($101.91 in chips) +#Seat 8: peeci ($25.02 in chips) +#Seat 9: Manuelhertz ($49 in chips) +#Seat 10: Eurolll ($58.25 in chips) +#ANTES/BLINDS +#helander2222 posts blind ($0.25), lopllopl posts blind ($0.50). + +#PRE-FLOP +#crazyhorse6 folds, peeci folds, Manuelhertz folds, Eurolll calls $0.50, .Lucchess calls $0.50, Gloff1 folds, far a folds, helander2222 folds, lopllopl checks. + +#FLOP [board cards AH,8H,KH ] +#lopllopl checks, Eurolll checks, .Lucchess checks. + +#TURN [board cards AH,8H,KH,6S ] +#lopllopl checks, Eurolll checks, .Lucchess checks. + +#RIVER [board cards AH,8H,KH,6S,8S ] +#lopllopl checks, Eurolll bets $1.25, .Lucchess folds, lopllopl folds. + +#SHOWDOWN +#Eurolll wins $2.92. + +#SUMMARY +#Dealer: far a +#Pot: $3, (including rake: $0.08) +#.Lucchess, loses $0.50 +#Gloff1, loses $0 +#far a, loses $0 +#helander2222, loses $0.25 +#lopllopl, loses $0.50 +#crazyhorse6, loses $0 +#peeci, loses $0 +#Manuelhertz, loses $0 +#Eurolll, bets $1.75, collects $2.92, net $1.17 + + +class OnGame(HandHistoryConverter): + def __init__(self, config, file): + print "Initialising OnGame converter class" + HandHistoryConverter.__init__(self, config, file, sitename="OnGame") # Call super class init. + self.sitename = "OnGame" + self.setFileType("text", "cp1252") + self.siteId = 5 # Needs to match id entry in Sites database + #self.rexx.setGameInfoRegex('.*Blinds \$?(?P[.0-9]+)/\$?(?P[.0-9]+)') + self.rexx.setSplitHandRegex('\n\n\n+') + + #Texas Hold'em $.5-$1 NL (real money), hand #P4-76915775-797 + #Table Kuopio, 20 Sep 2008 11:59 PM + self.rexx.setHandInfoRegex(r"Texas Hold'em \$?(?P[.0-9]+)-\$?(?P[.0-9]+) NL \(real money\), hand #(?P[-A-Z\d]+)\nTable\ (?P
[\' \w]+), (?P\d\d \w+ \d\d\d\d \d\d:\d\d (AM|PM))") + # SB BB HID TABLE DAY MON YEAR HR12 MIN AMPM + + self.rexx.button_re = re.compile('#SUMMARY\nDealer: (?P.*)\n') + + #Seat 1: .Lucchess ($4.17 in chips) + self.rexx.setPlayerInfoRegex('Seat (?P[0-9]+): (?P.*) \((\$(?P[.0-9]+) in chips)\)') + + #ANTES/BLINDS + #helander2222 posts blind ($0.25), lopllopl posts blind ($0.50). + self.rexx.setPostSbRegex('(?P.*) posts blind \(\$?(?P[.0-9]+)\), ') + self.rexx.setPostBbRegex('\), (?P.*) posts blind \(\$?(?P[.0-9]+)\).') + self.rexx.setPostBothRegex('.*\n(?P.*): posts small \& big blinds \[\$? (?P[.0-9]+)') + self.rexx.setHeroCardsRegex('.*\nDealt\sto\s(?P.*)\s\[ (?P.*) \]') + + #lopllopl checks, Eurolll checks, .Lucchess checks. + self.rexx.setActionStepRegex('(, )?(?P.*?)(?P bets| checks| raises| calls| folds)( \$(?P\d*\.?\d*))?( and is all-in)?') + + #Uchilka shows [ KC,JD ] + self.rexx.setShowdownActionRegex('(?P.*) shows \[ (?P.+) \]') + + # TODO: read SUMMARY correctly for collected pot stuff. + #Uchilka, bets $11.75, collects $23.04, net $11.29 + self.rexx.setCollectPotRegex('(?P.*), bets.+, collects \$(?P\d*\.?\d*), net.* ') + self.rexx.sits_out_re = re.compile('(?P.*) sits out') + self.rexx.compileRegexes() + + def readSupportedGames(self): + pass + + def determineGameType(self): + # Cheating with this regex, only support nlhe at the moment + gametype = ["ring", "hold", "nl"] + + m = self.rexx.hand_info_re.search(self.obs) + gametype = gametype + [m.group('SB')] + gametype = gametype + [m.group('BB')] + + return gametype + + def readHandInfo(self, hand): + m = self.rexx.hand_info_re.search(hand.string) + hand.handid = m.group('HID') + hand.tablename = m.group('TABLE') + #hand.buttonpos = self.rexx.button_re.search(hand.string).group('BUTTONPNAME') +# These work, but the info is already in the Hand class - should be used for tourneys though. +# m.group('SB') +# m.group('BB') +# m.group('GAMETYPE') + +# Believe Everleaf time is GMT/UTC, no transation necessary +# Stars format (Nov 10 2008): 2008/11/07 12:38:49 CET [2008/11/07 7:38:49 ET] +# or : 2008/11/07 12:38:49 ET +# Not getting it in my HH files yet, so using +# 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'), "%d %b %Y %I:%M %p") + #hand.starttime = "%d/%02d/%02d %d:%02d:%02d ET" %(int(m.group('YEAR')), int(m.group('MON')), int(m.group('DAY')), + #int(m.group('HR')), int(m.group('MIN')), int(m.group('SEC'))) + + def readPlayerStacks(self, hand): + m = self.rexx.player_info_re.finditer(hand.string) + players = [] + for a in m: + hand.addPlayer(int(a.group('SEAT')), a.group('PNAME'), a.group('CASH')) + + def markStreets(self, hand): + # PREFLOP = ** Dealing down cards ** + # This re fails if, say, river is missing; then we don't get the ** that starts the river. + #m = re.search('(\*\* Dealing down cards \*\*\n)(?P.*?\n\*\*)?( Dealing Flop \*\* \[ (?P\S\S), (?P\S\S), (?P\S\S) \])?(?P.*?\*\*)?( Dealing Turn \*\* \[ (?P\S\S) \])?(?P.*?\*\*)?( Dealing River \*\* \[ (?P\S\S) \])?(?P.*)', hand.string,re.DOTALL) + + m = re.search(r"PRE-FLOP(?P.+(?=FLOP)|.+(?=SHOWDOWN))" + r"(FLOP (?P\[board cards .+ \].+(?=TURN)|.+(?=SHOWDOWN)))?" + r"(TURN (?P\[board cards .+ \].+(?=RIVER)|.+(?=SHOWDOWN)))?" + r"(RIVER (?P\[board cards .+ \].+(?=SHOWDOWN)))?", hand.string,re.DOTALL) + + hand.addStreets(m) + + + def readCommunityCards(self, hand, street): + self.rexx.board_re = re.compile(r"\[board cards (?P.+) \]") + print hand.streets.group(street) + if street in ('FLOP','TURN','RIVER'): # a list of streets which get dealt community cards (i.e. all but PREFLOP) + m = self.rexx.board_re.search(hand.streets.group(street)) + hand.setCommunityCards(street, m.group('CARDS').split(',')) + + def readBlinds(self, hand): + try: + m = self.rexx.small_blind_re.search(hand.string) + hand.addBlind(m.group('PNAME'), 'small blind', m.group('SB')) + except: # no small blind + hand.addBlind(None, None, None) + for a in self.rexx.big_blind_re.finditer(hand.string): + hand.addBlind(a.group('PNAME'), 'big blind', a.group('BB')) + for a in self.rexx.both_blinds_re.finditer(hand.string): + hand.addBlind(a.group('PNAME'), 'small & big blinds', a.group('SBBB')) + + def readHeroCards(self, hand): + m = self.rexx.hero_cards_re.search(hand.string) + if(m == None): + #Not involved in hand + hand.involved = False + else: + hand.hero = m.group('PNAME') + # "2c, qh" -> set(["2c","qc"]) + # Also works with Omaha hands. + cards = m.group('CARDS') + cards = set(cards.split(',')) + hand.addHoleCards(cards, m.group('PNAME')) + + def readAction(self, hand, street): + m = self.rexx.action_re.finditer(hand.streets.group(street)) + for action in m: + if action.group('ATYPE') == ' raises': + hand.addRaiseTo( street, action.group('PNAME'), action.group('BET') ) + elif action.group('ATYPE') == ' calls': + hand.addCall( street, action.group('PNAME'), action.group('BET') ) + elif action.group('ATYPE') == ' bets': + hand.addBet( street, action.group('PNAME'), action.group('BET') ) + elif action.group('ATYPE') == ' folds': + hand.addFold( street, action.group('PNAME')) + elif action.group('ATYPE') == ' checks': + hand.addCheck( street, action.group('PNAME')) + else: + print "DEBUG: unimplemented readAction: %s %s" %(action.group('PNAME'),action.group('ATYPE'),) + #hand.actions[street] += [[action.group('PNAME'), action.group('ATYPE')]] + # TODO: Everleaf does not record uncalled bets. + + def readShowdownActions(self, hand): + for shows in self.rexx.showdown_action_re.finditer(hand.string): + cards = shows.group('CARDS') + cards = set(cards.split(',')) + hand.addShownCards(cards, shows.group('PNAME')) + + def readCollectPot(self,hand): + for m in self.rexx.collect_pot_re.finditer(hand.string): + hand.addCollectPot(player=m.group('PNAME'),pot=m.group('POT')) + + def readShownCards(self,hand): + return + #for m in self.rexx.collect_pot_re.finditer(hand.string): + #if m.group('CARDS') is not None: + #cards = m.group('CARDS') + #cards = set(cards.split(',')) + #hand.addShownCards(cards=None, player=m.group('PNAME'), holeandboard=cards) + + + + +if __name__ == "__main__": + c = Configuration.Config() + if len(sys.argv) == 1: + testfile = "regression-test-files/ongame/nlhe/ong NLH handhq_0.txt" + else: + testfile = sys.argv[1] + e = OnGame(c, testfile) + e.processFile() + print str(e) From 4f854c5c35a8d2f8a0bfd4d4bb34d82788100cf0 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 07:34:37 +0200 Subject: [PATCH 267/301] add comment about non-standard structures for sbet/bbet --- pyfpdb/Database.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 354536eb..9b1b962b 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -1887,7 +1887,7 @@ class Database: hilo = "l" tmp = self.insertGameTypes( (siteid, game['currency'], game['type'], game['base'], game['category'], game['limitType'], hilo, int(Decimal(game['sb'])*100), int(Decimal(game['bb'])*100), - int(Decimal(game['bb'])*100), int(Decimal(game['bb'])*200)) ) + int(Decimal(game['bb'])*100), int(Decimal(game['bb'])*200)) ) #TODO: this wont work for non-standard structures #FIXME: recognise currency return tmp[0] From 924e155b450a0081ab324a5137aafcbe03faf2d0 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 19 Aug 2010 18:23:26 +0800 Subject: [PATCH 268/301] Database: Add optional argument for pprinting the player data. --- pyfpdb/Database.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 9b1b962b..797c4e28 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -1633,8 +1633,13 @@ class Database: return self.get_last_insert_id(c) # def storeHand - def storeHandsPlayers(self, hid, pids, pdata): + def storeHandsPlayers(self, hid, pids, pdata, printdata = False): #print "DEBUG: %s %s %s" %(hid, pids, pdata) + if printdata: + import pprint + pp = pprint.PrettyPrinter(indent=4) + pp.pprint(pdata) + inserts = [] for p in pdata: inserts.append( (hid, From 0fab203a535b497c709f15b748bad9ccc5ab9965 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 19 Aug 2010 18:25:26 +0800 Subject: [PATCH 269/301] Importer: Add utility functions for regression testing setPrintTestData: Indicate you would like to print test data when importing setFakeCacheHHC: Indicate you want to access the HHC after an import run getCachedHHC: Retrieve HHC Also modified the main import loop to pass self.settings['testData'] to the database insert and records the HHC if requested --- pyfpdb/fpdb_import.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index 03fbbe48..a1835830 100755 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -102,6 +102,7 @@ class Importer: self.settings.setdefault("dropIndexes", "don't drop") self.settings.setdefault("dropHudCache", "don't drop") self.settings.setdefault("starsArchive", False) + self.settings.setdefault("testData", False) self.writeq = None self.database = Database.Database(self.config, sql = self.sql) @@ -146,6 +147,15 @@ class Importer: def setStarsArchive(self, value): self.settings['starsArchive'] = value + def setPrintTestData(self, value): + self.settings['testData'] = value + + def setFakeCacheHHC(self, value): + self.settings['cacheHHC'] = value + + def getCachedHHC(self): + return self.handhistoryconverter + # def setWatchTime(self): # self.updated = time() @@ -456,7 +466,7 @@ class Importer: if hand is not None: hand.prepInsert(self.database) try: - hand.insert(self.database) + hand.insert(self.database, printtest = self.settings['testData']) except Exceptions.FpdbHandDuplicate: duplicates += 1 else: @@ -485,6 +495,10 @@ class Importer: stored = getattr(hhc, 'numHands') stored -= duplicates stored -= errors + # Really ugly hack to allow testing Hands within the HHC from someone + # with only an Importer objec + if self.settings['cacheHHC']: + self.handhistoryconverter = hhc else: # conversion didn't work # TODO: appropriate response? From 109ad292c0ce51ef0fa6f405791274c044af0215 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 19 Aug 2010 18:28:10 +0800 Subject: [PATCH 270/301] Hand: Add optional argument for printing test data And pass the argument on too Database --- pyfpdb/Hand.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/Hand.py b/pyfpdb/Hand.py index 1d390378..c32f9f37 100644 --- a/pyfpdb/Hand.py +++ b/pyfpdb/Hand.py @@ -251,7 +251,7 @@ dealt whether they were seen in a 'dealt to' line db.commit() #end def prepInsert - def insert(self, db): + def insert(self, db, printtest = False): """ Function to insert Hand into database Should not commit, and do minimal selects. Callers may want to cache commits db: a connected Database object""" @@ -271,7 +271,7 @@ db: a connected Database object""" hh['seats'] = len(self.dbid_pids) self.dbid_hands = db.storeHand(hh) - db.storeHandsPlayers(self.dbid_hands, self.dbid_pids, self.stats.getHandsPlayers()) + db.storeHandsPlayers(self.dbid_hands, self.dbid_pids, self.stats.getHandsPlayers(), printdata = printtest) # TODO HandsActions - all actions for all players for all streets - self.actions # HudCache data can be generated from HandsActions (HandsPlayers?) else: From fbcf987d97ee713c7ce93289e39117547c8da89f Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 19 Aug 2010 18:29:10 +0800 Subject: [PATCH 271/301] BulkImport: Add command line option to generate test data --- pyfpdb/GuiBulkImport.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyfpdb/GuiBulkImport.py b/pyfpdb/GuiBulkImport.py index 9b88a12f..72e5e463 100755 --- a/pyfpdb/GuiBulkImport.py +++ b/pyfpdb/GuiBulkImport.py @@ -356,6 +356,8 @@ def main(argv=None): help=_("Print some useful one liners")) parser.add_option("-s", "--starsarchive", action="store_true", dest="starsArchive", default=False, help=_("Do the required conversion for Stars Archive format (ie. as provided by support")) + parser.add_option("-t", "--testdata", action="store_true", dest="testData", default=False, + help=_("Output the pprinted version of the HandsPlayer hash for regresion testing")) (options, argv) = parser.parse_args(args = argv) if options.usage == True: @@ -401,6 +403,8 @@ def main(argv=None): importer.setCallHud(False) if options.starsArchive: importer.setStarsArchive(True) + if options.testData: + importer.setPrintTestData(True) (stored, dups, partial, errs, ttime) = importer.runImport() importer.clearFileList() print _('GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d in %s seconds - %.0f/sec')\ From bb6225f80cc5da7f918b8ae8456195e3b0387495 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 19 Aug 2010 18:30:12 +0800 Subject: [PATCH 272/301] NEW: Add regression test utility for HandsPlayers --- pyfpdb/TestHandsPlayers.py | 90 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 pyfpdb/TestHandsPlayers.py diff --git a/pyfpdb/TestHandsPlayers.py b/pyfpdb/TestHandsPlayers.py new file mode 100644 index 00000000..15925e2e --- /dev/null +++ b/pyfpdb/TestHandsPlayers.py @@ -0,0 +1,90 @@ +import sys +import os +import codecs +import pprint +import PokerStarsToFpdb +from Hand import * +import Configuration +import Database +import SQL +import fpdb_import + +def error_report( filename, hand, stat, ghash, testhash): + print "Regression Test Error:" + print "\tFile: %s" % filename + print "\tStat: %s" % stat + +def compare(leaf, importer): + filename = leaf + #print "DEBUG: fileanme: %s" % filename + + # Test if this is a hand history file + if filename.endswith('.txt'): + # test if there is a .hp version of the file + importer.addBulkImportImportFileOrDir(filename, site="PokerStars") + (stored, dups, partial, errs, ttime) = importer.runImport() + if os.path.isfile(filename + '.hp'): + # Compare them + hashfilename = filename + '.hp' + + in_fh = codecs.open(hashfilename, 'r', 'utf8') + whole_file = in_fh.read() + in_fh.close() + + testhash = eval(whole_file) + + hhc = importer.getCachedHHC() + handlist = hhc.getProcessedHands() + #We _really_ only want to deal with a single hand here. + for hand in handlist: + ghash = hand.stats.getHandsPlayers() + for p in ghash: + pstat = ghash[p] + teststat = testhash[p] + for stat in pstat: + if pstat[stat] == teststat[stat]: + # The stats match - continue + pass + else: + # Stats don't match - Doh! + error_report(filename, hand, stat, ghash, testhash) + + importer.clearFileList() + + + +def walk_testfiles(dir, function, importer): + """Walks a directory, and executes a callback on each file """ + dir = os.path.abspath(dir) + for file in [file for file in os.listdir(dir) if not file in [".",".."]]: + nfile = os.path.join(dir,file) + if os.path.isdir(nfile): + walk_testfiles(nfile, compare, importer) + else: + compare(nfile, importer) + +def main(argv=None): + if argv is None: + argv = sys.argv[1:] + + config = Configuration.Config(file = "HUD_config.test.xml") + db = Database.Database(config) + sql = SQL.Sql(db_server = 'sqlite') + settings = {} + settings.update(config.get_db_parameters()) + settings.update(config.get_tv_parameters()) + settings.update(config.get_import_parameters()) + settings.update(config.get_default_paths()) + db.recreate_tables() + importer = fpdb_import.Importer(False, settings, config) + importer.setDropIndexes("don't drop") + importer.setFailOnError(True) + importer.setThreads(-1) + importer.setCallHud(False) + importer.setFakeCacheHHC(True) + + walk_testfiles("regression-test-files/cash/Stars/", compare, importer) + +if __name__ == '__main__': + sys.exit(main()) + From 75e1dbbfbab8fed15ee44e0b5b6210ccb37704e2 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 19 Aug 2010 18:33:43 +0800 Subject: [PATCH 273/301] Importer; Add missing default option --- pyfpdb/fpdb_import.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index a1835830..8ff2ba86 100755 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -103,6 +103,7 @@ class Importer: self.settings.setdefault("dropHudCache", "don't drop") self.settings.setdefault("starsArchive", False) self.settings.setdefault("testData", False) + self.settings.setdefault("cacheHHC", False) self.writeq = None self.database = Database.Database(self.config, sql = self.sql) From 041c9c8527438474ca2a07c7c263539bd3c0bdc2 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 19 Aug 2010 18:40:37 +0800 Subject: [PATCH 274/301] Regression test file: Handsplayers data --- ...NLHE-FR-USD-0.01-0.02-201004.4betPF.txt.hp | 751 ++++++++++++++++++ 1 file changed, 751 insertions(+) create mode 100644 pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-FR-USD-0.01-0.02-201004.4betPF.txt.hp diff --git a/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-FR-USD-0.01-0.02-201004.4betPF.txt.hp b/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-FR-USD-0.01-0.02-201004.4betPF.txt.hp new file mode 100644 index 00000000..e3e7a574 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-FR-USD-0.01-0.02-201004.4betPF.txt.hp @@ -0,0 +1,751 @@ +{ u'Player0': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 5, + 'raiseFirstInChance': True, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 8, + 'sitout': False, + 'startCards': 0, + 'startCash': 491, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 2, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': -24, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player1': { 'card1': 15, + 'card2': 51, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 2, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 2, + 'sitout': False, + 'startCards': 25, + 'startCash': 35, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': True, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': 0, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player2': { 'card1': 36, + 'card2': 23, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 3, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': True, + 'seatNo': 1, + 'sitout': False, + 'startCards': 127, + 'startCash': 426, + 'street0Aggr': True, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': True, + 'street0_3BDone': True, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': -131, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player3': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 'B', + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 7, + 'sitout': False, + 'startCards': 0, + 'startCash': 255, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': True, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': -2, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player4': { 'card1': 52, + 'card2': 50, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 4, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 10, + 'sawShowdown': True, + 'seatNo': 9, + 'sitout': False, + 'startCards': 167, + 'startCash': 131, + 'street0Aggr': True, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': True, + 'street0_4BDone': True, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': 148, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 279, + 'wonAtSD': 1.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player5': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 0, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 4, + 'sitout': False, + 'startCards': 0, + 'startCash': 370, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': True, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': 0, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player6': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 'S', + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 5, + 'sitout': False, + 'startCards': 0, + 'startCash': 498, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': True, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': -1, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player7': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 1, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 3, + 'sitout': False, + 'startCards': 0, + 'startCash': 834, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': True, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': 0, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}} From 3d6a0e5040a61e71066a5cfef1d5f6c0ecaddccb Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 19 Aug 2010 19:10:52 +0800 Subject: [PATCH 275/301] RTF: Oops - appear to have accidentally deleted the field --- .../cash/Stars/Flop/NLHE-FR-USD-0.01-0.02-201004.4betPF.txt.hp | 1 + 1 file changed, 1 insertion(+) diff --git a/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-FR-USD-0.01-0.02-201004.4betPF.txt.hp b/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-FR-USD-0.01-0.02-201004.4betPF.txt.hp index e3e7a574..e4b0a096 100644 --- a/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-FR-USD-0.01-0.02-201004.4betPF.txt.hp +++ b/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-FR-USD-0.01-0.02-201004.4betPF.txt.hp @@ -722,6 +722,7 @@ 'street2CheckCallRaiseChance': False, 'street2CheckCallRaiseDone': False, 'street2Seen': False, + 'street2Raises': False, 'street3Aggr': False, 'street3Bets': 0, 'street3CBChance': False, From 1236460e095bcc38bf41c7ff473ea1d9c988d0bb Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 19 Aug 2010 19:11:46 +0800 Subject: [PATCH 276/301] TestHP: Hopefully useful debug messages --- pyfpdb/TestHandsPlayers.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyfpdb/TestHandsPlayers.py b/pyfpdb/TestHandsPlayers.py index 15925e2e..b6596933 100644 --- a/pyfpdb/TestHandsPlayers.py +++ b/pyfpdb/TestHandsPlayers.py @@ -39,9 +39,12 @@ def compare(leaf, importer): for hand in handlist: ghash = hand.stats.getHandsPlayers() for p in ghash: + #print "DEBUG: player: '%s'" % p pstat = ghash[p] teststat = testhash[p] + for stat in pstat: + #print "pstat[%s][%s]: %s == %s" % (p, stat, pstat[stat], teststat[stat]) if pstat[stat] == teststat[stat]: # The stats match - continue pass From 3c5908224c2b1388815d90f8ca4ea4d037762743 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 19 Aug 2010 19:31:23 +0800 Subject: [PATCH 277/301] TestHP: Pass name to print function --- pyfpdb/TestHandsPlayers.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pyfpdb/TestHandsPlayers.py b/pyfpdb/TestHandsPlayers.py index b6596933..a49cd88b 100644 --- a/pyfpdb/TestHandsPlayers.py +++ b/pyfpdb/TestHandsPlayers.py @@ -9,10 +9,11 @@ import Database import SQL import fpdb_import -def error_report( filename, hand, stat, ghash, testhash): +def error_report( filename, hand, stat, ghash, testhash, player): print "Regression Test Error:" print "\tFile: %s" % filename print "\tStat: %s" % stat + print "\tPlayer: %s" % player def compare(leaf, importer): filename = leaf @@ -50,7 +51,7 @@ def compare(leaf, importer): pass else: # Stats don't match - Doh! - error_report(filename, hand, stat, ghash, testhash) + error_report(filename, hand, stat, ghash, testhash, p) importer.clearFileList() From 8225b9a3f64fbd6a1fb66cc80d23c0b9fc1119d8 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 19 Aug 2010 19:32:45 +0800 Subject: [PATCH 278/301] Test: Add failing test for streetXSeen All in preflop hand currently fails as all streets are seen, but the 2 all-in players are incorrectly recorded. --- ...6max-USD-0.05-0.10-200912.Allin-pre.txt.hp | 564 ++++++++++++++++++ 1 file changed, 564 insertions(+) create mode 100644 pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-6max-USD-0.05-0.10-200912.Allin-pre.txt.hp diff --git a/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-6max-USD-0.05-0.10-200912.Allin-pre.txt.hp b/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-6max-USD-0.05-0.10-200912.Allin-pre.txt.hp new file mode 100644 index 00000000..50ac6ca2 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-6max-USD-0.05-0.10-200912.Allin-pre.txt.hp @@ -0,0 +1,564 @@ +{ u'AAALISAAAA': { 'card1': 25, + 'card2': 17, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 'S', + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 205, + 'sawShowdown': True, + 'seatNo': 3, + 'sitout': False, + 'startCards': 147, + 'startCash': 2020, + 'street0Aggr': True, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': True, + 'street0_3BDone': True, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': True, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': 1915, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 3935, + 'wonAtSD': 1.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Arbaz': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 'B', + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 4, + 'sitout': False, + 'startCards': 0, + 'startCash': 2500, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': True, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': -25, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Bl\xe5veis': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 1, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 1, + 'sitout': False, + 'startCards': 0, + 'startCash': 5510, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': True, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': 0, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Kinewma': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 0, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 2, + 'sitout': False, + 'startCards': 0, + 'startCash': 3140, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': True, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': 0, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'bys7': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 2, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 6, + 'sitout': False, + 'startCards': 0, + 'startCash': 4135, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': True, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': -75, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u's0rrow': { 'card1': 39, + 'card2': 52, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 3, + 'raiseFirstInChance': True, + 'raisedFirstIn': True, + 'rake': 0, + 'sawShowdown': True, + 'seatNo': 5, + 'sitout': False, + 'startCards': 169, + 'startCash': 2985, + 'street0Aggr': True, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': True, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': -2020, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}} From 568eba84ad62cc9c4628d51e4b033be5777212d2 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 19 Aug 2010 19:42:41 +0800 Subject: [PATCH 279/301] Test: 4 Bet Pre test - curently fails. s0rrow raises, is 3bet by AAALISAAAA, then 4bets pre-flop --- .../Flop/NLHE-6max-USD-0.05-0.10-200912.Allin-pre.txt.hp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-6max-USD-0.05-0.10-200912.Allin-pre.txt.hp b/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-6max-USD-0.05-0.10-200912.Allin-pre.txt.hp index 50ac6ca2..bbc87a77 100644 --- a/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-6max-USD-0.05-0.10-200912.Allin-pre.txt.hp +++ b/pyfpdb/regression-test-files/cash/Stars/Flop/NLHE-6max-USD-0.05-0.10-200912.Allin-pre.txt.hp @@ -515,8 +515,8 @@ 'street0VPI': True, 'street0_3BChance': False, 'street0_3BDone': False, - 'street0_4BChance': False, - 'street0_4BDone': False, + 'street0_4BChance': True, + 'street0_4BDone': True, 'street1Aggr': False, 'street1Bets': 0, 'street1CBChance': False, From c959e244adb05b6607f6e5e5b6bd8099e1595b33 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 19:22:56 +0200 Subject: [PATCH 280/301] rename dump files to match carl's scheme, add a partially verified second dump plenty of bugs to be fixed in this one! --- ...D-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql | 1719 ++++++++ ...-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt | 1623 -------- .../0001_empty_DB.txt => empty_DB.0000.sql} | 0 ...D-STT-5-20100607.allInPreflop.txt.0002.sql | 3664 +++++++++++++++++ 4 files changed, 5383 insertions(+), 1623 deletions(-) create mode 100644 pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql delete mode 100644 pyfpdb/regression-test-files/dumps/0002_diff_after_cash-Stars-Flop-LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt rename pyfpdb/regression-test-files/{dumps/0001_empty_DB.txt => empty_DB.0000.sql} (100%) create mode 100644 pyfpdb/regression-test-files/tour/Stars/Flop/LHE-USD-STT-5-20100607.allInPreflop.txt.0002.sql diff --git a/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql b/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql new file mode 100644 index 00000000..e8ee0bd7 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql @@ -0,0 +1,1719 @@ +fpdb database dump +DB version=142 + +################### +Table Autorates +################### +empty table + +################### +Table Backings +################### +empty table + +################### +Table Gametypes +################### + id=1 + siteId=2 + currency=USD + type=ring + base=hold + category=holdem + limitType=fl + hiLo=h + smallBlind=2 + bigBlind=5 + smallBet=5 + bigBet=10 + + +################### +Table Hands +################### + id=1 + tableName=Elektra II + siteHandNo=46290540537 + tourneyId=None + gametypeId=1 + startTime=2010-07-03 12:46:30+00:00 + importTime=ignore + seats=8 + maxSeats=10 + rush=None + boardcard1=0 + boardcard2=0 + boardcard3=0 + boardcard4=0 + boardcard5=0 + texture=None + playersVpi=0 + playersAtStreet1=0 + playersAtStreet2=0 + playersAtStreet3=0 + playersAtStreet4=0 + playersAtShowdown=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + street1Pot=0 + street2Pot=0 + street3Pot=0 + street4Pot=0 + showdownPot=0 + comment=None + commentTs=None + + +################### +Table HandsActions +################### +empty table + +################### +Table HandsPlayers +################### + id=1 + handId=1 + playerId=8 + startCash=169 + position=5 + seatNo=10 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=2 + handId=1 + playerId=3 + startCash=280 + position=2 + seatNo=4 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=3 + handId=1 + playerId=6 + startCash=122 + position=S + seatNo=7 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=-2 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=4 + handId=1 + playerId=5 + startCash=293 + position=0 + seatNo=6 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=5 + handId=1 + playerId=7 + startCash=226 + position=B + seatNo=9 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=4 + rake=0 + totalProfit=2 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=6 + handId=1 + playerId=1 + startCash=277 + position=4 + seatNo=1 + sitout=0 + wentAllInOnStreet=None + card1=7 + card2=28 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=20 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=7 + handId=1 + playerId=4 + startCash=238 + position=1 + seatNo=5 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=8 + handId=1 + playerId=2 + startCash=193 + position=3 + seatNo=2 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + +################### +Table HudCache +################### + id=1 + gametypeId=1 + playerId=1 + activeSeats=8 + position=M + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=2 + gametypeId=1 + playerId=2 + activeSeats=8 + position=M + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=3 + gametypeId=1 + playerId=3 + activeSeats=8 + position=M + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=4 + gametypeId=1 + playerId=4 + activeSeats=8 + position=C + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=5 + gametypeId=1 + playerId=5 + activeSeats=8 + position=D + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=6 + gametypeId=1 + playerId=6 + activeSeats=8 + position=S + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=-2 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=7 + gametypeId=1 + playerId=7 + activeSeats=8 + position=B + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=2 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=8 + gametypeId=1 + playerId=8 + activeSeats=8 + position=E + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + +################### +Table Players +################### + id=1 + name=steffen780 + siteId=2 + comment=None + commentTs=None + + id=2 + name=ialexiv + siteId=2 + comment=None + commentTs=None + + id=3 + name=seregaserg + siteId=2 + comment=None + commentTs=None + + id=4 + name=GREEN373 + siteId=2 + comment=None + commentTs=None + + id=5 + name=Swann99 + siteId=2 + comment=None + commentTs=None + + id=6 + name=ToolTheSheep + siteId=2 + comment=None + commentTs=None + + id=7 + name=bigsergv + siteId=2 + comment=None + commentTs=None + + id=8 + name=garikoitz_22 + siteId=2 + comment=None + commentTs=None + + +################### +Table Settings +################### + version=142 + + +################### +Table Sites +################### + id=1 + name=Full Tilt Poker + code=FT + + id=2 + name=PokerStars + code=PS + + id=3 + name=Everleaf + code=EV + + id=4 + name=Win2day + code=W2 + + id=5 + name=OnGame + code=OG + + id=6 + name=UltimateBet + code=UB + + id=7 + name=Betfair + code=BF + + id=8 + name=Absolute + code=AB + + id=9 + name=PartyPoker + code=PP + + id=10 + name=Partouche + code=PA + + id=11 + name=Carbon + code=CA + + id=12 + name=PKR + code=PK + + +################### +Table TourneyTypes +################### +empty table + +################### +Table Tourneys +################### +empty table + +################### +Table TourneysPlayers +################### +empty table + diff --git a/pyfpdb/regression-test-files/dumps/0002_diff_after_cash-Stars-Flop-LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt b/pyfpdb/regression-test-files/dumps/0002_diff_after_cash-Stars-Flop-LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt deleted file mode 100644 index 5da42951..00000000 --- a/pyfpdb/regression-test-files/dumps/0002_diff_after_cash-Stars-Flop-LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt +++ /dev/null @@ -1,1623 +0,0 @@ -17c17,29 -< empty table ---- -> id=1 -> siteId=2 -> currency=USD -> type=ring -> base=hold -> category=holdem -> limitType=fl -> hiLo=h -> smallBlind=2 -> bigBlind=5 -> smallBet=5 -> bigBet=10 -> -22c34,68 -< empty table ---- -> id=1 -> tableName=Elektra II -> siteHandNo=46290540537 -> tourneyId=None -> gametypeId=1 -> startTime=2010-07-03 12:46:30+00:00 -> importTime=ignore -> seats=8 -> maxSeats=10 -> rush=None -> boardcard1=0 -> boardcard2=0 -> boardcard3=0 -> boardcard4=0 -> boardcard5=0 -> texture=None -> playersVpi=0 -> playersAtStreet1=0 -> playersAtStreet2=0 -> playersAtStreet3=0 -> playersAtStreet4=0 -> playersAtShowdown=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> street1Pot=0 -> street2Pot=0 -> street3Pot=0 -> street4Pot=0 -> showdownPot=0 -> comment=None -> commentTs=None -> -32c78,893 -< empty table ---- -> id=1 -> handId=1 -> playerId=8 -> startCash=169 -> position=5 -> seatNo=10 -> sitout=0 -> wentAllInOnStreet=None -> card1=0 -> card2=0 -> card3=0 -> card4=0 -> card5=0 -> card6=0 -> card7=0 -> startCards=0 -> ante=None -> winnings=0 -> rake=0 -> totalProfit=0 -> comment=None -> commentTs=None -> tourneysPlayersId=None -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> actionString=None -> -> id=2 -> handId=1 -> playerId=3 -> startCash=280 -> position=2 -> seatNo=4 -> sitout=0 -> wentAllInOnStreet=None -> card1=0 -> card2=0 -> card3=0 -> card4=0 -> card5=0 -> card6=0 -> card7=0 -> startCards=0 -> ante=None -> winnings=0 -> rake=0 -> totalProfit=0 -> comment=None -> commentTs=None -> tourneysPlayersId=None -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> actionString=None -> -> id=3 -> handId=1 -> playerId=6 -> startCash=122 -> position=S -> seatNo=7 -> sitout=0 -> wentAllInOnStreet=None -> card1=0 -> card2=0 -> card3=0 -> card4=0 -> card5=0 -> card6=0 -> card7=0 -> startCards=0 -> ante=None -> winnings=0 -> rake=0 -> totalProfit=-2 -> comment=None -> commentTs=None -> tourneysPlayersId=None -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> actionString=None -> -> id=4 -> handId=1 -> playerId=5 -> startCash=293 -> position=0 -> seatNo=6 -> sitout=0 -> wentAllInOnStreet=None -> card1=0 -> card2=0 -> card3=0 -> card4=0 -> card5=0 -> card6=0 -> card7=0 -> startCards=0 -> ante=None -> winnings=0 -> rake=0 -> totalProfit=0 -> comment=None -> commentTs=None -> tourneysPlayersId=None -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> actionString=None -> -> id=5 -> handId=1 -> playerId=7 -> startCash=226 -> position=B -> seatNo=9 -> sitout=0 -> wentAllInOnStreet=None -> card1=0 -> card2=0 -> card3=0 -> card4=0 -> card5=0 -> card6=0 -> card7=0 -> startCards=0 -> ante=None -> winnings=4 -> rake=0 -> totalProfit=2 -> comment=None -> commentTs=None -> tourneysPlayersId=None -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=0 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> actionString=None -> -> id=6 -> handId=1 -> playerId=1 -> startCash=277 -> position=4 -> seatNo=1 -> sitout=0 -> wentAllInOnStreet=None -> card1=7 -> card2=28 -> card3=0 -> card4=0 -> card5=0 -> card6=0 -> card7=0 -> startCards=20 -> ante=None -> winnings=0 -> rake=0 -> totalProfit=0 -> comment=None -> commentTs=None -> tourneysPlayersId=None -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> actionString=None -> -> id=7 -> handId=1 -> playerId=4 -> startCash=238 -> position=1 -> seatNo=5 -> sitout=0 -> wentAllInOnStreet=None -> card1=0 -> card2=0 -> card3=0 -> card4=0 -> card5=0 -> card6=0 -> card7=0 -> startCards=0 -> ante=None -> winnings=0 -> rake=0 -> totalProfit=0 -> comment=None -> commentTs=None -> tourneysPlayersId=None -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> actionString=None -> -> id=8 -> handId=1 -> playerId=2 -> startCash=193 -> position=3 -> seatNo=2 -> sitout=0 -> wentAllInOnStreet=None -> card1=0 -> card2=0 -> card3=0 -> card4=0 -> card5=0 -> card6=0 -> card7=0 -> startCards=0 -> ante=None -> winnings=0 -> rake=0 -> totalProfit=0 -> comment=None -> commentTs=None -> tourneysPlayersId=None -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> actionString=None -> -37c898,1593 -< empty table ---- -> id=1 -> gametypeId=1 -> playerId=1 -> activeSeats=8 -> position=M -> tourneyTypeId=None -> styleKey=ignore -> HDs=1 -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> totalProfit=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> -> id=2 -> gametypeId=1 -> playerId=2 -> activeSeats=8 -> position=M -> tourneyTypeId=None -> styleKey=ignore -> HDs=1 -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> totalProfit=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> -> id=3 -> gametypeId=1 -> playerId=3 -> activeSeats=8 -> position=M -> tourneyTypeId=None -> styleKey=ignore -> HDs=1 -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> totalProfit=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> -> id=4 -> gametypeId=1 -> playerId=4 -> activeSeats=8 -> position=C -> tourneyTypeId=None -> styleKey=ignore -> HDs=1 -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> totalProfit=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> -> id=5 -> gametypeId=1 -> playerId=5 -> activeSeats=8 -> position=D -> tourneyTypeId=None -> styleKey=ignore -> HDs=1 -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> totalProfit=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> -> id=6 -> gametypeId=1 -> playerId=6 -> activeSeats=8 -> position=S -> tourneyTypeId=None -> styleKey=ignore -> HDs=1 -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> totalProfit=-2 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> -> id=7 -> gametypeId=1 -> playerId=7 -> activeSeats=8 -> position=B -> tourneyTypeId=None -> styleKey=ignore -> HDs=1 -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=0 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> totalProfit=2 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> -> id=8 -> gametypeId=1 -> playerId=8 -> activeSeats=8 -> position=E -> tourneyTypeId=None -> styleKey=ignore -> HDs=1 -> wonWhenSeenStreet1=0.0 -> wonWhenSeenStreet2=0.0 -> wonWhenSeenStreet3=0.0 -> wonWhenSeenStreet4=0.0 -> wonAtSD=0.0 -> street0VPI=0 -> street0Aggr=0 -> street0_3BChance=0 -> street0_3BDone=0 -> street0_4BChance=0 -> street0_4BDone=0 -> other3BStreet0=0 -> other4BStreet0=0 -> street1Seen=0 -> street2Seen=0 -> street3Seen=0 -> street4Seen=0 -> sawShowdown=0 -> street1Aggr=0 -> street2Aggr=0 -> street3Aggr=0 -> street4Aggr=0 -> otherRaisedStreet0=0 -> otherRaisedStreet1=0 -> otherRaisedStreet2=0 -> otherRaisedStreet3=0 -> otherRaisedStreet4=0 -> foldToOtherRaisedStreet0=0 -> foldToOtherRaisedStreet1=0 -> foldToOtherRaisedStreet2=0 -> foldToOtherRaisedStreet3=0 -> foldToOtherRaisedStreet4=0 -> raiseFirstInChance=1 -> raisedFirstIn=0 -> foldBbToStealChance=0 -> foldedBbToSteal=0 -> foldSbToStealChance=0 -> foldedSbToSteal=0 -> street1CBChance=0 -> street1CBDone=0 -> street2CBChance=0 -> street2CBDone=0 -> street3CBChance=0 -> street3CBDone=0 -> street4CBChance=0 -> street4CBDone=0 -> foldToStreet1CBChance=0 -> foldToStreet1CBDone=0 -> foldToStreet2CBChance=0 -> foldToStreet2CBDone=0 -> foldToStreet3CBChance=0 -> foldToStreet3CBDone=0 -> foldToStreet4CBChance=0 -> foldToStreet4CBDone=0 -> totalProfit=0 -> street1CheckCallRaiseChance=0 -> street1CheckCallRaiseDone=0 -> street2CheckCallRaiseChance=0 -> street2CheckCallRaiseDone=0 -> street3CheckCallRaiseChance=0 -> street3CheckCallRaiseDone=0 -> street4CheckCallRaiseChance=0 -> street4CheckCallRaiseDone=0 -> street0Calls=0 -> street1Calls=0 -> street2Calls=0 -> street3Calls=0 -> street4Calls=0 -> street0Bets=0 -> street1Bets=0 -> street2Bets=0 -> street3Bets=0 -> street4Bets=0 -> street0Raises=0 -> street1Raises=0 -> street2Raises=0 -> street3Raises=0 -> street4Raises=0 -> -42c1598,1645 -< empty table ---- -> id=1 -> name=steffen780 -> siteId=2 -> comment=None -> commentTs=None -> -> id=2 -> name=ialexiv -> siteId=2 -> comment=None -> commentTs=None -> -> id=3 -> name=seregaserg -> siteId=2 -> comment=None -> commentTs=None -> -> id=4 -> name=GREEN373 -> siteId=2 -> comment=None -> commentTs=None -> -> id=5 -> name=Swann99 -> siteId=2 -> comment=None -> commentTs=None -> -> id=6 -> name=ToolTheSheep -> siteId=2 -> comment=None -> commentTs=None -> -> id=7 -> name=bigsergv -> siteId=2 -> comment=None -> commentTs=None -> -> id=8 -> name=garikoitz_22 -> siteId=2 -> comment=None -> commentTs=None -> diff --git a/pyfpdb/regression-test-files/dumps/0001_empty_DB.txt b/pyfpdb/regression-test-files/empty_DB.0000.sql similarity index 100% rename from pyfpdb/regression-test-files/dumps/0001_empty_DB.txt rename to pyfpdb/regression-test-files/empty_DB.0000.sql diff --git a/pyfpdb/regression-test-files/tour/Stars/Flop/LHE-USD-STT-5-20100607.allInPreflop.txt.0002.sql b/pyfpdb/regression-test-files/tour/Stars/Flop/LHE-USD-STT-5-20100607.allInPreflop.txt.0002.sql new file mode 100644 index 00000000..7f0a00cc --- /dev/null +++ b/pyfpdb/regression-test-files/tour/Stars/Flop/LHE-USD-STT-5-20100607.allInPreflop.txt.0002.sql @@ -0,0 +1,3664 @@ +fpdb database dump +DB version=142 + +################### +Table Autorates +################### +empty table + +################### +Table Backings +################### +empty table + +################### +Table Gametypes +################### + id=1 + siteId=2 + currency=USD + type=ring + base=hold + category=holdem + limitType=fl + hiLo=h + smallBlind=2 + bigBlind=5 + smallBet=5 + bigBet=10 + + id=2 + siteId=2 + currency=T$ + type=tour + base=hold + category=holdem + limitType=fl + hiLo=h + smallBlind=5000 + bigBlind=10000 + smallBet=10000 + bigBet=20000 + + +################### +Table Hands +################### + id=1 + tableName=Elektra II + siteHandNo=46290540537 + tourneyId=None + gametypeId=1 + startTime=2010-07-03 12:46:30+00:00 + importTime=ignore + seats=8 + maxSeats=10 + rush=None + boardcard1=0 + boardcard2=0 + boardcard3=0 + boardcard4=0 + boardcard5=0 + texture=None + playersVpi=0 + playersAtStreet1=0 + playersAtStreet2=0 + playersAtStreet3=0 + playersAtStreet4=0 + playersAtShowdown=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + street1Pot=0 + street2Pot=0 + street3Pot=0 + street4Pot=0 + showdownPot=0 + comment=None + commentTs=None + + id=2 + tableName=280631121 1 + siteHandNo=45201040897 + tourneyId=1 + gametypeId=2 + startTime=2010-06-07 20:14:48+00:00 + importTime=ignore + seats=9 + maxSeats=9 + rush=None + boardcard1=27 + boardcard2=11 + boardcard3=31 + boardcard4=47 + boardcard5=16 + texture=None + playersVpi=4 + playersAtStreet1=4 + playersAtStreet2=3 + playersAtStreet3=3 + playersAtStreet4=0 + playersAtShowdown=3 + street0Raises=2 + street1Raises=1 + street2Raises=1 + street3Raises=1 + street4Raises=0 + street1Pot=59000 + street2Pot=79000 + street3Pot=99000 + street4Pot=0 + showdownPot=99000 + comment=None + commentTs=None + + +################### +Table HandsActions +################### +empty table + +################### +Table HandsPlayers +################### + id=1 + handId=1 + playerId=8 + startCash=169 + position=5 + seatNo=10 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=2 + handId=1 + playerId=3 + startCash=280 + position=2 + seatNo=4 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=3 + handId=1 + playerId=6 + startCash=122 + position=S + seatNo=7 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=-2 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=4 + handId=1 + playerId=5 + startCash=293 + position=0 + seatNo=6 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=5 + handId=1 + playerId=7 + startCash=226 + position=B + seatNo=9 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=4 + rake=0 + totalProfit=2 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=6 + handId=1 + playerId=1 + startCash=277 + position=4 + seatNo=1 + sitout=0 + wentAllInOnStreet=None + card1=7 + card2=28 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=20 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=7 + handId=1 + playerId=4 + startCash=238 + position=1 + seatNo=5 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=8 + handId=1 + playerId=2 + startCash=193 + position=3 + seatNo=2 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=None + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=9 + handId=2 + playerId=9 + startCash=11000 + position=1 + seatNo=1 + sitout=0 + wentAllInOnStreet=0 + card1=21 + card2=52 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=104 + ante=None + winnings=0 + rake=0 + totalProfit=-11000 + comment=None + commentTs=None + tourneysPlayersId=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=1 + street0Aggr=1 + street0_3BChance=1 + street0_3BDone=1 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=1 + street2Seen=1 + street3Seen=1 + street4Seen=0 + sawShowdown=1 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=1 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=10 + handId=2 + playerId=14 + startCash=142500 + position=5 + seatNo=6 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=-11000 + comment=None + commentTs=None + tourneysPlayersId=6 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=1 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=1 + street0_4BDone=0 + other3BStreet0=1 + other4BStreet0=0 + street1Seen=1 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=1 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=1 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=1 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=2 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=11 + handId=2 + playerId=16 + startCash=39000 + position=2 + seatNo=9 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=9 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=1 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=1 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=1 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=12 + handId=2 + playerId=13 + startCash=189000 + position=6 + seatNo=5 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=5 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=13 + handId=2 + playerId=10 + startCash=143000 + position=0 + seatNo=2 + sitout=1 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=2 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=1 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=1 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=14 + handId=2 + playerId=1 + startCash=174500 + position=3 + seatNo=8 + sitout=0 + wentAllInOnStreet=None + card1=22 + card2=9 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=113 + ante=None + winnings=0 + rake=0 + totalProfit=-36000 + comment=None + commentTs=None + tourneysPlayersId=8 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=1 + street0Aggr=1 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=1 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=1 + street2Seen=1 + street3Seen=1 + street4Seen=0 + sawShowdown=1 + street1Aggr=1 + street2Aggr=1 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=1 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=1 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=1 + street1Calls=0 + street2Calls=0 + street3Calls=1 + street4Calls=0 + street0Bets=1 + street1Bets=1 + street2Bets=1 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=15 + handId=2 + playerId=15 + startCash=196000 + position=4 + seatNo=7 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=0 + comment=None + commentTs=None + tourneysPlayersId=7 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=16 + handId=2 + playerId=11 + startCash=125000 + position=S + seatNo=3 + sitout=0 + wentAllInOnStreet=None + card1=34 + card2=29 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=94 + ante=None + winnings=99000 + rake=0 + totalProfit=63000 + comment=None + commentTs=None + tourneysPlayersId=3 + wonWhenSeenStreet1=1.0 + wonWhenSeenStreet2=1.0 + wonWhenSeenStreet3=1.0 + wonWhenSeenStreet4=0.0 + wonAtSD=1.0 + street0VPI=1 + street0Aggr=1 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=1 + street0_4BDone=0 + other3BStreet0=1 + other4BStreet0=0 + street1Seen=1 + street2Seen=1 + street3Seen=1 + street4Seen=0 + sawShowdown=1 + street1Aggr=0 + street2Aggr=0 + street3Aggr=1 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=1 + otherRaisedStreet2=1 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=1 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=1 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=1 + street1Calls=1 + street2Calls=1 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=1 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + + id=17 + handId=2 + playerId=12 + startCash=330000 + position=B + seatNo=4 + sitout=0 + wentAllInOnStreet=None + card1=0 + card2=0 + card3=0 + card4=0 + card5=0 + card6=0 + card7=0 + startCards=0 + ante=None + winnings=0 + rake=0 + totalProfit=-5000 + comment=None + commentTs=None + tourneysPlayersId=4 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=1 + street0_4BDone=0 + other3BStreet0=1 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=1 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=1 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + actionString=None + +!!!verified to here +################### +Table HudCache +################### + id=1 + gametypeId=1 + playerId=1 + activeSeats=8 + position=M + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=2 + gametypeId=1 + playerId=2 + activeSeats=8 + position=M + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=3 + gametypeId=1 + playerId=3 + activeSeats=8 + position=M + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=4 + gametypeId=1 + playerId=4 + activeSeats=8 + position=C + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=5 + gametypeId=1 + playerId=5 + activeSeats=8 + position=D + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=6 + gametypeId=1 + playerId=6 + activeSeats=8 + position=S + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=-2 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=7 + gametypeId=1 + playerId=7 + activeSeats=8 + position=B + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=2 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=8 + gametypeId=1 + playerId=8 + activeSeats=8 + position=E + tourneyTypeId=None + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=9 + gametypeId=2 + playerId=1 + activeSeats=9 + position=M + tourneyTypeId=1 + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=1 + street0Aggr=1 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=1 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=1 + street2Seen=1 + street3Seen=1 + street4Seen=0 + sawShowdown=1 + street1Aggr=1 + street2Aggr=1 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=1 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=1 + street2CBDone=1 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=-36000 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=1 + street1Calls=0 + street2Calls=0 + street3Calls=1 + street4Calls=0 + street0Bets=0 + street1Bets=1 + street2Bets=1 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=10 + gametypeId=2 + playerId=9 + activeSeats=9 + position=C + tourneyTypeId=1 + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=1 + street0Aggr=1 + street0_3BChance=1 + street0_3BDone=1 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=1 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=-11000 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=11 + gametypeId=2 + playerId=10 + activeSeats=9 + position=D + tourneyTypeId=1 + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=1 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=12 + gametypeId=2 + playerId=11 + activeSeats=9 + position=S + tourneyTypeId=1 + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=1.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=1.0 + street0VPI=1 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=1 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=1 + street2Seen=1 + street3Seen=1 + street4Seen=0 + sawShowdown=1 + street1Aggr=0 + street2Aggr=0 + street3Aggr=1 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=1 + otherRaisedStreet2=1 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=63000 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=1 + street2CheckCallRaiseDone=1 + street3CheckCallRaiseChance=1 + street3CheckCallRaiseDone=1 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=1 + street1Calls=1 + street2Calls=1 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=1 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=13 + gametypeId=2 + playerId=12 + activeSeats=9 + position=B + tourneyTypeId=1 + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=1 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=-5000 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=14 + gametypeId=2 + playerId=13 + activeSeats=9 + position=E + tourneyTypeId=1 + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=15 + gametypeId=2 + playerId=14 + activeSeats=9 + position=E + tourneyTypeId=1 + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=1 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=1 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=1 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=1 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=1 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=1 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=-11000 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=1 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=2 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=16 + gametypeId=2 + playerId=15 + activeSeats=9 + position=M + tourneyTypeId=1 + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=0 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + id=17 + gametypeId=2 + playerId=16 + activeSeats=9 + position=M + tourneyTypeId=1 + styleKey=ignore + HDs=1 + wonWhenSeenStreet1=0.0 + wonWhenSeenStreet2=0.0 + wonWhenSeenStreet3=0.0 + wonWhenSeenStreet4=0.0 + wonAtSD=0.0 + street0VPI=0 + street0Aggr=0 + street0_3BChance=1 + street0_3BDone=0 + street0_4BChance=0 + street0_4BDone=0 + other3BStreet0=0 + other4BStreet0=0 + street1Seen=0 + street2Seen=0 + street3Seen=0 + street4Seen=0 + sawShowdown=0 + street1Aggr=0 + street2Aggr=0 + street3Aggr=0 + street4Aggr=0 + otherRaisedStreet0=0 + otherRaisedStreet1=0 + otherRaisedStreet2=0 + otherRaisedStreet3=0 + otherRaisedStreet4=0 + foldToOtherRaisedStreet0=0 + foldToOtherRaisedStreet1=0 + foldToOtherRaisedStreet2=0 + foldToOtherRaisedStreet3=0 + foldToOtherRaisedStreet4=0 + raiseFirstInChance=0 + raisedFirstIn=0 + foldBbToStealChance=0 + foldedBbToSteal=0 + foldSbToStealChance=0 + foldedSbToSteal=0 + street1CBChance=0 + street1CBDone=0 + street2CBChance=0 + street2CBDone=0 + street3CBChance=0 + street3CBDone=0 + street4CBChance=0 + street4CBDone=0 + foldToStreet1CBChance=0 + foldToStreet1CBDone=0 + foldToStreet2CBChance=0 + foldToStreet2CBDone=0 + foldToStreet3CBChance=0 + foldToStreet3CBDone=0 + foldToStreet4CBChance=0 + foldToStreet4CBDone=0 + totalProfit=0 + street1CheckCallRaiseChance=0 + street1CheckCallRaiseDone=0 + street2CheckCallRaiseChance=0 + street2CheckCallRaiseDone=0 + street3CheckCallRaiseChance=0 + street3CheckCallRaiseDone=0 + street4CheckCallRaiseChance=0 + street4CheckCallRaiseDone=0 + street0Calls=0 + street1Calls=0 + street2Calls=0 + street3Calls=0 + street4Calls=0 + street0Bets=0 + street1Bets=0 + street2Bets=0 + street3Bets=0 + street4Bets=0 + street0Raises=0 + street1Raises=0 + street2Raises=0 + street3Raises=0 + street4Raises=0 + + +################### +Table Players +################### + id=1 + name=steffen780 + siteId=2 + comment=None + commentTs=None + + id=2 + name=ialexiv + siteId=2 + comment=None + commentTs=None + + id=3 + name=seregaserg + siteId=2 + comment=None + commentTs=None + + id=4 + name=GREEN373 + siteId=2 + comment=None + commentTs=None + + id=5 + name=Swann99 + siteId=2 + comment=None + commentTs=None + + id=6 + name=ToolTheSheep + siteId=2 + comment=None + commentTs=None + + id=7 + name=bigsergv + siteId=2 + comment=None + commentTs=None + + id=8 + name=garikoitz_22 + siteId=2 + comment=None + commentTs=None + + id=9 + name=Slush11 + siteId=2 + comment=None + commentTs=None + + id=10 + name=zsoccerino + siteId=2 + comment=None + commentTs=None + + id=11 + name=101ripcord + siteId=2 + comment=None + commentTs=None + + id=12 + name=Lawwill + siteId=2 + comment=None + commentTs=None + + id=13 + name=nakamurov + siteId=2 + comment=None + commentTs=None + + id=14 + name=67_fredf_67 + siteId=2 + comment=None + commentTs=None + + id=15 + name=NICk.nico333 + siteId=2 + comment=None + commentTs=None + + id=16 + name=PORCHES996 + siteId=2 + comment=None + commentTs=None + + +################### +Table Settings +################### + version=142 + + +################### +Table Sites +################### + id=1 + name=Full Tilt Poker + code=FT + + id=2 + name=PokerStars + code=PS + + id=3 + name=Everleaf + code=EV + + id=4 + name=Win2day + code=W2 + + id=5 + name=OnGame + code=OG + + id=6 + name=UltimateBet + code=UB + + id=7 + name=Betfair + code=BF + + id=8 + name=Absolute + code=AB + + id=9 + name=PartyPoker + code=PP + + id=10 + name=Partouche + code=PA + + id=11 + name=Carbon + code=CA + + id=12 + name=PKR + code=PK + + +################### +Table TourneyTypes +################### + id=1 + siteId=2 + currency=USD + buyin=500 + fee=50 + category=holdem + limitType=fl + buyInChips=None + maxSeats=None + rebuy=0 + rebuyCost=None + rebuyFee=None + rebuyChips=None + addOn=0 + addOnCost=None + addOnFee=None + addOnChips=None + knockout=0 + koBounty=None + speed=Normal + shootout=0 + matrix=0 + sng=None + satellite=None + doubleOrNothing=None + guarantee=None + added=None + addedCurrency=None + + +################### +Table Tourneys +################### + id=1 + tourneyTypeId=1 + siteTourneyNo=280631121 + entries=None + prizepool=None + startTime=2010-06-07 20:14:48+00:00 + endTime=None + tourneyName=None + matrixIdProcessed=None + totalRebuyCount=None + totalAddOnCount=None + comment=None + commentTs=None + + +################### +Table TourneysPlayers +################### + id=1 + tourneyId=1 + playerId=9 + rank=None + winnings=None + winningsCurrency=None + rebuyCount=None + addOnCount=None + koCount=None + comment=None + commentTs=None + + id=2 + tourneyId=1 + playerId=10 + rank=None + winnings=None + winningsCurrency=None + rebuyCount=None + addOnCount=None + koCount=None + comment=None + commentTs=None + + id=3 + tourneyId=1 + playerId=11 + rank=None + winnings=None + winningsCurrency=None + rebuyCount=None + addOnCount=None + koCount=None + comment=None + commentTs=None + + id=4 + tourneyId=1 + playerId=12 + rank=None + winnings=None + winningsCurrency=None + rebuyCount=None + addOnCount=None + koCount=None + comment=None + commentTs=None + + id=5 + tourneyId=1 + playerId=13 + rank=None + winnings=None + winningsCurrency=None + rebuyCount=None + addOnCount=None + koCount=None + comment=None + commentTs=None + + id=6 + tourneyId=1 + playerId=14 + rank=None + winnings=None + winningsCurrency=None + rebuyCount=None + addOnCount=None + koCount=None + comment=None + commentTs=None + + id=7 + tourneyId=1 + playerId=15 + rank=None + winnings=None + winningsCurrency=None + rebuyCount=None + addOnCount=None + koCount=None + comment=None + commentTs=None + + id=8 + tourneyId=1 + playerId=1 + rank=None + winnings=None + winningsCurrency=None + rebuyCount=None + addOnCount=None + koCount=None + comment=None + commentTs=None + + id=9 + tourneyId=1 + playerId=16 + rank=None + winnings=None + winningsCurrency=None + rebuyCount=None + addOnCount=None + koCount=None + comment=None + commentTs=None + + From 48e0cbe8cddbf189c218cb73c7c00fa16d8f8d7f Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 19 Aug 2010 23:17:58 +0200 Subject: [PATCH 281/301] HUD: add error handler for error reported by phenixrising --- pyfpdb/Hud.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index 0fdf314f..c394108c 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -525,7 +525,10 @@ class Hud: def debug_stat_windows(self, *args): # print self.table, "\n", self.main_window.window.get_transient_for() for w in self.stat_windows: - print self.stat_windows[w].window.window.get_transient_for() + try: + print self.stat_windows[w].window.window.get_transient_for() + except AttributeError: + print "this window doesnt have get_transient_for" def save_layout(self, *args): new_layout = [(0, 0)] * self.max From 08462884cfd6af7bac48736c8d0f724f86090075 Mon Sep 17 00:00:00 2001 From: Worros Date: Fri, 20 Aug 2010 16:51:41 +0800 Subject: [PATCH 282/301] OnGame: Significant updates. This parser hasn't been updated/completed since a very early version of HHC File is updated to the point where it will now run and just crashes on a regex --- pyfpdb/HUD_config.xml.example | 1 + pyfpdb/OnGameToFpdb.py | 127 +++++++++++----------------------- 2 files changed, 42 insertions(+), 86 deletions(-) diff --git a/pyfpdb/HUD_config.xml.example b/pyfpdb/HUD_config.xml.example index d7cd3a17..e95db1b8 100644 --- a/pyfpdb/HUD_config.xml.example +++ b/pyfpdb/HUD_config.xml.example @@ -670,6 +670,7 @@ Left-Drag to Move" + diff --git a/pyfpdb/OnGameToFpdb.py b/pyfpdb/OnGameToFpdb.py index 80d8d646..b82329f8 100755 --- a/pyfpdb/OnGameToFpdb.py +++ b/pyfpdb/OnGameToFpdb.py @@ -24,104 +24,60 @@ from HandHistoryConverter import * # OnGame HH Format -#Texas Hold'em $.5-$1 NL (real money), hand #P4-76915775-797 -#Table Kuopio, 20 Sep 2008 11:59 PM - -#Seat 1: .Lucchess ($4.17 in chips) -#Seat 3: Gloff1 ($108 in chips) -#Seat 4: far a ($13.54 in chips) -#Seat 5: helander2222 ($49.77 in chips) -#Seat 6: lopllopl ($62.06 in chips) -#Seat 7: crazyhorse6 ($101.91 in chips) -#Seat 8: peeci ($25.02 in chips) -#Seat 9: Manuelhertz ($49 in chips) -#Seat 10: Eurolll ($58.25 in chips) -#ANTES/BLINDS -#helander2222 posts blind ($0.25), lopllopl posts blind ($0.50). - -#PRE-FLOP -#crazyhorse6 folds, peeci folds, Manuelhertz folds, Eurolll calls $0.50, .Lucchess calls $0.50, Gloff1 folds, far a folds, helander2222 folds, lopllopl checks. - -#FLOP [board cards AH,8H,KH ] -#lopllopl checks, Eurolll checks, .Lucchess checks. - -#TURN [board cards AH,8H,KH,6S ] -#lopllopl checks, Eurolll checks, .Lucchess checks. - -#RIVER [board cards AH,8H,KH,6S,8S ] -#lopllopl checks, Eurolll bets $1.25, .Lucchess folds, lopllopl folds. - -#SHOWDOWN -#Eurolll wins $2.92. - -#SUMMARY -#Dealer: far a -#Pot: $3, (including rake: $0.08) -#.Lucchess, loses $0.50 -#Gloff1, loses $0 -#far a, loses $0 -#helander2222, loses $0.25 -#lopllopl, loses $0.50 -#crazyhorse6, loses $0 -#peeci, loses $0 -#Manuelhertz, loses $0 -#Eurolll, bets $1.75, collects $2.92, net $1.17 - - class OnGame(HandHistoryConverter): - def __init__(self, config, file): - print "Initialising OnGame converter class" - HandHistoryConverter.__init__(self, config, file, sitename="OnGame") # Call super class init. - self.sitename = "OnGame" - self.setFileType("text", "cp1252") - self.siteId = 5 # Needs to match id entry in Sites database + sitename = "OnGame" + filetype = "text" + codepage = ("utf8", "cp1252") + siteId = 5 # Needs to match id entry in Sites database + #self.rexx.setGameInfoRegex('.*Blinds \$?(?P[.0-9]+)/\$?(?P[.0-9]+)') - self.rexx.setSplitHandRegex('\n\n\n+') + # Static regexes + re_SplitHands = re.compile('\n\n\n+') - #Texas Hold'em $.5-$1 NL (real money), hand #P4-76915775-797 - #Table Kuopio, 20 Sep 2008 11:59 PM - self.rexx.setHandInfoRegex(r"Texas Hold'em \$?(?P[.0-9]+)-\$?(?P[.0-9]+) NL \(real money\), hand #(?P[-A-Z\d]+)\nTable\ (?P
[\' \w]+), (?P\d\d \w+ \d\d\d\d \d\d:\d\d (AM|PM))") - # SB BB HID TABLE DAY MON YEAR HR12 MIN AMPM + #Texas Hold'em $.5-$1 NL (real money), hand #P4-76915775-797 + #Table Kuopio, 20 Sep 2008 11:59 PM + re_HandInfo = re.compile(r"Texas Hold'em \$?(?P[.0-9]+)-\$?(?P[.0-9]+) NL \(real money\), hand #(?P[-A-Z\d]+)\nTable\ (?P
[\' \w]+), (?P\d\d \w+ \d\d\d\d \d\d:\d\d (AM|PM))") + # SB BB HID TABLE DAY MON YEAR HR12 MIN AMPM - self.rexx.button_re = re.compile('#SUMMARY\nDealer: (?P.*)\n') + # self.rexx.button_re = re.compile('#SUMMARY\nDealer: (?P.*)\n') - #Seat 1: .Lucchess ($4.17 in chips) - self.rexx.setPlayerInfoRegex('Seat (?P[0-9]+): (?P.*) \((\$(?P[.0-9]+) in chips)\)') + #Seat 1: .Lucchess ($4.17 in chips) + re_PlayerInfo = re.compile(u'Seat (?P[0-9]+): (?P.*) \((\$(?P[.0-9]+) in chips)\)') - #ANTES/BLINDS - #helander2222 posts blind ($0.25), lopllopl posts blind ($0.50). - self.rexx.setPostSbRegex('(?P.*) posts blind \(\$?(?P[.0-9]+)\), ') - self.rexx.setPostBbRegex('\), (?P.*) posts blind \(\$?(?P[.0-9]+)\).') - self.rexx.setPostBothRegex('.*\n(?P.*): posts small \& big blinds \[\$? (?P[.0-9]+)') - self.rexx.setHeroCardsRegex('.*\nDealt\sto\s(?P.*)\s\[ (?P.*) \]') + #ANTES/BLINDS + #helander2222 posts blind ($0.25), lopllopl posts blind ($0.50). + re_PostSB = re.compile('(?P.*) posts blind \(\$?(?P[.0-9]+)\), ') + re_PostBB = re.compile('\), (?P.*) posts blind \(\$?(?P[.0-9]+)\).') + re_PostBoth = re.compile('.*\n(?P.*): posts small \& big blinds \[\$? (?P[.0-9]+)') + re_HeroCards = re.compile('.*\nDealt\sto\s(?P.*)\s\[ (?P.*) \]') - #lopllopl checks, Eurolll checks, .Lucchess checks. - self.rexx.setActionStepRegex('(, )?(?P.*?)(?P bets| checks| raises| calls| folds)( \$(?P\d*\.?\d*))?( and is all-in)?') + #lopllopl checks, Eurolll checks, .Lucchess checks. + re_Action = re.compile('(, )?(?P.*?)(?P bets| checks| raises| calls| folds)( \$(?P\d*\.?\d*))?( and is all-in)?') + re_Board = re.compile(r"\[board cards (?P.+) \]") - #Uchilka shows [ KC,JD ] - self.rexx.setShowdownActionRegex('(?P.*) shows \[ (?P.+) \]') + #Uchilka shows [ KC,JD ] + re_ShowdownAction = re.compile('(?P.*) shows \[ (?P.+) \]') - # TODO: read SUMMARY correctly for collected pot stuff. - #Uchilka, bets $11.75, collects $23.04, net $11.29 - self.rexx.setCollectPotRegex('(?P.*), bets.+, collects \$(?P\d*\.?\d*), net.* ') - self.rexx.sits_out_re = re.compile('(?P.*) sits out') - self.rexx.compileRegexes() + # TODO: read SUMMARY correctly for collected pot stuff. + #Uchilka, bets $11.75, collects $23.04, net $11.29 + re_CollectPot = re.compile('(?P.*), bets.+, collects \$(?P\d*\.?\d*), net.* ') + re_sitsOut = re.compile('(?P.*) sits out') def readSupportedGames(self): pass - def determineGameType(self): + def determineGameType(self, handText): # Cheating with this regex, only support nlhe at the moment gametype = ["ring", "hold", "nl"] - m = self.rexx.hand_info_re.search(self.obs) + m = self.re_HandInfo.search(handText) gametype = gametype + [m.group('SB')] gametype = gametype + [m.group('BB')] return gametype def readHandInfo(self, hand): - m = self.rexx.hand_info_re.search(hand.string) + m = self.re_HandInfo.search(hand.string) hand.handid = m.group('HID') hand.tablename = m.group('TABLE') #hand.buttonpos = self.rexx.button_re.search(hand.string).group('BUTTONPNAME') @@ -143,7 +99,7 @@ class OnGame(HandHistoryConverter): #int(m.group('HR')), int(m.group('MIN')), int(m.group('SEC'))) def readPlayerStacks(self, hand): - m = self.rexx.player_info_re.finditer(hand.string) + m = self.re_PlayerInf.finditer(hand.string) players = [] for a in m: hand.addPlayer(int(a.group('SEAT')), a.group('PNAME'), a.group('CASH')) @@ -162,25 +118,24 @@ class OnGame(HandHistoryConverter): def readCommunityCards(self, hand, street): - self.rexx.board_re = re.compile(r"\[board cards (?P.+) \]") print hand.streets.group(street) if street in ('FLOP','TURN','RIVER'): # a list of streets which get dealt community cards (i.e. all but PREFLOP) - m = self.rexx.board_re.search(hand.streets.group(street)) + m = self.re_Board.search(hand.streets.group(street)) hand.setCommunityCards(street, m.group('CARDS').split(',')) def readBlinds(self, hand): try: - m = self.rexx.small_blind_re.search(hand.string) + m = self.re_PostSB.search(hand.string) hand.addBlind(m.group('PNAME'), 'small blind', m.group('SB')) except: # no small blind hand.addBlind(None, None, None) - for a in self.rexx.big_blind_re.finditer(hand.string): + for a in self.re_PostBB.finditer(hand.string): hand.addBlind(a.group('PNAME'), 'big blind', a.group('BB')) - for a in self.rexx.both_blinds_re.finditer(hand.string): + for a in self.re_PostBoth.finditer(hand.string): hand.addBlind(a.group('PNAME'), 'small & big blinds', a.group('SBBB')) def readHeroCards(self, hand): - m = self.rexx.hero_cards_re.search(hand.string) + m = self.re_HeroCards.search(hand.string) if(m == None): #Not involved in hand hand.involved = False @@ -193,7 +148,7 @@ class OnGame(HandHistoryConverter): hand.addHoleCards(cards, m.group('PNAME')) def readAction(self, hand, street): - m = self.rexx.action_re.finditer(hand.streets.group(street)) + m = self.re_Action.finditer(hand.streets.group(street)) for action in m: if action.group('ATYPE') == ' raises': hand.addRaiseTo( street, action.group('PNAME'), action.group('BET') ) @@ -211,13 +166,13 @@ class OnGame(HandHistoryConverter): # TODO: Everleaf does not record uncalled bets. def readShowdownActions(self, hand): - for shows in self.rexx.showdown_action_re.finditer(hand.string): + for shows in self.re_ShowdownAction.finditer(hand.string): cards = shows.group('CARDS') cards = set(cards.split(',')) hand.addShownCards(cards, shows.group('PNAME')) def readCollectPot(self,hand): - for m in self.rexx.collect_pot_re.finditer(hand.string): + for m in self.re_CollectPot.finditer(hand.string): hand.addCollectPot(player=m.group('PNAME'),pot=m.group('POT')) def readShownCards(self,hand): From dd3cd4fad43ecd86e183faa8e73dbc5b5fc2e8fc Mon Sep 17 00:00:00 2001 From: Worros Date: Fri, 20 Aug 2010 17:10:38 +0800 Subject: [PATCH 283/301] OnGame: gettextify and add an error handler --- pyfpdb/OnGameToFpdb.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pyfpdb/OnGameToFpdb.py b/pyfpdb/OnGameToFpdb.py index b82329f8..d9c069a7 100755 --- a/pyfpdb/OnGameToFpdb.py +++ b/pyfpdb/OnGameToFpdb.py @@ -21,6 +21,19 @@ import sys import Configuration from HandHistoryConverter import * +from decimal import Decimal + +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string # OnGame HH Format @@ -71,6 +84,12 @@ class OnGame(HandHistoryConverter): gametype = ["ring", "hold", "nl"] m = self.re_HandInfo.search(handText) + if not m: + tmp = handText[0:100] + log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp) + log.error(_("determineGameType: Raising FpdbParseError")) + raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp) + gametype = gametype + [m.group('SB')] gametype = gametype + [m.group('BB')] From 5f425e0910077f6fe8e855251cebf1534a013a5f Mon Sep 17 00:00:00 2001 From: Worros Date: Fri, 20 Aug 2010 17:59:52 +0800 Subject: [PATCH 284/301] OnGame: Fix determineGameType Assumes that its a cash game at the moment, and needs some love for non-limit holdem --- pyfpdb/OnGameToFpdb.py | 63 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 11 deletions(-) diff --git a/pyfpdb/OnGameToFpdb.py b/pyfpdb/OnGameToFpdb.py index d9c069a7..5f8e1683 100755 --- a/pyfpdb/OnGameToFpdb.py +++ b/pyfpdb/OnGameToFpdb.py @@ -43,14 +43,44 @@ class OnGame(HandHistoryConverter): codepage = ("utf8", "cp1252") siteId = 5 # Needs to match id entry in Sites database + substitutions = { + 'LEGAL_ISO' : "USD|EUR|GBP|CAD|FPP", # legal ISO currency codes + 'LS' : "\$|\xe2\x82\xac|" # legal currency symbols - Euro(cp1252, utf-8) + } + + limits = { 'NO LIMIT':'nl', 'LIMIT':'fl'} + + games = { # base, category + "TEXAS_HOLDEM" : ('hold','holdem'), + # 'Omaha' : ('hold','omahahi'), + # 'Omaha Hi/Lo' : ('hold','omahahilo'), + # 'Razz' : ('stud','razz'), + # 'RAZZ' : ('stud','razz'), + # '7 Card Stud' : ('stud','studhi'), + # '7 Card Stud Hi/Lo' : ('stud','studhilo'), + # 'Badugi' : ('draw','badugi'), + # 'Triple Draw 2-7 Lowball' : ('draw','27_3draw'), + # '5 Card Draw' : ('draw','fivedraw') + } + #self.rexx.setGameInfoRegex('.*Blinds \$?(?P[.0-9]+)/\$?(?P[.0-9]+)') # Static regexes re_SplitHands = re.compile('\n\n\n+') - - #Texas Hold'em $.5-$1 NL (real money), hand #P4-76915775-797 - #Table Kuopio, 20 Sep 2008 11:59 PM - re_HandInfo = re.compile(r"Texas Hold'em \$?(?P[.0-9]+)-\$?(?P[.0-9]+) NL \(real money\), hand #(?P[-A-Z\d]+)\nTable\ (?P
[\' \w]+), (?P\d\d \w+ \d\d\d\d \d\d:\d\d (AM|PM))") - # SB BB HID TABLE DAY MON YEAR HR12 MIN AMPM + + # ***** History for hand R5-75443872-57 ***** + # Start hand: Wed Aug 18 19:29:10 GMT+0100 2010 + # Table: someplace [75443872] (LIMIT TEXAS_HOLDEM 0.50/1, Real money) + re_HandInfo = re.compile(u""" + \*\*\*\*\*\sHistory\sfor\shand\s(?P[-A-Z\d]+).* + Start\shand:\s(?P.*) + Table:\s(?P
[\'\w]+)\s\[\d+\]\s\( + ( + (?PNo\sLimit|Limit|LIMIT|Pot\sLimit)\s + (?PTEXAS_HOLDEM|RAZZ)\s + (?P[.0-9]+)/ + (?P[.0-9]+) + )? + """ % substitutions, re.MULTILINE|re.DOTALL|re.VERBOSE) # self.rexx.button_re = re.compile('#SUMMARY\nDealer: (?P.*)\n') @@ -80,8 +110,9 @@ class OnGame(HandHistoryConverter): pass def determineGameType(self, handText): - # Cheating with this regex, only support nlhe at the moment - gametype = ["ring", "hold", "nl"] + # Inspect the handText and return the gametype dict + # gametype dict is: {'limitType': xxx, 'base': xxx, 'category': xxx} + info = {} m = self.re_HandInfo.search(handText) if not m: @@ -90,10 +121,20 @@ class OnGame(HandHistoryConverter): log.error(_("determineGameType: Raising FpdbParseError")) raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp) - gametype = gametype + [m.group('SB')] - gametype = gametype + [m.group('BB')] - - return gametype + mg = m.groupdict() + + info['type'] = 'ring' + + if 'LIMIT' in mg: + info['limitType'] = self.limits[mg['LIMIT']] + if 'GAME' in mg: + (info['base'], info['category']) = self.games[mg['GAME']] + if 'SB' in mg: + info['sb'] = mg['SB'] + if 'BB' in mg: + info['bb'] = mg['BB'] + + return info def readHandInfo(self, hand): m = self.re_HandInfo.search(hand.string) From c77cf551048de0de949b28549f3c4dcedd1bf2bd Mon Sep 17 00:00:00 2001 From: Worros Date: Fri, 20 Aug 2010 18:05:25 +0800 Subject: [PATCH 285/301] OnGame: Fix readSupprtedGames and currency --- pyfpdb/OnGameToFpdb.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pyfpdb/OnGameToFpdb.py b/pyfpdb/OnGameToFpdb.py index 5f8e1683..da7e299a 100755 --- a/pyfpdb/OnGameToFpdb.py +++ b/pyfpdb/OnGameToFpdb.py @@ -107,7 +107,10 @@ class OnGame(HandHistoryConverter): re_sitsOut = re.compile('(?P.*) sits out') def readSupportedGames(self): - pass + return [ + ["ring", "hold", "fl"], + ["ring", "hold", "nl"], + ] def determineGameType(self, handText): # Inspect the handText and return the gametype dict @@ -124,6 +127,7 @@ class OnGame(HandHistoryConverter): mg = m.groupdict() info['type'] = 'ring' + info['currency'] = 'USD' if 'LIMIT' in mg: info['limitType'] = self.limits[mg['LIMIT']] From 8ffb984d259c8373f183a0ac8a66f67a16139e46 Mon Sep 17 00:00:00 2001 From: Worros Date: Fri, 20 Aug 2010 18:52:00 +0800 Subject: [PATCH 286/301] HHC: Better doco for readHandInfo --- pyfpdb/HandHistoryConverter.py | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index 34619c40..6308b755 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -326,15 +326,28 @@ which it expects to find at self.re_TailSplitHands -- see for e.g. Everleaf.py. or None if we fail to get the info """ #TODO: which parts are optional/required? - # Read any of: - # HID HandID - # TABLE Table name - # SB small blind - # BB big blind - # GAMETYPE gametype - # YEAR MON DAY HR MIN SEC datetime - # BUTTON button seat number def readHandInfo(self, hand): abstract + """Read and set information about the hand being dealt, and set the correct + variables in the Hand object 'hand + + * hand.startTime - a datetime object + * hand.handid - The site identified for the hand - a string. + * hand.tablename + * hand.buttonpos + * hand.maxseats + * hand.mixed + + Tournament fields: + + * hand.tourNo - The site identified tournament id as appropriate - a string. + * hand.buyin + * hand.fee + * hand.buyinCurrency + * hand.koBounty + * hand.isKO + * hand.level + """ + #TODO: which parts are optional/required? # Needs to return a list of lists in the format # [['seat#', 'player1name', 'stacksize'] ['seat#', 'player2name', 'stacksize'] [...]] From 803f0fcaf8a97221a0c99cc27a4fa0eef08611c7 Mon Sep 17 00:00:00 2001 From: Worros Date: Fri, 20 Aug 2010 19:48:37 +0800 Subject: [PATCH 287/301] HHC: Documentation on readHandInfo() --- pyfpdb/HandHistoryConverter.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index 6308b755..39ff3bf7 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -349,9 +349,22 @@ or None if we fail to get the info """ """ #TODO: which parts are optional/required? - # Needs to return a list of lists in the format - # [['seat#', 'player1name', 'stacksize'] ['seat#', 'player2name', 'stacksize'] [...]] def readPlayerStacks(self, hand): abstract + """This function is for identifying players at the table, and to pass the + information on to 'hand' via Hand.addPlayer(seat, name, chips) + + At the time of writing the reference function in the PS converter is: + log.debug("readPlayerStacks") + m = self.re_PlayerInfo.finditer(hand.handText) + for a in m: + hand.addPlayer(int(a.group('SEAT')), a.group('PNAME'), a.group('CASH')) + + Which is pretty simple because the hand history format is consistent. Other hh formats aren't so nice. + + This is the appropriate place to identify players that are sitting out and ignore them + + *** NOTE: You may find this is a more appropriate place to set hand.maxseats *** + """ def compilePlayerRegexs(self): abstract """Compile dynamic regexes -- these explicitly match known player names and must be updated if a new player joins""" From d04e5e1a23369df7396ed21bef85b499449c179c Mon Sep 17 00:00:00 2001 From: Worros Date: Fri, 20 Aug 2010 20:09:44 +0800 Subject: [PATCH 288/301] HHC: doco for compilePlayerRegexes --- pyfpdb/HandHistoryConverter.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index 39ff3bf7..a521f248 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -367,7 +367,25 @@ or None if we fail to get the info """ """ def compilePlayerRegexs(self): abstract - """Compile dynamic regexes -- these explicitly match known player names and must be updated if a new player joins""" + """Compile dynamic regexes -- compile player dependent regexes. + + Depending on the ambiguity of lines you may need to match, and the complexity of + player names - we found that we needed to recompile some regexes for player actions so that they actually contained the player names. + + eg. + We need to match the ante line: + antes $1.00 + + But is actually named + + YesI antes $4000 - A perfectly legal playername + + Giving: + + YesI antes $4000 antes $1.00 + + Which without care in your regexes most people would match 'YesI' and not 'YesI antes $4000' + """ # Needs to return a MatchObject with group names identifying the streets into the Hand object # so groups are called by street names 'PREFLOP', 'FLOP', 'STREET2' etc From 7c5f4645f26435c4f8dea5ca27c929676507ea59 Mon Sep 17 00:00:00 2001 From: Worros Date: Fri, 20 Aug 2010 20:10:52 +0800 Subject: [PATCH 289/301] OnGame: More updates, primarily to readHandInfo --- pyfpdb/OnGameToFpdb.py | 78 ++++++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 29 deletions(-) diff --git a/pyfpdb/OnGameToFpdb.py b/pyfpdb/OnGameToFpdb.py index da7e299a..39ddb906 100755 --- a/pyfpdb/OnGameToFpdb.py +++ b/pyfpdb/OnGameToFpdb.py @@ -81,11 +81,21 @@ class OnGame(HandHistoryConverter): (?P[.0-9]+) )? """ % substitutions, re.MULTILINE|re.DOTALL|re.VERBOSE) + + # Wed Aug 18 19:45:30 GMT+0100 2010 + re_DateTime = re.compile(""" + [a-zA-Z]{3}\s + (?P[a-zA-Z]{3})\s + (?P[0-9]{2})\s + (?P[0-9]+):(?P[0-9]+):(?P[0-9]+)\sGMT + (?P[-+]\d+)\s + (?P[0-9]{4}) + """, re.MULTILINE|re.VERBOSE) # self.rexx.button_re = re.compile('#SUMMARY\nDealer: (?P.*)\n') #Seat 1: .Lucchess ($4.17 in chips) - re_PlayerInfo = re.compile(u'Seat (?P[0-9]+): (?P.*) \((\$(?P[.0-9]+) in chips)\)') + re_PlayerInfo = re.compile(u'Seat (?P[0-9]+): (?P.*) \((?P[.0-9]+) \)') #ANTES/BLINDS #helander2222 posts blind ($0.25), lopllopl posts blind ($0.50). @@ -106,6 +116,9 @@ class OnGame(HandHistoryConverter): re_CollectPot = re.compile('(?P.*), bets.+, collects \$(?P\d*\.?\d*), net.* ') re_sitsOut = re.compile('(?P.*) sits out') + def compilePlayerRegexs(self, hand): + pass + def readSupportedGames(self): return [ ["ring", "hold", "fl"], @@ -141,30 +154,37 @@ class OnGame(HandHistoryConverter): return info def readHandInfo(self, hand): - m = self.re_HandInfo.search(hand.string) - hand.handid = m.group('HID') - hand.tablename = m.group('TABLE') - #hand.buttonpos = self.rexx.button_re.search(hand.string).group('BUTTONPNAME') -# These work, but the info is already in the Hand class - should be used for tourneys though. -# m.group('SB') -# m.group('BB') -# m.group('GAMETYPE') + info = {} + m = self.re_HandInfo.search(hand.handText) -# Believe Everleaf time is GMT/UTC, no transation necessary -# Stars format (Nov 10 2008): 2008/11/07 12:38:49 CET [2008/11/07 7:38:49 ET] -# or : 2008/11/07 12:38:49 ET -# Not getting it in my HH files yet, so using -# 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'), "%d %b %Y %I:%M %p") - #hand.starttime = "%d/%02d/%02d %d:%02d:%02d ET" %(int(m.group('YEAR')), int(m.group('MON')), int(m.group('DAY')), - #int(m.group('HR')), int(m.group('MIN')), int(m.group('SEC'))) + if m: + info.update(m.groupdict()) + + log.debug("readHandInfo: %s" % info) + for key in info: + if key == 'DATETIME': + #'Wed Aug 18 19:45:30 GMT+0100 2010 + # %a %b %d %H:%M:%S %z %Y + #hand.startTime = time.strptime(m.group('DATETIME'), "%a %b %d %H:%M:%S GMT%z %Y") + # Stupid library doesn't seem to support %z (http://docs.python.org/library/time.html?highlight=strptime#time.strptime) + # So we need to re-interpret te string to be useful + m1 = self.re_DateTime.finditer(info[key]) + for a in m1: + datetimestr = "%s %s %s %s:%s:%s" % (a.group('M'),a.group('D'), a.group('Y'), a.group('H'),a.group('MIN'),a.group('S')) + hand.startTime = time.strptime(datetimestr, "%b %d %Y %H:%M:%S") + # TODO: Manually adjust time against OFFSET + if key == 'HID': + hand.handid = info[key] + if key == 'TABLE': + hand.tablename = info[key] + + # TODO: These + hand.buttonpos = 1 + hand.maxseats = 10 + hand.mixed = None def readPlayerStacks(self, hand): - m = self.re_PlayerInf.finditer(hand.string) - players = [] + m = self.re_PlayerInfo.finditer(hand.handText) for a in m: hand.addPlayer(int(a.group('SEAT')), a.group('PNAME'), a.group('CASH')) @@ -176,7 +196,7 @@ class OnGame(HandHistoryConverter): m = re.search(r"PRE-FLOP(?P.+(?=FLOP)|.+(?=SHOWDOWN))" r"(FLOP (?P\[board cards .+ \].+(?=TURN)|.+(?=SHOWDOWN)))?" r"(TURN (?P\[board cards .+ \].+(?=RIVER)|.+(?=SHOWDOWN)))?" - r"(RIVER (?P\[board cards .+ \].+(?=SHOWDOWN)))?", hand.string,re.DOTALL) + r"(RIVER (?P\[board cards .+ \].+(?=SHOWDOWN)))?", hand.handText, re.DOTALL) hand.addStreets(m) @@ -189,17 +209,17 @@ class OnGame(HandHistoryConverter): def readBlinds(self, hand): try: - m = self.re_PostSB.search(hand.string) + m = self.re_PostSB.search(hand.handText) hand.addBlind(m.group('PNAME'), 'small blind', m.group('SB')) except: # no small blind hand.addBlind(None, None, None) - for a in self.re_PostBB.finditer(hand.string): + for a in self.re_PostBB.finditer(hand.handText): hand.addBlind(a.group('PNAME'), 'big blind', a.group('BB')) - for a in self.re_PostBoth.finditer(hand.string): + for a in self.re_PostBoth.finditer(hand.handText): hand.addBlind(a.group('PNAME'), 'small & big blinds', a.group('SBBB')) def readHeroCards(self, hand): - m = self.re_HeroCards.search(hand.string) + m = self.re_HeroCards.search(hand.handText) if(m == None): #Not involved in hand hand.involved = False @@ -230,13 +250,13 @@ class OnGame(HandHistoryConverter): # TODO: Everleaf does not record uncalled bets. def readShowdownActions(self, hand): - for shows in self.re_ShowdownAction.finditer(hand.string): + for shows in self.re_ShowdownAction.finditer(hand.handText): cards = shows.group('CARDS') cards = set(cards.split(',')) hand.addShownCards(cards, shows.group('PNAME')) def readCollectPot(self,hand): - for m in self.re_CollectPot.finditer(hand.string): + for m in self.re_CollectPot.finditer(hand.handText): hand.addCollectPot(player=m.group('PNAME'),pot=m.group('POT')) def readShownCards(self,hand): From 5d2e7cb32010891f621c31bb5a0c7e1f567f177d Mon Sep 17 00:00:00 2001 From: Worros Date: Fri, 20 Aug 2010 20:26:53 +0800 Subject: [PATCH 290/301] Betfair: Fix for Betfair 2.0 The Betfair poker site has changed hands/software and now has a completely different hand history coverter. Starting the process of making it work --- pyfpdb/BetfairToFpdb.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyfpdb/BetfairToFpdb.py b/pyfpdb/BetfairToFpdb.py index 07ee2612..62db0311 100755 --- a/pyfpdb/BetfairToFpdb.py +++ b/pyfpdb/BetfairToFpdb.py @@ -44,8 +44,9 @@ class Betfair(HandHistoryConverter): siteId = 7 # Needs to match id entry in Sites database # Static regexes + #re_SplitHands = re.compile(r'\n\n+') # Betfair 1.0 version re_GameInfo = re.compile("^(?PNL|PL|) (?P\$|)?(?P[.0-9]+)/\$?(?P[.0-9]+) (?P(Texas Hold\'em|Omaha Hi|Razz))", re.MULTILINE) - re_SplitHands = re.compile(r'\n\n+') + re_SplitHands = re.compile(r'End of hand .{2}-\d{7,9}-\d+ \*\*\*\*\*\n') re_HandInfo = re.compile("\*\*\*\*\* Betfair Poker Hand History for Game (?P[0-9]+) \*\*\*\*\*\n(?PNL|PL|) (?P\$|)?(?P[.0-9]+)/\$?(?P[.0-9]+) (?P(Texas Hold\'em|Omaha Hi|Razz)) - (?P[a-zA-Z]+, [a-zA-Z]+ \d+, \d\d:\d\d:\d\d GMT \d\d\d\d)\nTable (?P
[ a-zA-Z0-9]+) \d-max \(Real Money\)\nSeat (?P