Merge branch 'master' of git://git.assembla.com/fpdb
This commit is contained in:
		
						commit
						792e66c2b5
					
				|  | @ -2115,6 +2115,32 @@ class Database: | ||||||
|         result = c.fetchall() |         result = c.fetchall() | ||||||
|         return result |         return result | ||||||
|     #end def getTourneyTypesIds |     #end def getTourneyTypesIds | ||||||
|  | 
 | ||||||
|  |     def getTourneyInfo(self, siteName, tourneyNo): | ||||||
|  |         c = self.get_cursor() | ||||||
|  |         c.execute(self.sql.query['getTourneyInfo'], (siteName, tourneyNo)) | ||||||
|  |         columnNames=c.description | ||||||
|  |          | ||||||
|  |         names=[] | ||||||
|  |         for column in columnNames: | ||||||
|  |             names.append(column[0]) | ||||||
|  |          | ||||||
|  |         data=c.fetchone() | ||||||
|  |         return (names,data) | ||||||
|  |     #end def getTourneyInfo | ||||||
|  |      | ||||||
|  |     def getTourneyPlayerInfo(self, siteName, tourneyNo, playerName): | ||||||
|  |         c = self.get_cursor() | ||||||
|  |         c.execute(self.sql.query['getTourneyPlayerInfo'], (siteName, tourneyNo, playerName)) | ||||||
|  |         columnNames=c.description | ||||||
|  |          | ||||||
|  |         names=[] | ||||||
|  |         for column in columnNames: | ||||||
|  |             names.append(column[0]) | ||||||
|  |          | ||||||
|  |         data=c.fetchone() | ||||||
|  |         return (names,data) | ||||||
|  |     #end def getTourneyPlayerInfo | ||||||
| #end class Database | #end class Database | ||||||
| 
 | 
 | ||||||
| # Class used to hold all the data needed to write a hand to the db | # Class used to hold all the data needed to write a hand to the db | ||||||
|  |  | ||||||
							
								
								
									
										139
									
								
								pyfpdb/GuiTourneyViewer.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								pyfpdb/GuiTourneyViewer.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,139 @@ | ||||||
|  | #!/usr/bin/python | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | 
 | ||||||
|  | #Copyright 2010 Steffen Schaumburg | ||||||
|  | #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 <http://www.gnu.org/licenses/>. | ||||||
|  | #In the "official" distribution you can find the license in agpl-3.0.txt. | ||||||
|  | 
 | ||||||
|  | import threading | ||||||
|  | import pygtk | ||||||
|  | pygtk.require('2.0') | ||||||
|  | import gtk | ||||||
|  | 
 | ||||||
|  | class GuiTourneyViewer (threading.Thread): | ||||||
|  |     def __init__(self, config, db, sql, mainwin, debug=True): | ||||||
|  |         self.db = db | ||||||
|  |          | ||||||
|  |         self.mainVBox = gtk.VBox() | ||||||
|  |         self.interfaceHBox = gtk.HBox() | ||||||
|  |         self.mainVBox.pack_start(self.interfaceHBox, expand=False) | ||||||
|  |          | ||||||
|  |         self.siteBox = gtk.combo_box_new_text() | ||||||
|  |         for site in config.supported_sites: | ||||||
|  |             self.siteBox.append_text(site) | ||||||
|  |         self.siteBox.set_active(0) | ||||||
|  |         self.interfaceHBox.add(self.siteBox) | ||||||
|  |          | ||||||
|  |         label=gtk.Label("Enter the tourney number you want to display:") | ||||||
|  |         self.interfaceHBox.add(label) | ||||||
|  |          | ||||||
|  |         self.entryTourney = gtk.Entry() | ||||||
|  |         self.interfaceHBox.add(self.entryTourney) | ||||||
|  |          | ||||||
|  |         self.displayButton = gtk.Button("_Display") | ||||||
|  |         self.displayButton.connect('clicked', self.displayClicked) | ||||||
|  |         self.interfaceHBox.add(self.displayButton) | ||||||
|  |          | ||||||
|  |         self.entryPlayer = gtk.Entry() | ||||||
|  |         self.interfaceHBox.add(self.entryPlayer) | ||||||
|  |          | ||||||
|  |         self.playerButton = gtk.Button("Display _Player") | ||||||
|  |         self.playerButton.connect('clicked', self.displayPlayerClicked) | ||||||
|  |         self.interfaceHBox.add(self.playerButton) | ||||||
|  |          | ||||||
|  |         self.table = gtk.Table(columns=10, rows=9) | ||||||
|  |         self.mainVBox.add(self.table) | ||||||
|  |          | ||||||
|  |         self.mainVBox.show_all() | ||||||
|  |     #end def __init__ | ||||||
|  |      | ||||||
|  |     def displayClicked(self, widget, data=None): | ||||||
|  |         if self.prepare(10, 9): | ||||||
|  |             result=self.db.getTourneyInfo(self.siteName, self.tourneyNo) | ||||||
|  |             if result[1] == None: | ||||||
|  |                 self.table.destroy() | ||||||
|  |                 self.errorLabel=gtk.Label("Tournament not found - please ensure you imported it and selected the correct site") | ||||||
|  |                 self.mainVBox.add(self.errorLabel) | ||||||
|  |             else: | ||||||
|  |                 x=0 | ||||||
|  |                 y=0 | ||||||
|  |                 for i in range(1,len(result[0])): | ||||||
|  |                     if y==9: | ||||||
|  |                         x+=2 | ||||||
|  |                         y=0 | ||||||
|  |              | ||||||
|  |                     label=gtk.Label(result[0][i]) | ||||||
|  |                     self.table.attach(label,x,x+1,y,y+1) | ||||||
|  |              | ||||||
|  |                     if result[1][i]==None: | ||||||
|  |                         label=gtk.Label("N/A") | ||||||
|  |                     else: | ||||||
|  |                         label=gtk.Label(result[1][i]) | ||||||
|  |                     self.table.attach(label,x+1,x+2,y,y+1) | ||||||
|  |              | ||||||
|  |                     y+=1 | ||||||
|  |         self.mainVBox.show_all() | ||||||
|  |     #def displayClicked | ||||||
|  |      | ||||||
|  |     def displayPlayerClicked(self, widget, data=None): | ||||||
|  |         if self.prepare(4, 5): | ||||||
|  |             result=self.db.getTourneyPlayerInfo(self.siteName, self.tourneyNo, self.playerName) | ||||||
|  |             if result[1] == None: | ||||||
|  |                 self.table.destroy() | ||||||
|  |                 self.errorLabel=gtk.Label("Player or tourney not found - please ensure you imported it and selected the correct site") | ||||||
|  |                 self.mainVBox.add(self.errorLabel) | ||||||
|  |             else: | ||||||
|  |                 x=0 | ||||||
|  |                 y=0 | ||||||
|  |                 for i in range(1,len(result[0])): | ||||||
|  |                     if y==5: | ||||||
|  |                         x+=2 | ||||||
|  |                         y=0 | ||||||
|  |                  | ||||||
|  |                     label=gtk.Label(result[0][i]) | ||||||
|  |                     self.table.attach(label,x,x+1,y,y+1) | ||||||
|  |                  | ||||||
|  |                     if result[1][i]==None: | ||||||
|  |                         label=gtk.Label("N/A") | ||||||
|  |                     else: | ||||||
|  |                         label=gtk.Label(result[1][i]) | ||||||
|  |                     self.table.attach(label,x+1,x+2,y,y+1) | ||||||
|  |                  | ||||||
|  |                     y+=1 | ||||||
|  |         self.mainVBox.show_all() | ||||||
|  |     #def displayPlayerClicked | ||||||
|  |      | ||||||
|  |     def get_vbox(self): | ||||||
|  |         """returns the vbox of this thread""" | ||||||
|  |         return self.mainVBox | ||||||
|  |     #end def get_vbox | ||||||
|  |      | ||||||
|  |     def prepare(self, columns, rows): | ||||||
|  |         try: self.errorLabel.destroy() | ||||||
|  |         except: pass | ||||||
|  |          | ||||||
|  |         try: | ||||||
|  |             self.tourneyNo=int(self.entryTourney.get_text()) | ||||||
|  |         except ValueError: | ||||||
|  |             self.errorLabel=gtk.Label("invalid entry in tourney number - must enter numbers only") | ||||||
|  |             self.mainVBox.add(self.errorLabel) | ||||||
|  |             return False | ||||||
|  |         self.siteName=self.siteBox.get_active_text() | ||||||
|  |         self.playerName=self.entryPlayer.get_text() | ||||||
|  |          | ||||||
|  |         self.table.destroy() | ||||||
|  |         self.table=gtk.Table(columns=columns, rows=rows) | ||||||
|  |         self.mainVBox.add(self.table) | ||||||
|  |         return True | ||||||
|  |     #end def readInfo | ||||||
|  | #end class GuiTourneyViewer | ||||||
|  | @ -1336,8 +1336,6 @@ class Sql: | ||||||
|                 and   (p.siteId = %s or %s = -1) |                 and   (p.siteId = %s or %s = -1) | ||||||
|             """ |             """ | ||||||
| 
 | 
 | ||||||
|         self.query['getSiteId'] = """SELECT id from Sites where name = %s""" |  | ||||||
| 
 |  | ||||||
|         self.query['get_stats_from_hand'] = """ |         self.query['get_stats_from_hand'] = """ | ||||||
|                 SELECT hc.playerId                      AS player_id, |                 SELECT hc.playerId                      AS player_id, | ||||||
|                     hp.seatNo                           AS seat, |                     hp.seatNo                           AS seat, | ||||||
|  | @ -2010,8 +2008,6 @@ class Sql: | ||||||
|         self.query['getPlayerIdBySite'] = """SELECT id from Players where name = %s AND siteId = %s""" |         self.query['getPlayerIdBySite'] = """SELECT id from Players where name = %s AND siteId = %s""" | ||||||
| 
 | 
 | ||||||
|         # used in *Filters: |         # used in *Filters: | ||||||
|         self.query['getSiteId'] = """SELECT id from Sites where name = %s""" |  | ||||||
|         self.query['getGames'] = """SELECT DISTINCT category from Gametypes""" |  | ||||||
|         #self.query['getLimits'] = already defined further up |         #self.query['getLimits'] = already defined further up | ||||||
|         self.query['getLimits2'] = """SELECT DISTINCT type, limitType, bigBlind  |         self.query['getLimits2'] = """SELECT DISTINCT type, limitType, bigBlind  | ||||||
|                                       from Gametypes |                                       from Gametypes | ||||||
|  | @ -2992,7 +2988,6 @@ class Sql: | ||||||
|                 ,playerId |                 ,playerId | ||||||
|                 ,activeSeats |                 ,activeSeats | ||||||
|                 ,position |                 ,position | ||||||
|                 ,tourneyTypeId |  | ||||||
|                 ,styleKey |                 ,styleKey | ||||||
|                 ,HDs |                 ,HDs | ||||||
|                 ,wonWhenSeenStreet1 |                 ,wonWhenSeenStreet1 | ||||||
|  | @ -3082,7 +3077,6 @@ class Sql: | ||||||
|                             when hp.position = '9' then 'E' |                             when hp.position = '9' then 'E' | ||||||
|                             else 'E' |                             else 'E' | ||||||
|                        end                                            AS hc_position |                        end                                            AS hc_position | ||||||
|                       ,t.tourneyTypeId |  | ||||||
|                       ,date_format(h.startTime, 'd%y%m%d') |                       ,date_format(h.startTime, 'd%y%m%d') | ||||||
|                       ,count(1) |                       ,count(1) | ||||||
|                       ,sum(wonWhenSeenStreet1) |                       ,sum(wonWhenSeenStreet1) | ||||||
|  | @ -3156,14 +3150,11 @@ class Sql: | ||||||
|                       ,sum(hp.street4Raises) |                       ,sum(hp.street4Raises) | ||||||
|                 FROM HandsPlayers hp |                 FROM HandsPlayers hp | ||||||
|                 INNER JOIN Hands h ON (h.id = hp.handId) |                 INNER JOIN Hands h ON (h.id = hp.handId) | ||||||
|                 INNER JOIN TourneysPlayers tp ON (tp.id = hp.tourneysPlayersId) |  | ||||||
|                 INNER JOIN Tourneys t ON (t.id = tp.tourneyId) |  | ||||||
|                 <where_clause> |                 <where_clause> | ||||||
|                 GROUP BY h.gametypeId |                 GROUP BY h.gametypeId | ||||||
|                         ,hp.playerId |                         ,hp.playerId | ||||||
|                         ,h.seats |                         ,h.seats | ||||||
|                         ,hc_position |                         ,hc_position | ||||||
|                         ,t.tourneyTypeId |  | ||||||
|                         ,date_format(h.startTime, 'd%y%m%d') |                         ,date_format(h.startTime, 'd%y%m%d') | ||||||
| """ | """ | ||||||
|         elif db_server == 'postgresql': |         elif db_server == 'postgresql': | ||||||
|  | @ -3173,7 +3164,6 @@ class Sql: | ||||||
|                 ,playerId |                 ,playerId | ||||||
|                 ,activeSeats |                 ,activeSeats | ||||||
|                 ,position |                 ,position | ||||||
|                 ,tourneyTypeId |  | ||||||
|                 ,styleKey |                 ,styleKey | ||||||
|                 ,HDs |                 ,HDs | ||||||
|                 ,wonWhenSeenStreet1 |                 ,wonWhenSeenStreet1 | ||||||
|  | @ -3263,7 +3253,6 @@ class Sql: | ||||||
|                             when hp.position = '9' then 'E' |                             when hp.position = '9' then 'E' | ||||||
|                             else 'E' |                             else 'E' | ||||||
|                        end                                            AS hc_position |                        end                                            AS hc_position | ||||||
|                       ,t.tourneyTypeId |  | ||||||
|                       ,'d' || to_char(h.startTime, 'YYMMDD') |                       ,'d' || to_char(h.startTime, 'YYMMDD') | ||||||
|                       ,count(1) |                       ,count(1) | ||||||
|                       ,sum(wonWhenSeenStreet1) |                       ,sum(wonWhenSeenStreet1) | ||||||
|  | @ -3337,14 +3326,11 @@ class Sql: | ||||||
|                       ,sum(CAST(hp.street4Raises as integer)) |                       ,sum(CAST(hp.street4Raises as integer)) | ||||||
|                 FROM HandsPlayers hp |                 FROM HandsPlayers hp | ||||||
|                 INNER JOIN Hands h ON (h.id = hp.handId) |                 INNER JOIN Hands h ON (h.id = hp.handId) | ||||||
|                 INNER JOIN TourneysPlayers tp ON (tp.id = hp.tourneysPlayersId) |  | ||||||
|                 INNER JOIN Tourneys t ON (t.id = tp.tourneyId) |  | ||||||
|                 <where_clause> |                 <where_clause> | ||||||
|                 GROUP BY h.gametypeId |                 GROUP BY h.gametypeId | ||||||
|                         ,hp.playerId |                         ,hp.playerId | ||||||
|                         ,h.seats |                         ,h.seats | ||||||
|                         ,hc_position |                         ,hc_position | ||||||
|                         ,t.tourneyTypeId |  | ||||||
|                         ,to_char(h.startTime, 'YYMMDD') |                         ,to_char(h.startTime, 'YYMMDD') | ||||||
| """ | """ | ||||||
|         else:   # assume sqlite |         else:   # assume sqlite | ||||||
|  | @ -3354,7 +3340,6 @@ class Sql: | ||||||
|                 ,playerId |                 ,playerId | ||||||
|                 ,activeSeats |                 ,activeSeats | ||||||
|                 ,position |                 ,position | ||||||
|                 ,tourneyTypeId |  | ||||||
|                 ,styleKey |                 ,styleKey | ||||||
|                 ,HDs |                 ,HDs | ||||||
|                 ,wonWhenSeenStreet1 |                 ,wonWhenSeenStreet1 | ||||||
|  | @ -3444,7 +3429,6 @@ class Sql: | ||||||
|                             when hp.position = '9' then 'E' |                             when hp.position = '9' then 'E' | ||||||
|                             else 'E' |                             else 'E' | ||||||
|                        end                                            AS hc_position |                        end                                            AS hc_position | ||||||
|                       ,t.tourneyTypeId |  | ||||||
|                       ,'d' || substr(strftime('%Y%m%d', h.startTime),3,7) |                       ,'d' || substr(strftime('%Y%m%d', h.startTime),3,7) | ||||||
|                       ,count(1) |                       ,count(1) | ||||||
|                       ,sum(wonWhenSeenStreet1) |                       ,sum(wonWhenSeenStreet1) | ||||||
|  | @ -3518,14 +3502,11 @@ class Sql: | ||||||
|                       ,sum(CAST(hp.street4Raises as integer)) |                       ,sum(CAST(hp.street4Raises as integer)) | ||||||
|                 FROM HandsPlayers hp |                 FROM HandsPlayers hp | ||||||
|                 INNER JOIN Hands h ON (h.id = hp.handId) |                 INNER JOIN Hands h ON (h.id = hp.handId) | ||||||
|                 INNER JOIN TourneysPlayers tp ON (tp.id = hp.tourneysPlayersId) |  | ||||||
|                 INNER JOIN Tourneys t ON (t.id = tp.tourneyId) |  | ||||||
|                 <where_clause> |                 <where_clause> | ||||||
|                 GROUP BY h.gametypeId |                 GROUP BY h.gametypeId | ||||||
|                         ,hp.playerId |                         ,hp.playerId | ||||||
|                         ,h.seats |                         ,h.seats | ||||||
|                         ,hc_position |                         ,hc_position | ||||||
|                         ,t.tourneyTypeId |  | ||||||
|                         ,'d' || substr(strftime('%Y%m%d', h.startTime),3,7) |                         ,'d' || substr(strftime('%Y%m%d', h.startTime),3,7) | ||||||
| """ | """ | ||||||
| 
 | 
 | ||||||
|  | @ -3812,6 +3793,22 @@ class Sql: | ||||||
|                                         WHERE tt.siteId=%s AND t.siteTourneyNo=%s |                                         WHERE tt.siteId=%s AND t.siteTourneyNo=%s | ||||||
|         """ |         """ | ||||||
| 
 | 
 | ||||||
|  |         self.query['getTourneyInfo'] = """SELECT tt.*, t.* | ||||||
|  |                                         FROM Tourneys t | ||||||
|  |                                         INNER JOIN TourneyTypes tt ON (t.tourneyTypeId = tt.id) | ||||||
|  |                                         INNER JOIN Sites s ON (tt.siteId = s.id) | ||||||
|  |                                         WHERE s.name=%s AND t.siteTourneyNo=%s | ||||||
|  |         """ | ||||||
|  | 
 | ||||||
|  |         self.query['getTourneyPlayerInfo'] = """SELECT tp.* | ||||||
|  |                                         FROM Tourneys t | ||||||
|  |                                         INNER JOIN TourneyTypes tt ON (t.tourneyTypeId = tt.id) | ||||||
|  |                                         INNER JOIN Sites s ON (tt.siteId = s.id) | ||||||
|  |                                         INNER JOIN TourneysPlayers tp ON (tp.tourneyId = t.id) | ||||||
|  |                                         INNER JOIN Players p ON (p.id = tp.playerId) | ||||||
|  |                                         WHERE s.name=%s AND t.siteTourneyNo=%s AND p.name=%s | ||||||
|  |         """ | ||||||
|  |          | ||||||
|         self.query['insertTourney'] = """INSERT INTO Tourneys |         self.query['insertTourney'] = """INSERT INTO Tourneys | ||||||
|                                             (tourneyTypeId, siteTourneyNo, entries, prizepool, |                                             (tourneyTypeId, siteTourneyNo, entries, prizepool, | ||||||
|                                              startTime, endTime, tourneyName, matrixIdProcessed, |                                              startTime, endTime, tourneyName, matrixIdProcessed, | ||||||
|  |  | ||||||
|  | @ -106,6 +106,7 @@ import GuiBulkImport | ||||||
| import ImapFetcher | import ImapFetcher | ||||||
| import GuiRingPlayerStats | import GuiRingPlayerStats | ||||||
| import GuiTourneyPlayerStats | import GuiTourneyPlayerStats | ||||||
|  | import GuiTourneyViewer | ||||||
| import GuiPositionalStats | import GuiPositionalStats | ||||||
| import GuiAutoImport | import GuiAutoImport | ||||||
| import GuiGraphViewer | import GuiGraphViewer | ||||||
|  | @ -794,6 +795,7 @@ class fpdb: | ||||||
|                   <menuitem action="graphs"/> |                   <menuitem action="graphs"/> | ||||||
|                   <menuitem action="ringplayerstats"/> |                   <menuitem action="ringplayerstats"/> | ||||||
|                   <menuitem action="tourneyplayerstats"/> |                   <menuitem action="tourneyplayerstats"/> | ||||||
|  |                   <menuitem action="tourneyviewer"/> | ||||||
|                   <menuitem action="posnstats"/> |                   <menuitem action="posnstats"/> | ||||||
|                   <menuitem action="sessionstats"/> |                   <menuitem action="sessionstats"/> | ||||||
|                 </menu> |                 </menu> | ||||||
|  | @ -833,6 +835,7 @@ class fpdb: | ||||||
|                                  ('graphs', None, '_Graphs', '<control>G', 'Graphs', self.tabGraphViewer), |                                  ('graphs', None, '_Graphs', '<control>G', 'Graphs', self.tabGraphViewer), | ||||||
|                                  ('ringplayerstats', None, 'Ring _Player Stats (tabulated view)', '<control>P', 'Ring Player Stats (tabulated view)', self.tab_ring_player_stats), |                                  ('ringplayerstats', None, 'Ring _Player Stats (tabulated view)', '<control>P', 'Ring Player Stats (tabulated view)', self.tab_ring_player_stats), | ||||||
|                                  ('tourneyplayerstats', None, '_Tourney Player Stats (tabulated view, mysql only)', '<control>T', 'Tourney Player Stats (tabulated view, mysql only)', self.tab_tourney_player_stats), |                                  ('tourneyplayerstats', None, '_Tourney Player Stats (tabulated view, mysql only)', '<control>T', 'Tourney Player Stats (tabulated view, mysql only)', self.tab_tourney_player_stats), | ||||||
|  |                                  ('tourneyviewer', None, 'Tourney _Viewer', None, 'Tourney Viewer)', self.tab_tourney_viewer_stats), | ||||||
|                                  ('posnstats', None, 'P_ositional Stats (tabulated view)', '<control>O', 'Positional Stats (tabulated view)', self.tab_positional_stats), |                                  ('posnstats', None, 'P_ositional Stats (tabulated view)', '<control>O', 'Positional Stats (tabulated view)', self.tab_positional_stats), | ||||||
|                                  ('sessionstats', None, 'Session Stats', None, 'Session Stats', self.tab_session_stats), |                                  ('sessionstats', None, 'Session Stats', None, 'Session Stats', self.tab_session_stats), | ||||||
|                                  ('database', None, '_Database'), |                                  ('database', None, '_Database'), | ||||||
|  | @ -1033,6 +1036,12 @@ class fpdb: | ||||||
|         ps_tab=new_ps_thread.get_vbox() |         ps_tab=new_ps_thread.get_vbox() | ||||||
|         self.add_and_display_tab(ps_tab, "Tourney Player Stats") |         self.add_and_display_tab(ps_tab, "Tourney Player Stats") | ||||||
| 
 | 
 | ||||||
|  |     def tab_tourney_viewer_stats(self, widget, data=None): | ||||||
|  |         new_thread = GuiTourneyViewer.GuiTourneyViewer(self.config, self.db, self.sql, self.window) | ||||||
|  |         self.threads.append(new_thread) | ||||||
|  |         tab=new_thread.get_vbox() | ||||||
|  |         self.add_and_display_tab(tab, "Tourney Viewer") | ||||||
|  | 
 | ||||||
|     def tab_positional_stats(self, widget, data=None): |     def tab_positional_stats(self, widget, data=None): | ||||||
|         new_ps_thread = GuiPositionalStats.GuiPositionalStats(self.config, self.sql) |         new_ps_thread = GuiPositionalStats.GuiPositionalStats(self.config, self.sql) | ||||||
|         self.threads.append(new_ps_thread) |         self.threads.append(new_ps_thread) | ||||||
|  |  | ||||||
|  | @ -0,0 +1,63 @@ | ||||||
|  | Game #9485557849 starts. | ||||||
|  | 
 | ||||||
|  | #Game No : 9485557849  | ||||||
|  | ***** Hand History for Game 9485557849 ***** | ||||||
|  | $0.80 USD NL Texas Hold'em - Saturday, July 31, 13:52:16 EDT 2010 | ||||||
|  | Table 20BB Min Speed #1770998 (Real Money) | ||||||
|  | Seat 1 is the button | ||||||
|  | Total number of players : 4/9  | ||||||
|  | Seat 3: FErki84 ( $1.64 USD ) | ||||||
|  | Seat 5: Vandercasses ( $0.01 USD ) | ||||||
|  | Seat 9: jeremyho888 ( $1.02 USD ) | ||||||
|  | Seat 1: sergeodem ( $1.20 USD ) | ||||||
|  | FErki84 posts small blind [$0.01 USD]. | ||||||
|  | Vandercasses posts big blind [$0.01 USD]. | ||||||
|  | ** Dealing down cards ** | ||||||
|  | Dealt to FErki84 [  8h Kc ] | ||||||
|  | jeremyho888 folds | ||||||
|  | sergeodem calls [$0.02 USD] | ||||||
|  | FErki84 calls [$0.01 USD] | ||||||
|  | ** Dealing Flop ** [ Td, 7c, 9h ] | ||||||
|  | FErki84 checks | ||||||
|  | sergeodem checks | ||||||
|  | ** Dealing Turn ** [ 3h ] | ||||||
|  | FErki84 checks | ||||||
|  | sergeodem checks | ||||||
|  | ** Dealing River ** [ Jc ] | ||||||
|  | FErki84 bets [$0.04 USD] | ||||||
|  | sergeodem folds | ||||||
|  | FErki84 shows [ 8h, Kc ]a straight, Seven to Jack. | ||||||
|  | Vandercasses doesn't show [ Ts, Jd ]two pairs, Jacks and Tens. | ||||||
|  | FErki84 wins $0.06 USD from the side pot 1 with a straight, Seven to Jack. | ||||||
|  | FErki84 wins $0.03 USD from the main pot with a straight, Seven to Jack. | ||||||
|  | Vandercasses has left the table. | ||||||
|  | 
 | ||||||
|  | Game #9498788316 starts. | ||||||
|  | 
 | ||||||
|  | #Game No : 9498788316  | ||||||
|  | ***** Hand History for Game 9498788316 ***** | ||||||
|  | $1.60 USD NL Texas Hold'em - Wednesday, August 04, 15:02:33 EDT 2010 | ||||||
|  | Table 20BB Min #1847547 (No DP) (Real Money) | ||||||
|  | Seat 2 is the button | ||||||
|  | Total number of players : 5/6  | ||||||
|  | Seat 5: CepguTbIu999 ( $1.60 USD ) | ||||||
|  | Seat 1: Daytona_955 ( $2.45 USD ) | ||||||
|  | Seat 4: FErki84 ( $2.18 USD ) | ||||||
|  | Seat 2: anjl2009 ( $2.80 USD ) | ||||||
|  | Seat 3: lukeman2 ( $0.01 USD ) | ||||||
|  | lukeman2 posts small blind [$0.01 USD]. | ||||||
|  | FErki84 posts big blind [$0.04 USD]. | ||||||
|  | ** Dealing down cards ** | ||||||
|  | Dealt to FErki84 [  6s 2c ] | ||||||
|  | CepguTbIu999 folds | ||||||
|  | Daytona_955 folds | ||||||
|  | anjl2009 folds | ||||||
|  | ** Dealing Flop ** [ 9d, Ah, 3h ] | ||||||
|  | ** Dealing Turn ** [ Js ] | ||||||
|  | ** Dealing River ** [ Kc ] | ||||||
|  | lukeman2 shows [ 5h, 5s ]a pair of Fives. | ||||||
|  | FErki84 shows [ 6s, 2c ]high card Ace. | ||||||
|  | FErki84 wins $0.03 USD from the side pot 1 with high card, Ace. | ||||||
|  | lukeman2 wins $0.02 USD from the main pot with a pair of Fives. | ||||||
|  | lukeman2 has left the table. | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,41 @@ | ||||||
|  | ***** Hand History For Game 9423586142 ***** | ||||||
|  | 0.01/0.02 Texas Hold'em Game Table (NL)  -  Mon Jul 12 13:38:32 EDT 2010 | ||||||
|  | Table 20BB Min Speed #1775757  (Real Money) -- Seat 1 is the button | ||||||
|  | Total number of players : 9/9 | ||||||
|  | Seat 1: Player1 ($0.95) | ||||||
|  | Seat 2: Player2 ($0.57) | ||||||
|  | Seat 3: Player3 ($0.86) | ||||||
|  | Seat 4: Player4 ($1.71) | ||||||
|  | Seat 5: Player5 ($1.76) | ||||||
|  | Seat 6: Player6 ($0.44) | ||||||
|  | Seat 7: Player7 ($0.76) | ||||||
|  | Seat 8: Player8 ($0.68) | ||||||
|  | Seat 9: Player9 ($0.38) | ||||||
|  | Player2 posts small blind (0.01) | ||||||
|  | Player3 posts big blind (0.02) | ||||||
|  | ** Dealing down cards ** | ||||||
|  | Dealt to Player5 [ Tc, 9d ] | ||||||
|  | Player5 folds | ||||||
|  | Player6 calls (0.02) | ||||||
|  | Player8 folds | ||||||
|  | Player9 folds | ||||||
|  | Player1 folds | ||||||
|  | Player2 calls (0.01) | ||||||
|  | Player3 raises 0.06 to 0.08 | ||||||
|  | Player6 calls (0.06) | ||||||
|  | Player2 folds | ||||||
|  | ** Dealing Flop ** :  [ 5s, 7h, 6h ] | ||||||
|  | Player3 bets (0.13) | ||||||
|  | Player6 folds | ||||||
|  | ** Summary ** | ||||||
|  | Main Pot: $0.18 Rake: $0 | ||||||
|  | Board: [ 5s 7h 6h ] | ||||||
|  | Player1 balance $0.95, didn't bet (folded) | ||||||
|  | Player2 balance $0.55, lost $0.02 (folded) | ||||||
|  | Player3 balance $0.96, bet $0.21, collected $0.31, net +$0.1 | ||||||
|  | Player4 balance $1.71, sits out | ||||||
|  | Player5 balance $1.76, didn't bet (folded) | ||||||
|  | Player6 balance $0.36, lost $0.08 (folded) | ||||||
|  | Player7 balance $0.76, sits out | ||||||
|  | Player8 balance $0.68, didn't bet (folded) | ||||||
|  | Player9 balance $0.38, didn't bet (folded) | ||||||
|  | @ -0,0 +1,37 @@ | ||||||
|  | ***** Hand History For Game 9336845949 ***** | ||||||
|  | 30/60 Tourney Texas Hold'em Game Table (NL)  (STT Tournament #52792286)  -  Sun Jun 13 12:21:39 EDT 2010 | ||||||
|  | Table  174827  (Real Money) -- Seat 6 is the button | ||||||
|  | Total number of players : 6/6 | ||||||
|  | Seat 1: Player1 (1520) | ||||||
|  | Seat 2: Player2 (1540) | ||||||
|  | Seat 3: Player3 (2120) | ||||||
|  | Seat 4: Player4 (2460) | ||||||
|  | Seat 5: Player5 (2600) | ||||||
|  | Seat 6: Player6 (1760) | ||||||
|  | Player1 posts small blind (30) | ||||||
|  | Player2 posts big blind (60) | ||||||
|  | ** Dealing down cards ** | ||||||
|  | Dealt to Player5 [ Jc, Js ] | ||||||
|  | Player3 folds | ||||||
|  | Player4 folds | ||||||
|  | Player6 folds | ||||||
|  | Player1 calls (210) | ||||||
|  | Player2 folds | ||||||
|  | ** Dealing Flop ** :  [ 4h, 7d, 5c ] | ||||||
|  | Player1 checks | ||||||
|  | Player1 calls (450) | ||||||
|  | ** Dealing Turn ** :  [ Kd ]  | ||||||
|  | Player1 checks | ||||||
|  | Player1 calls (830) | ||||||
|  | Player1 is all-In. | ||||||
|  | ** Dealing River ** :  [ Jd ]  | ||||||
|  | Creating Main Pot with 3100 with Player1 | ||||||
|  | ** Summary ** | ||||||
|  | Main Pot: 3100 | ||||||
|  | Board: [ 4h 7d 5c Kd Jd ] | ||||||
|  | Player1 balance 0, lost 1520 [ Ks 6c ] [ a pair of kings -- Ks,Kd,Jd,7d,6c ] | ||||||
|  | Player2 balance 1480, lost 60 (folded) | ||||||
|  | Player3 balance 2120, didn't bet (folded) | ||||||
|  | Player4 balance 2460, didn't bet (folded) | ||||||
|  | Player5 balance 4180, bet 1520, collected 3100, net +1580 [ Jc Js ] [ three of a kind, jacks -- Kd,Jc,Js,Jd,7d ] | ||||||
|  | Player6 balance 1760, didn't bet (folded) | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user