diff --git a/pyfpdb/Card.py b/pyfpdb/Card.py index fcabf379..1bcc8dd5 100755 --- a/pyfpdb/Card.py +++ b/pyfpdb/Card.py @@ -98,7 +98,7 @@ def twoStartCardString(card): if x == y: ret = s[x] + s[y] elif x > y: ret = s[x] + s[y] + 's' else: ret = s[y] + s[x] + 'o' - print "twoStartCardString(", card ,") = " + ret + #print "twoStartCardString(", card ,") = " + ret return ret def fourStartCards(value1, suit1, value2, suit2, value3, suit3, value4, suit4): diff --git a/pyfpdb/Cards02.png b/pyfpdb/Cards02.png new file mode 100644 index 00000000..63fa6fdf Binary files /dev/null and b/pyfpdb/Cards02.png differ diff --git a/pyfpdb/FulltiltToFpdb.py b/pyfpdb/FulltiltToFpdb.py index 3ee97675..69caa79b 100755 --- a/pyfpdb/FulltiltToFpdb.py +++ b/pyfpdb/FulltiltToFpdb.py @@ -74,7 +74,7 @@ class Fulltilt(HandHistoryConverter): (Ante\s\$?(?P[%(NUM)s]+)\s)?-\s [%(LS)s]?(?P[%(NUM)s]+\sCap\s)? (?P(No\sLimit|Pot\sLimit|Limit))?\s - (?P(Hold\'em|Omaha\sHi|Omaha\sH/L|Omaha|7\sCard\sStud|Stud\sH/L|Razz|Stud\sHi|2-7\sTriple\sDraw|5\sCard\sDraw|Badugi)) + (?P(Hold\'em|Omaha(\sH/L|\sHi/Lo|\sHi|)|7\sCard\sStud|Stud\sH/L|Razz|Stud\sHi|2-7\sTriple\sDraw|5\sCard\sDraw|Badugi)) ''' % substitutions, re.VERBOSE) re_SplitHands = re.compile(r"\n\n\n+") re_TailSplitHands = re.compile(r"(\n\n+)") @@ -114,7 +114,7 @@ class Fulltilt(HandHistoryConverter): (\((?PTurbo)\)\s)? \((?P\d+)\)\s ((?PMatch\s\d)\s)? - (?P(Hold\'em|Omaha\sHi|Omaha\sH/L|Omaha|7\sCard\sStud|Stud\sH/L|Razz|Stud\sHi))\s + (?P(Hold\'em|Omaha(\sHi/Lo|\sH/L|\sHi|)|7\sCard\sStud|Stud\sH/L|Razz|Stud\sHi))\s (\((?PTurbo)\)\s)? (?P(No\sLimit|Pot\sLimit|Limit))? ''' % substitutions, re.VERBOSE) @@ -198,11 +198,6 @@ class Fulltilt(HandHistoryConverter): ] def determineGameType(self, handText): - # Full Tilt Poker Game #10777181585: Table Deerfly (deep 6) - $0.01/$0.02 - Pot Limit Omaha Hi - 2:24:44 ET - 2009/02/22 - # 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) @@ -220,6 +215,7 @@ class Fulltilt(HandHistoryConverter): 'Omaha Hi' : ('hold','omahahi'), 'Omaha' : ('hold','omahahi'), 'Omaha H/L' : ('hold','omahahilo'), + 'Omaha Hi/Lo' : ('hold','omahahilo'), 'Razz' : ('stud','razz'), 'Stud Hi' : ('stud','studhi'), 'Stud H/L' : ('stud','studhilo'), diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index 25192a93..ee00897b 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -370,7 +370,7 @@ class Hud: self.label = label menu.show_all() self.main_window.show_all() - self.topify_window(self.main_window) +# self.topify_window(self.main_window) def change_max_seats(self, widget): if self.max != widget.ms: @@ -645,6 +645,9 @@ class Hud: player_id = 'fake', font = self.font) + self.topify_window(self.main_window) + for i in xrange(1, self.max + 1): + self.topify_window(self.stat_windows[i].window, self.main_window) self.stats = [] game = config.supported_games[self.poker_game] @@ -710,13 +713,18 @@ class Hud: window.window.show_all() unhidewindow = False - def topify_window(self, window): + def topify_window(self, window, parentwindow=None): window.set_focus_on_map(False) window.set_accept_focus(False) +# print "topify_window", window, parentwindow if not self.table.gdkhandle: self.table.gdkhandle = gtk.gdk.window_foreign_new(int(self.table.number)) # gtk handle to poker window - window.window.set_transient_for(self.table.gdkhandle) + if parentwindow is not None: + window.window.set_transient_for(parentwindow.window) + else: + window.window.set_transient_for(self.table.gdkhandle) + window.set_destroy_with_parent(True) class Stat_Window: @@ -791,6 +799,8 @@ class Stat_Window: self.window.set_focus_on_map(False) self.window.set_accept_focus(False) + self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_UTILITY) + grid = gtk.Table(rows = game.rows, columns = game.cols, homogeneous = False) self.grid = grid self.window.add(grid) @@ -845,20 +855,10 @@ class Stat_Window: self.window.move(self.x, self.y) - self.window.realize() # window must be realized before it has a gdkwindow so we can attach it to the table window.. - self.topify_window(self.window) - self.window.hide() + self.window.realize() # window must be realized before it has a gdkwindow so we can attach it to the table window.. +# self.topify_window(self.window) - def topify_window(self, window): - window.set_focus_on_map(False) - window.set_accept_focus(False) - - if not self.table.gdkhandle: - self.table.gdkhandle = gtk.gdk.window_foreign_new(int(self.table.number)) # gtk handle to poker window -# window.window.reparent(self.table.gdkhandle, 0, 0) - window.window.set_transient_for(self.table.gdkhandle) -# window.present() def destroy(*args): # call back for terminating the main eventloop gtk.main_quit() diff --git a/pyfpdb/ScriptFetchWinamaxResults.py b/pyfpdb/ScriptFetchWinamaxResults.py index f0d4abcc..13ca8a8c 100644 --- a/pyfpdb/ScriptFetchWinamaxResults.py +++ b/pyfpdb/ScriptFetchWinamaxResults.py @@ -16,6 +16,8 @@ #In the "official" distribution you can find the license in agpl-3.0.txt """A script for fetching Winamax tourney results""" +import L10n +_ = L10n.get_translation() import Configuration import Database diff --git a/pyfpdb/TableWindow.py b/pyfpdb/TableWindow.py index 3d8a2ae2..b325a3e6 100644 --- a/pyfpdb/TableWindow.py +++ b/pyfpdb/TableWindow.py @@ -26,6 +26,9 @@ client has been resized, destroyed, etc. ######################################################################## +import L10n +_ = L10n.get_translation() + # Standard Library modules import re @@ -66,7 +69,7 @@ bad_words = ('History for table:', 'HUD:', 'Chat:', 'FPDBHUD') # Here are the custom signals we define for allowing the 'client watcher' # thread to communicate with the gui thread. Any time a poker client is -# is moved, resized, or closed on of these signals is emitted to the +# is moved, resized, or closed one of these signals is emitted to the # HUD main window. gobject.signal_new("client_moved", gtk.Window, gobject.SIGNAL_RUN_LAST, diff --git a/pyfpdb/TestSummaryImport.py b/pyfpdb/TestSummaryImport.py index 7f89073d..d2b0afe1 100755 --- a/pyfpdb/TestSummaryImport.py +++ b/pyfpdb/TestSummaryImport.py @@ -138,14 +138,14 @@ def main(argv=None): #CarbonErrors = FpdbError('Carbon') #PKRErrors = FpdbError('PKR') #iPokerErrors = FpdbError('iPoker') - #WinamaxErrors = FpdbError('Winamax') + WinamaxErrors = FpdbError('Winamax') ErrorsList = [ - PokerStarsErrors, - FTPErrors, #PartyPokerErrors, + PokerStarsErrors, FTPErrors, WinamaxErrors, + #PartyPokerErrors, #BetfairErrors, OnGameErrors, AbsoluteErrors, #EverleafErrors, CarbonErrors, PKRErrors, - #iPokerErrors, WinamaxErrors, UltimateBetErrors, + #iPokerErrors, UltimateBetErrors, ] sites = { @@ -160,7 +160,7 @@ def main(argv=None): #'Carbon' : True, #'PKR' : False, #'iPoker' : True, - #'Winamax' : True, + 'Winamax' : True, } if sites['PokerStars'] == True: @@ -187,8 +187,8 @@ def main(argv=None): # walk_testfiles("regression-test-files/cash/PKR/", compare, importer, PKRErrors, "PKR") #if sites['iPoker'] == True: # walk_testfiles("regression-test-files/cash/iPoker/", compare, importer, iPokerErrors, "iPoker") - #if sites['Winamax'] == True: - # walk_testfiles("regression-test-files/cash/Winamax/", compare, importer, WinamaxErrors, "Winamax") + if sites['Winamax'] == True: + walk_testfiles("regression-test-files/summaries/Winamax/", compare, importer, WinamaxErrors, "Winamax") totalerrors = 0 diff --git a/pyfpdb/WinamaxSummary.py b/pyfpdb/WinamaxSummary.py index cd71293a..e1d5b0ce 100644 --- a/pyfpdb/WinamaxSummary.py +++ b/pyfpdb/WinamaxSummary.py @@ -60,6 +60,7 @@ class WinamaxSummary(TourneySummary): re_Prizepool = re.compile(u"""
.+: (?P[0-9,]+)""") re_DateTime = re.compile("\[(?P[0-9]{4})\/(?P[0-9]{2})\/(?P[0-9]{2})[\- ]+(?P[0-9]+):(?P[0-9]+):(?P[0-9]+)") + re_Ticket = re.compile(u""" / Ticket (?P[0-9.]+)€""") codepage = ["utf-8"] @@ -103,13 +104,23 @@ class WinamaxSummary(TourneySummary): self.gametype['category'] = self.games[mg['GAME']][1] for m in self.re_Player.finditer(str(tl[0])): + winnings = 0 mg = m.groupdict() - #print mg - winnings = mg['WINNINGS'].strip(u'€').replace(u',','.') - winnings = int(100*Decimal(winnings)) rank = mg['RANK'] name = mg['PNAME'] - #print "DEBUG: %s: %s" %(name, winnings) + #print "DEUBG: mg: '%s'" % mg + is_satellite = self.re_Ticket.search(mg['WINNINGS']) + if is_satellite: + # Ticket + winnings = convert_to_decimal(is_satellite.groupdict()['VALUE']) + # For stallites, any ticket means 1st + if winnings > 0: + rank = 1 + else: + winnings = convert_to_decimal(mg['WINNINGS']) + + winnings = int(100*Decimal(winnings)) + #print "DEBUG: %s) %s: %s" %(rank, name, winnings) self.addPlayer(rank, name, winnings, self.currency, None, None, None) @@ -117,3 +128,11 @@ class WinamaxSummary(TourneySummary): mg = m.groupdict() #print mg self.tourNo = mg['TOURNO'] + +def convert_to_decimal(string): + dec = string.strip(u'€€\u20ac') + dec = dec.replace(u',','.') + dec = dec.replace(u' ','') + dec = Decimal(dec) + return dec + diff --git a/pyfpdb/WinamaxToFpdb.py b/pyfpdb/WinamaxToFpdb.py index 302a5c1f..b01df4ec 100644 --- a/pyfpdb/WinamaxToFpdb.py +++ b/pyfpdb/WinamaxToFpdb.py @@ -86,7 +86,7 @@ class Winamax(HandHistoryConverter): (?PCashGame)? (?PTournament\s (?P.+)?\s - buyIn:\s(?P(?P[%(LS)s\d\,]+)?\s\+?\s(?P[%(LS)s\d\,]+)?\+?(?P[%(LS)s\d\.]+)?\s?(?P%(LEGAL_ISO)s)?|Gratuit|Ticket\suniquement)?\s + buyIn:\s(?P(?P[%(LS)s\d\,]+)?\s\+?\s(?P[%(LS)s\d\,]+)?\+?(?P[%(LS)s\d\.]+)?\s?(?P%(LEGAL_ISO)s)?|Freeroll|Gratuit|Ticket\suniquement)?\s (level:\s(?P\d+))? .*)? \s-\sHandId:\s\#(?P\d+)-(?P\d+)-(?P\d+).*\s # REB says: HID3 is the correct hand number @@ -247,7 +247,7 @@ class Winamax(HandHistoryConverter): if k in info.keys() and info[k]: info[k] = info[k].replace(',','.') - if info[key] == 'Freeroll': + if info[key] == 'Gratuit' or info[key] == 'Freeroll': hand.buyin = 0 hand.fee = 0 hand.buyinCurrency = "FREE" @@ -259,7 +259,7 @@ class Winamax(HandHistoryConverter): elif info[key].find("FPP")!=-1: hand.buyinCurrency="PSFP" else: - #FIXME: handle other currencies, FPP, play money + #FIXME: handle other currencies (are there other currencies?) raise FpdbParseError(_("Failed to detect currency. Hand ID: %s: '%s'") % (hand.handid, info[key])) info['BIAMT'] = info['BIAMT'].strip(u'$€FPP') diff --git a/pyfpdb/regression-test-files/cash/FTP/Flop/LO8-6max-USD-200-400.200610.Observed.Hand.with.chat.txt b/pyfpdb/regression-test-files/cash/FTP/Flop/LO8-6max-USD-200-400.200610.Observed.Hand.with.chat.txt new file mode 100644 index 00000000..eb6e7c44 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/FTP/Flop/LO8-6max-USD-200-400.200610.Observed.Hand.with.chat.txt @@ -0,0 +1,62 @@ +Full Tilt Poker Game #1088791321: Table Vero (6 max) - $200/$400 - Limit Omaha Hi/Lo - 0:03:34 ET - 2006/10/11 +Seat 1: zbubop ($10,676) +Seat 2: AllenCunningham ($6,025) +Seat 3: TexasLimitDonk ($6,816) +Seat 4: Mike Matusow ($10,689), is sitting out +Seat 5: Erick Lindgren ($4,339.50) +Seat 6: Shoe Lab ($15,968.50) +Erick Lindgren posts the small blind of $100 +Shoe Lab posts the big blind of $200 + +The button is in seat #3 +*** HOLE CARDS *** +tyler13jack (Observer): mark karr HAHAHAHAAHA +zbubop calls $200 +Skylerjade (Observer): HAHAHAHA YOUR SIK CROW +AllenCunningham raises to $400 +TexasLimitDonk folds +Right is Tight (Observer): phil is just nasty +Skylerjade (Observer): he does though +Erick Lindgren folds +GE1K0 (Observer): u ok there cunningham? +Crow1974 (Observer): i said looks +Shoe Lab calls $200 +zbubop calls $200 +*** FLOP *** [7h 8s 3s] +Crow1974 (Observer): in that pic +Shoe Lab checks +eagle604 (Observer): did they win? +zbubop checks +Crow1974 (Observer): not in real life +AllenCunningham bets $200 +Skylerjade (Observer): My girlfirend thinks hes hott in real life +Shoe Lab folds +zbubop calls $200 +*** TURN *** [7h 8s 3s] [4s] +crobbins92020 (Observer): he isn't that weird...got a ride home first class..w/ drinks +zbubop checks +crobbins92020 (Observer): lol +AllenCunningham bets $400 +Pavel Datsyuk (Observer): hes got a dif expression at a diff table +zbubop raises to $800 +AllenCunningham calls $400 +*** RIVER *** [7h 8s 3s 4s] [Ah] +zbubop bets $400 +AllenCunningham calls $400 +*** SHOW DOWN *** +zbubop shows [3c 9h As Qs] (a flush, Ace high) +*** SHOW DOWN *** + (8,7,4,3,A) +AllenCunningham shows [7d 2c Ks Ad] (two pair, Aces and Sevens) + (7,4,3,2,A) +zbubop wins the high pot ($2,048.50) with a flush, Ace high +AllenCunningham wins the low pot ($2,048.50) with 7,4,3,2,A +*** SUMMARY *** +Total pot $4,100 | Rake $3 +Board: [7h 8s 3s 4s Ah] +Seat 1: zbubop showed [3c 9h As Qs] and won ($2,048.50) with HI: a flush, Ace high; LO: 8,7,4,3,A +Seat 2: AllenCunningham showed [7d 2c Ks Ad] and won ($2,048.50) with HI: two pair, Aces and Sevens; LO: 7,4,3,2,A +Seat 3: TexasLimitDonk (button) didn't bet (folded) +Seat 4: Mike Matusow is sitting out +Seat 5: Erick Lindgren (small blind) folded before the Flop +Seat 6: Shoe Lab (big blind) folded on the Flop diff --git a/pyfpdb/regression-test-files/cash/FTP/Flop/LO8-6max-USD-200-400.200610.Observed.Hand.with.chat.txt.gt b/pyfpdb/regression-test-files/cash/FTP/Flop/LO8-6max-USD-200-400.200610.Observed.Hand.with.chat.txt.gt new file mode 100644 index 00000000..b9459768 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/FTP/Flop/LO8-6max-USD-200-400.200610.Observed.Hand.with.chat.txt.gt @@ -0,0 +1 @@ +(1, 'USD', 'ring', 'hold', 'omahahilo', 'fl', 's', 10000, 20000, 20000, 40000) diff --git a/pyfpdb/regression-test-files/cash/FTP/Flop/LO8-6max-USD-200-400.200610.Observed.Hand.with.chat.txt.hands b/pyfpdb/regression-test-files/cash/FTP/Flop/LO8-6max-USD-200-400.200610.Observed.Hand.with.chat.txt.hands new file mode 100644 index 00000000..64bcafb2 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/FTP/Flop/LO8-6max-USD-200-400.200610.Observed.Hand.with.chat.txt.hands @@ -0,0 +1,31 @@ +{ 'boardcard1': 6, + 'boardcard2': 46, + 'boardcard3': 41, + 'boardcard4': 42, + 'boardcard5': 13, + 'gametypeId': 21, + 'importTime': None, + 'maxSeats': 6, + 'playersAtShowdown': 2, + 'playersAtStreet1': 3, + 'playersAtStreet2': 2, + 'playersAtStreet3': 2, + 'playersAtStreet4': 0, + 'playersVpi': 3, + 'seats': 5, + 'sessionId': None, + 'showdownPot': 0, + 'siteHandNo': u'1088791321', + 'startTime': datetime.datetime(2006, 10, 11, 4, 3, 34, tzinfo=pytz.utc), + 'street0Raises': 1, + 'street1Pot': 170000, + 'street1Raises': 1, + 'street2Pot': 330000, + 'street2Raises': 2, + 'street3Pot': 410000, + 'street3Raises': 1, + 'street4Pot': 0, + 'street4Raises': 0, + 'tableName': u'Vero', + 'texture': None, + 'tourneyId': None} diff --git a/pyfpdb/regression-test-files/cash/FTP/Flop/LO8-6max-USD-200-400.200610.Observed.Hand.with.chat.txt.hp b/pyfpdb/regression-test-files/cash/FTP/Flop/LO8-6max-USD-200-400.200610.Observed.Hand.with.chat.txt.hp new file mode 100644 index 00000000..f2a1abb6 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/FTP/Flop/LO8-6max-USD-200-400.200610.Observed.Hand.with.chat.txt.hp @@ -0,0 +1,525 @@ +{ u'AllenCunningham': { 'card1': 19, + 'card2': 27, + 'card3': 51, + 'card4': 26, + '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': True, + 'otherRaisedStreet3': True, + 'otherRaisedStreet4': False, + 'position': 1, + 'raiseFirstInChance': False, + 'raiseToStealChance': False, + 'raiseToStealDone': False, + 'raisedFirstIn': False, + 'rake': 150, + 'sawShowdown': True, + 'seatNo': 2, + 'sitout': False, + 'startCards': 0, + 'startCash': 602500, + 'street0Aggr': True, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': True, + 'street1Bets': 1, + 'street1CBChance': True, + 'street1CBDone': True, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': True, + 'street2Bets': 1, + 'street2CBChance': True, + 'street2CBDone': True, + 'street2Calls': 1, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 1, + '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, + 'success_Steal': False, + 'totalProfit': 24850, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 204850, + 'wonAtSD': 1.0, + 'wonWhenSeenStreet1': 1.0, + 'wonWhenSeenStreet2': 1.0, + 'wonWhenSeenStreet3': 1.0, + 'wonWhenSeenStreet4': 0.0}, + u'Erick Lindgren': { '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, + 'raiseToStealChance': False, + 'raiseToStealDone': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 5, + 'sitout': False, + 'startCards': 0, + 'startCash': 433950, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': True, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': 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, + 'success_Steal': False, + 'totalProfit': -10000, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Shoe Lab': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': True, + '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': True, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 'B', + 'raiseFirstInChance': False, + 'raiseToStealChance': False, + 'raiseToStealDone': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 6, + 'sitout': False, + 'startCards': 0, + 'startCash': 1596850, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': True, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': 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': True, + '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, + 'success_Steal': False, + 'totalProfit': -40000, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'TexasLimitDonk': { '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, + 'raiseToStealChance': False, + 'raiseToStealDone': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 3, + 'sitout': False, + 'startCards': 0, + 'startCash': 681600, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': True, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': 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, + 'success_Steal': 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'zbubop': { 'card1': 28, + 'card2': 8, + 'card3': 52, + 'card4': 50, + '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': True, + 'otherRaisedStreet2': True, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 2, + 'raiseFirstInChance': True, + 'raiseToStealChance': False, + 'raiseToStealDone': False, + 'raisedFirstIn': False, + 'rake': 150, + 'sawShowdown': True, + 'seatNo': 1, + 'sitout': False, + 'startCards': 0, + 'startCash': 1067600, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 2, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': True, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': True, + 'street0_SqueezeDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 1, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': True, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': True, + 'street2CheckCallRaiseDone': True, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': True, + 'street3Bets': 1, + 'street3CBChance': True, + 'street3CBDone': True, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': True, + 'street3CheckCallRaiseDone': True, + 'street3Raises': 0, + 'street3Seen': True, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'success_Steal': False, + 'totalProfit': 24850, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 204850, + 'wonAtSD': 1.0, + 'wonWhenSeenStreet1': 1.0, + 'wonWhenSeenStreet2': 1.0, + 'wonWhenSeenStreet3': 1.0, + 'wonWhenSeenStreet4': 0.0}} diff --git a/pyfpdb/regression-test-files/cash/FTP/Flop/NLHE-6max-USD-25-50.200610.Observed.No.player.stacks.txt b/pyfpdb/regression-test-files/cash/FTP/Flop/NLHE-6max-USD-25-50.200610.Observed.No.player.stacks.txt new file mode 100644 index 00000000..f7b9fbc9 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/FTP/Flop/NLHE-6max-USD-25-50.200610.Observed.No.player.stacks.txt @@ -0,0 +1,17 @@ +Full Tilt Poker Game #1083884910: Table Coral Isle (6 max) - $25/$50 - No Limit Hold'em - 17:47:12 ET - 2006/10/09 +cinidy lynn posts the small blind of $25 +durrrr posts the big blind of $50 +The button is in seat #3 +*** HOLE CARDS *** +cinidy lynn raises to $1,000, and is all in +durrrr folds +Uncalled bet of $950 returned to cinidy lynn +cinidy lynn mucks +cinidy lynn wins the pot ($100) +*** SUMMARY *** +Total pot $100 | Rake $0 +Seat 3: cinidy lynn (small blind) collected ($100), mucked +Seat 4: durrrr (big blind) folded before the Flop + + + diff --git a/pyfpdb/regression-test-files/cash/FTP/Flop/PLO-6max-USD-200-400.200612.Observed.Hand.with.chat.txt b/pyfpdb/regression-test-files/cash/FTP/Flop/PLO-6max-USD-200-400.200612.Observed.Hand.with.chat.txt new file mode 100644 index 00000000..e33d5c76 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/FTP/Flop/PLO-6max-USD-200-400.200612.Observed.Hand.with.chat.txt @@ -0,0 +1,65 @@ +Full Tilt Poker Game #1463159669: Table Pantheon (6 max) - $200/$400 - Pot Limit Omaha - 20:47:44 ET - 2006/12/23 +Seat 1: tjalfe ($24,578) +Seat 2: CrazyZachary ($8,001.50) +Seat 3: sbrugby ($38,000) +Seat 4: Phil Ivey ($69,970) +Seat 5: Son-in-Law ($37,381.50) +Seat 6: Gus Hansen ($60,478.50) +Son-in-Law posts the small blind of $200 +Gus Hansen posts the big blind of $400 +The button is in seat #4 +*** HOLE CARDS *** +Hence (Observer): lolz +tjalfe raises to $1,400 +Round3rr (Observer): it's tru man +CrazyZachary has 15 seconds left to act +Round3rr (Observer): if he just sent me 1 big blind look @ his stack +Stacks987 (Observer): stop begging +CrazyZachary adds $31,998.50 +CrazyZachary folds +sbrugby folds +Phil Ivey calls $1,400 +Stacks987 (Observer): get a job +JeremyAlan21 (Observer): y would he give u money +JeremyAlan21 (Observer): ##% +Son-in-Law calls $1,200 +Stacks987 (Observer): yeah that makes no sense +Round3rr (Observer): y not +Round3rr (Observer): he has 60k in front of him +Stacks987 (Observer): why would he? +Round3rr (Observer): 80k @ the other table +Gus Hansen folds +Hence (Observer): i was talking about the hand +*** FLOP *** [Ks Ah Qh] +Son-in-Law checks +Urfo618 (Observer): cuz ur a donkey stacks +tjalfe checks +Stacks987 (Observer): stfu urf +jordanlj (Observer): rounder ur a loser +Stacks987 (Observer): lol +Phil Ivey has 15 seconds left to act +Stacks987 (Observer): im having fun leave me alone +Phil Ivey checks +*** TURN *** [Ks Ah Qh] [Jd] +jordanlj (Observer): u might get a big blind for anal or maybe not +Son-in-Law bets $3,600 +Round3rr (Observer): anal ? +R U NUTZ 2 (Observer): lol +tjalfe folds +Phil Ivey folds +Uncalled bet of $3,600 returned to Son-in-Law +Son-in-Law mucks +Son-in-Law wins the pot ($4,597) +jordanlj (Observer): yeh poop sex +*** SUMMARY *** +Total pot $4,600 | Rake $3 +Board: [Ks Ah Qh Jd] +Seat 1: tjalfe folded on the Turn +Seat 2: CrazyZachary didn't bet (folded) +Seat 3: sbrugby didn't bet (folded) +Seat 4: Phil Ivey (button) folded on the Turn +Seat 5: Son-in-Law (small blind) collected ($4,597), mucked +Seat 6: Gus Hansen (big blind) folded before the Flop + + + diff --git a/pyfpdb/regression-test-files/cash/FTP/Flop/PLO-6max-USD-25-50.201012.Run.it.Twice.Archive.Shallow.txt b/pyfpdb/regression-test-files/cash/FTP/Flop/PLO-6max-USD-25-50.201012.Run.it.Twice.Archive.Shallow.txt new file mode 100644 index 00000000..5626d9c5 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/FTP/Flop/PLO-6max-USD-25-50.201012.Run.it.Twice.Archive.Shallow.txt @@ -0,0 +1,60 @@ +FullTiltPoker Game #26063988000: Table Teddy (6 max, shallow) - $25/$50 - Pot Limit Omaha Hi - 18:15:00 ET - 2010/12/01 + +Seat 1: Player1 ($1,000) +Seat 3: Player3 ($3,423) +Seat 4: Player4 ($1,611) +Seat 6: Hero ($1,835.50) +Hero posts the small blind of $25 +Player1 posts the big blind of $50 +The button is in seat #4 +*** HOLE CARDS *** +Dealt to Hero [9s Jc 8c 7s] +Player3 raises to $112.50 +Player4 folds +Hero has 15 seconds left to act +Hero has requested TIME +Hero raises to $387.50 +Player1 folds +Player3 calls $275 +*** FLOP *** [6c Qh 3c] +Hero has 15 seconds left to act +Hero has requested TIME +Hero bets $825 +Player3 has 15 seconds left to act +Player3 raises to $3,035.50, and is all in +Hero calls $623, and is all in +Players agree to Run It Twice +Player3 shows [2s 9c Ac 5s] +Hero shows [9s Jc 8c 7s] +Uncalled bet of $1,587.50 returned to Player3 +*** TURN 1 *** [6c Qh 3c] [3d] +*** RIVER 1 *** [6c Qh 3c 3d] [Th] +*** TURN 2 *** [6c Qh 3c] [9h] +*** RIVER 2 *** [6c Qh 3c 9h] [6h] +*** SHOW DOWN 1 *** +Player3 shows a pair of Threes +Hero shows a pair of Threes +*** SHOW DOWN 2 *** +Player3 shows two pair, Nines and Sixes +Hero shows two pair, Nines and Sixes +Player3 wins pot 1 ($1,859) with a pair of Threes +Player3 wins pot 2 ($1,859) with two pair, Nines and Sixes +*** SUMMARY *** +Duration 65s +Total pot $3,721 | Rake $3 +*** SUMMARY 1 *** +Pot 1 $1,859 +Board: [6c Qh 3c 3d Th] +Seat 1: Player1 (big blind) folded before the Flop +Seat 3: Player3 showed [2s 9c Ac 5s] and won ($1,859) with a pair of Threes +Seat 4: Player4 (button) didn't bet (folded) +Seat 6: Hero (small blind) showed [9s Jc 8c 7s] and lost with a pair of Threes +*** SUMMARY 2 *** +Pot 2 $1,859 +Board: [6c Qh 3c 9h 6h] +Seat 1: Player1 (big blind) folded before the Flop +Seat 3: Player3 showed [2s 9c Ac 5s] and won ($1,859) with two pair, Nines and Sixes +Seat 4: Player4 (button) didn't bet (folded) +Seat 6: Hero (small blind) showed [9s Jc 8c 7s] and lost with two pair, Nines and Sixes + +