Merge branch 'master' of git://git.assembla.com/free_poker_tools
This commit is contained in:
commit
a9df7d09c1
0
pyfpdb/Database.py
Normal file → Executable file
0
pyfpdb/Database.py
Normal file → Executable file
|
@ -80,6 +80,10 @@ class Hand:
|
||||||
self.totalcollected = None
|
self.totalcollected = None
|
||||||
self.rake = None
|
self.rake = None
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
str = ''
|
||||||
|
str = str + "Hand Object for %s at %s" % (self.handid, self.sitename)
|
||||||
|
return str
|
||||||
|
|
||||||
def insert(self, db):
|
def insert(self, db):
|
||||||
""" Function to insert Hand into database
|
""" Function to insert Hand into database
|
||||||
|
@ -382,7 +386,7 @@ Map the tuple self.gametype onto the pokerstars string describing it
|
||||||
"omahahilo" : "Omaha Hi/Lo",
|
"omahahilo" : "Omaha Hi/Lo",
|
||||||
"razz" : "Razz",
|
"razz" : "Razz",
|
||||||
"studhi" : "7 Card Stud",
|
"studhi" : "7 Card Stud",
|
||||||
"studhilo" : "FIXME",
|
"studhilo" : "7 Card Stud Hi/Lo",
|
||||||
"fivedraw" : "5 Card Draw",
|
"fivedraw" : "5 Card Draw",
|
||||||
"27_1draw" : "FIXME",
|
"27_1draw" : "FIXME",
|
||||||
"27_3draw" : "Triple Draw 2-7 Lowball",
|
"27_3draw" : "Triple Draw 2-7 Lowball",
|
||||||
|
@ -878,7 +882,8 @@ Add a complete on [street] by [player] to [amountTo]
|
||||||
|
|
||||||
def writeHand(self, fh=sys.__stdout__):
|
def writeHand(self, fh=sys.__stdout__):
|
||||||
# PokerStars format.
|
# PokerStars format.
|
||||||
print >>fh, _("%s Game #%s: %s ($%s/$%s) - %s" %("PokerStars", self.handid, self.getGameTypeAsString(), self.sb, self.bb, time.strftime('%Y/%m/%d - %H:%M:%S (ET)', self.starttime)))
|
# print >>fh, _("%s Game #%s: %s ($%s/$%s) - %s" %("PokerStars", self.handid, self.getGameTypeAsString(), self.sb, self.bb, time.strftime('%Y/%m/%d - %H:%M:%S (ET)', self.starttime)))
|
||||||
|
print >>fh, _("%s Game #%s: %s ($%s/$%s) - %s" %("PokerStars", self.handid, self.getGameTypeAsString(), self.sb, self.bb, datetime.datetime.strftime(self.starttime,'%Y/%m/%d - %H:%M:%S ET')))
|
||||||
print >>fh, _("Table '%s' %d-max Seat #%s is the button" %(self.tablename, self.maxseats, self.buttonpos))
|
print >>fh, _("Table '%s' %d-max Seat #%s is the button" %(self.tablename, self.maxseats, self.buttonpos))
|
||||||
|
|
||||||
players_who_post_antes = set([x[0] for x in self.actions['ANTES']])
|
players_who_post_antes = set([x[0] for x in self.actions['ANTES']])
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2008, Carl Gherardi
|
# Copyright 2008, Carl Gherardi
|
||||||
|
@ -26,7 +26,7 @@ from HandHistoryConverter import *
|
||||||
class PokerStars(HandHistoryConverter):
|
class PokerStars(HandHistoryConverter):
|
||||||
|
|
||||||
# Static regexes
|
# Static regexes
|
||||||
re_GameInfo = re.compile("PokerStars Game #(?P<HID>[0-9]+):\s+(HORSE)? \(?(?P<GAME>Hold\'em|Razz|7 Card Stud|Omaha|Omaha Hi/Lo|Badugi) (?P<LIMIT>No Limit|Limit|Pot Limit),? \(?(?P<CURRENCY>\$|)?(?P<SB>[.0-9]+)/\$?(?P<BB>[.0-9]+)\) - (?P<DATETIME>.*$)", re.MULTILINE)
|
re_GameInfo = re.compile("PokerStars Game #(?P<HID>[0-9]+):\s+(HORSE)? \(?(?P<GAME>Hold\'em|Razz|7 Card Stud|7 Card Stud Hi/Lo|Omaha|Omaha Hi/Lo|Badugi) (?P<LIMIT>No Limit|Limit|Pot Limit),? \(?(?P<CURRENCY>\$|)?(?P<SB>[.0-9]+)/\$?(?P<BB>[.0-9]+)\) - (?P<DATETIME>.*$)", re.MULTILINE)
|
||||||
re_SplitHands = re.compile('\n\n+')
|
re_SplitHands = re.compile('\n\n+')
|
||||||
re_TailSplitHands = re.compile('(\n\n\n+)')
|
re_TailSplitHands = re.compile('(\n\n\n+)')
|
||||||
re_HandInfo = re.compile("^Table \'(?P<TABLE>[- a-zA-Z]+)\'(?P<TABLEATTRIBUTES>.+?$)?", re.MULTILINE)
|
re_HandInfo = re.compile("^Table \'(?P<TABLE>[- a-zA-Z]+)\'(?P<TABLEATTRIBUTES>.+?$)?", re.MULTILINE)
|
||||||
|
@ -95,6 +95,7 @@ follow : whether to tail -f the input"""
|
||||||
'Omaha Hi/Lo' : ('hold','omahahilo'),
|
'Omaha Hi/Lo' : ('hold','omahahilo'),
|
||||||
'Razz' : ('stud','razz'),
|
'Razz' : ('stud','razz'),
|
||||||
'7 Card Stud' : ('stud','studhi'),
|
'7 Card Stud' : ('stud','studhi'),
|
||||||
|
'7 Card Stud Hi/Lo' : ('stud','studhilo'),
|
||||||
'Badugi' : ('draw','badugi')
|
'Badugi' : ('draw','badugi')
|
||||||
}
|
}
|
||||||
currencies = { u'€':'EUR', '$':'USD', '':'T$' }
|
currencies = { u'€':'EUR', '$':'USD', '':'T$' }
|
||||||
|
|
|
@ -62,7 +62,7 @@ class Table(Table_Window):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
(x, y, width, height) = win32gui.GetWindowRect(hwnd)
|
(x, y, width, height) = win32gui.GetWindowRect(hwnd)
|
||||||
print "x = %s y = %s width = %s height = %s" % (x, y, width, height)
|
print "x = %s y = %s width = %s height = %s" % (x, y, width, height)
|
||||||
self.x = int(x) + b_width
|
self.x = int(x) + b_width
|
||||||
self.y = int(y) + tb_height
|
self.y = int(y) + tb_height
|
||||||
self.height = int(height) - b_width - tb_height
|
self.height = int(height) - b_width - tb_height
|
||||||
|
@ -72,7 +72,8 @@ class Table(Table_Window):
|
||||||
self.title = titles[hwnd]
|
self.title = titles[hwnd]
|
||||||
self.site = ""
|
self.site = ""
|
||||||
self.hud = None
|
self.hud = None
|
||||||
self.number = gtk.gdk.window_foreign_new(long(self.window))
|
self.number = hwnd
|
||||||
|
self.gdkhandle = gtk.gdk.window_foreign_new(long(self.window))
|
||||||
|
|
||||||
def get_geometry(self):
|
def get_geometry(self):
|
||||||
|
|
||||||
|
@ -112,32 +113,31 @@ class Table(Table_Window):
|
||||||
win32api.CloseHandle(hToken)
|
win32api.CloseHandle(hToken)
|
||||||
|
|
||||||
return exename
|
return exename
|
||||||
|
def topify(self, hud):
|
||||||
|
"""Set the specified gtk window to stayontop in MS Windows."""
|
||||||
|
|
||||||
|
def windowEnumerationHandler(hwnd, resultList):
|
||||||
|
'''Callback for win32gui.EnumWindows() to generate list of window handles.'''
|
||||||
|
resultList.append((hwnd, win32gui.GetWindowText(hwnd)))
|
||||||
|
|
||||||
|
unique_name = 'unique name for finding this window'
|
||||||
|
real_name = hud.main_window.get_title()
|
||||||
|
hud.main_window.set_title(unique_name)
|
||||||
|
tl_windows = []
|
||||||
|
win32gui.EnumWindows(windowEnumerationHandler, tl_windows)
|
||||||
|
|
||||||
|
for w in tl_windows:
|
||||||
|
if w[1] == unique_name:
|
||||||
|
hud.main_window.gdkhandle = gtk.gdk.window_foreign_new(w[0])
|
||||||
|
hud.main_window.gdkhandle.set_transient_for(self.gdkhandle)
|
||||||
|
#
|
||||||
|
# style = win32gui.GetWindowLong(self.number, win32con.GWL_EXSTYLE)
|
||||||
|
# style |= win32con.WS_CLIPCHILDREN
|
||||||
|
# win32gui.SetWindowLong(self.number, win32con.GWL_EXSTYLE, style)
|
||||||
|
break
|
||||||
|
|
||||||
|
hud.main_window.set_title(real_name)
|
||||||
|
|
||||||
def win_enum_handler(hwnd, titles):
|
def win_enum_handler(hwnd, titles):
|
||||||
titles[hwnd] = win32gui.GetWindowText(hwnd)
|
titles[hwnd] = win32gui.GetWindowText(hwnd)
|
||||||
|
|
||||||
def topify_window(hud, window):
|
|
||||||
"""Set the specified gtk window to stayontop in MS Windows."""
|
|
||||||
|
|
||||||
def windowEnumerationHandler(hwnd, resultList):
|
|
||||||
'''Callback for win32gui.EnumWindows() to generate list of window handles.'''
|
|
||||||
resultList.append((hwnd, win32gui.GetWindowText(hwnd)))
|
|
||||||
|
|
||||||
unique_name = 'unique name for finding this window'
|
|
||||||
real_name = window.get_title()
|
|
||||||
window.set_title(unique_name)
|
|
||||||
tl_windows = []
|
|
||||||
win32gui.EnumWindows(windowEnumerationHandler, tl_windows)
|
|
||||||
|
|
||||||
for w in tl_windows:
|
|
||||||
if w[1] == unique_name:
|
|
||||||
hud.main_window.parentgdkhandle = gtk.gdk.window_foreign_new(long(hud.table.number))
|
|
||||||
hud.main_window.gdkhandle = gtk.gdk.window_foreign_new(w[0])
|
|
||||||
hud.main_window.gdkhandle.set_transient_for(hud.main_window.parentgdkhandle)
|
|
||||||
|
|
||||||
style = win32gui.GetWindowLong(self.table.number, win32con.GWL_EXSTYLE)
|
|
||||||
style |= win32con.WS_CLIPCHILDREN
|
|
||||||
win32gui.SetWindowLong(hud.table.number, win32con.GWL_EXSTYLE, style)
|
|
||||||
break
|
|
||||||
|
|
||||||
window.set_title(real_name)
|
|
||||||
|
|
||||||
|
|
|
@ -26,14 +26,13 @@ MYSQL_INNODB = 2
|
||||||
PGSQL = 3
|
PGSQL = 3
|
||||||
SQLITE = 4
|
SQLITE = 4
|
||||||
|
|
||||||
#fastStoreHudCache = False # set this to True to test the new storeHudCache routine
|
fastStoreHudCache = False # set this to True to test the new storeHudCache routine
|
||||||
#
|
|
||||||
#saveActions = True # set this to False to avoid storing action data
|
|
||||||
# # Pros: speeds up imports
|
|
||||||
# # Cons: no action data is saved, so you need to keep the hand histories
|
|
||||||
# # variance not available on stats page
|
|
||||||
# # no graphs
|
|
||||||
|
|
||||||
|
saveActions = True # set this to False to avoid storing action data
|
||||||
|
# Pros: speeds up imports
|
||||||
|
# Cons: no action data is saved, so you need to keep the hand histories
|
||||||
|
# variance not available on stats page
|
||||||
|
# : No graphs
|
||||||
#stores a stud/razz hand into the database
|
#stores a stud/razz hand into the database
|
||||||
def ring_stud(config, backend, db, cursor, base, category, site_hand_no, gametype_id, hand_start_time
|
def ring_stud(config, backend, db, cursor, base, category, site_hand_no, gametype_id, hand_start_time
|
||||||
,names, player_ids, start_cashes, antes, card_values, card_suits, winnings, rakes
|
,names, player_ids, start_cashes, antes, card_values, card_suits, winnings, rakes
|
||||||
|
@ -48,7 +47,7 @@ def ring_stud(config, backend, db, cursor, base, category, site_hand_no, gametyp
|
||||||
fpdb_simple.fillCardArrays(len(names), base, category, card_values, card_suits)
|
fpdb_simple.fillCardArrays(len(names), base, category, card_values, card_suits)
|
||||||
|
|
||||||
hands_id = fpdb_simple.storeHands(backend, db, cursor, site_hand_no, gametype_id
|
hands_id = fpdb_simple.storeHands(backend, db, cursor, site_hand_no, gametype_id
|
||||||
,hand_start_time, names, tableName, maxSeats)
|
,hand_start_time, names, tableName, maxSeats, hudImportData)
|
||||||
|
|
||||||
#print "before calling store_hands_players_stud, antes:", antes
|
#print "before calling store_hands_players_stud, antes:", antes
|
||||||
hands_players_ids = fpdb_simple.store_hands_players_stud(backend, db, cursor, hands_id, player_ids
|
hands_players_ids = fpdb_simple.store_hands_players_stud(backend, db, cursor, hands_id, player_ids
|
||||||
|
|
|
@ -1318,19 +1318,26 @@ def store_hands_players_stud(backend, conn, cursor, hands_id, player_ids, start_
|
||||||
result=[]
|
result=[]
|
||||||
#print "before inserts in store_hands_players_stud, antes:", antes
|
#print "before inserts in store_hands_players_stud, antes:", antes
|
||||||
for i in xrange(len(player_ids)):
|
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])
|
||||||
|
|
||||||
cursor.execute ("""INSERT INTO HandsPlayers
|
cursor.execute ("""INSERT INTO HandsPlayers
|
||||||
(handId, playerId, startCash, ante,
|
(handId, playerId, startCash, ante, tourneyTypeId,
|
||||||
card1Value, card1Suit, card2Value, card2Suit,
|
card1, card2,
|
||||||
card3Value, card3Suit, card4Value, card4Suit,
|
card3, card4,
|
||||||
card5Value, card5Suit, card6Value, card6Suit,
|
card5, card6,
|
||||||
card7Value, card7Suit, winnings, rake, seatNo)
|
card7, winnings, rake, seatNo)
|
||||||
VALUES (%s, %s, %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, %s, %s, %s)""",
|
(hands_id, player_ids[i], start_cashes[i], antes[i], 1,
|
||||||
(hands_id, player_ids[i], start_cashes[i], antes[i],
|
card1, card2,
|
||||||
card_values[i][0], card_suits[i][0], card_values[i][1], card_suits[i][1],
|
card3, card4,
|
||||||
card_values[i][2], card_suits[i][2], card_values[i][3], card_suits[i][3],
|
card5, card6,
|
||||||
card_values[i][4], card_suits[i][4], card_values[i][5], card_suits[i][5],
|
card7, winnings[i], rakes[i], seatNos[i]))
|
||||||
card_values[i][6], card_suits[i][6], winnings[i], rakes[i], seatNos[i]))
|
|
||||||
#cursor.execute("SELECT id FROM HandsPlayers WHERE handId=%s AND playerId+0=%s", (hands_id, player_ids[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(cursor.fetchall()[0][0])
|
||||||
result.append( getLastInsertId(backend, conn, cursor) )
|
result.append( getLastInsertId(backend, conn, cursor) )
|
||||||
|
|
Loading…
Reference in New Issue
Block a user