Work on plugin initialisation, add Carbon poker plugin
This commit is contained in:
parent
4f64464df3
commit
7df572895b
75
pyfpdb/CarbonToFpdb.py
Normal file
75
pyfpdb/CarbonToFpdb.py
Normal file
|
@ -0,0 +1,75 @@
|
|||
#!/usr/bin/env python
|
||||
# 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
|
||||
# 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
|
||||
|
||||
########################################################################
|
||||
|
||||
# Standard Library modules
|
||||
import Configuration
|
||||
import traceback
|
||||
import xml.dom.minidom
|
||||
from xml.dom.minidom import Node
|
||||
from HandHistoryConverter import HandHistoryConverter
|
||||
|
||||
# Carbon format looks like:
|
||||
|
||||
# 1) <description type="Holdem" stakes="No Limit ($0.25/$0.50)"/>
|
||||
# 2) <game id="14902583-5578" starttime="20081006145401" numholecards="2" gametype="2" realmoney="true" data="20081006|Niagara Falls (14902583)|14902583|14902583-5578|false">
|
||||
# 3) <players dealer="8">
|
||||
# <player seat="3" nickname="PlayerInSeat3" balance="$43.29" dealtin="true" />
|
||||
# ...
|
||||
# 4) <round id="BLINDS" sequence="1">
|
||||
# <event sequence="1" type="SMALL_BLIND" player="0" amount="0.25"/>
|
||||
# <event sequence="2" type="BIG_BLIND" player="1" amount="0.50"/>
|
||||
# 5) <round id="PREFLOP" sequence="2">
|
||||
# <event sequence="3" type="CALL" player="2" amount="0.50"/>
|
||||
# 6) <round id="POSTFLOP" sequence="3">
|
||||
# <event sequence="16" type="BET" player="3" amount="1.00"/>
|
||||
# ....
|
||||
# <cards type="COMMUNITY" cards="7d,Jd,Jh"/>
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
class CarbonPoker(HandHistoryConverter):
|
||||
def __init__(self, config, filename):
|
||||
print "Initialising Carbon Poker converter class"
|
||||
HandHistoryConverter.__init__(self, config, filename) # Call super class init
|
||||
self.sitename = "Carbon"
|
||||
self.setFileType("xml")
|
||||
|
||||
def readSupportedGames(self):
|
||||
pass
|
||||
def determineGameType(self):
|
||||
desc_node = doc.getElementsByTagName("description")
|
||||
type = desc_node.getAttribute("type")
|
||||
stakes = desc_node.getAttribute("stakes")
|
||||
|
||||
def readPlayerStacks(self):
|
||||
pass
|
||||
def readBlinds(self):
|
||||
pass
|
||||
def readAction(self):
|
||||
pass
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
c = Configuration.Config()
|
||||
e = CarbonPoker(c, "regression-test-files/carbon-poker/Niagara Falls (15245216).xml")
|
||||
print str(e)
|
|
@ -16,11 +16,16 @@
|
|||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
########################################################################
|
||||
|
||||
import Configuration
|
||||
from HandHistoryConverter import HandHistoryConverter
|
||||
|
||||
class Everleaf(HandHistoryConverter):
|
||||
def __init__(self):
|
||||
def __init__(self, config, file):
|
||||
print "Initialising Everleaf converter class"
|
||||
HandHistoryConverter.__init__(self, config, file) # Call super class init.
|
||||
self.sitename = "Everleaf"
|
||||
self.setFileType("text")
|
||||
|
||||
def readSupportedGames(self):
|
||||
pass
|
||||
|
||||
|
@ -37,4 +42,7 @@ class Everleaf(HandHistoryConverter):
|
|||
pass
|
||||
|
||||
if __name__ == "__main__":
|
||||
e = Everleaf()
|
||||
c = Configuration.Config()
|
||||
e = Everleaf(c, "regression-test-files/everleaf/Speed_Kuala.txt")
|
||||
print str(e)
|
||||
|
||||
|
|
|
@ -16,8 +16,22 @@
|
|||
#agpl-3.0.txt in the docs folder of the package.
|
||||
|
||||
class HandHistoryConverter:
|
||||
def __init__(self):
|
||||
pass
|
||||
def __init__(self, config, file):
|
||||
print "HandHistory init called"
|
||||
self.c = config
|
||||
self.sitename = ""
|
||||
self.obs = "" # One big string
|
||||
self.filetype = "text"
|
||||
self.doc = None # For XML based HH files
|
||||
self.file = file
|
||||
self.hhbase = self.c.get_import_parameters().get("hhArchiveBase")
|
||||
|
||||
def __str__(self):
|
||||
tmp = "HandHistoryConverter: '%s'\n" % (self.sitename)
|
||||
tmp = tmp + "\thhbase: %s\n" % (self.hhbase)
|
||||
tmp = tmp + "\tfiletype: %s\n" % (self.filetype)
|
||||
return tmp
|
||||
|
||||
# Functions to be implemented in the inheriting class
|
||||
def readSupportedGames(self): abstract
|
||||
def determineGameType(self): abstract
|
||||
|
@ -25,11 +39,47 @@ class HandHistoryConverter:
|
|||
def readBlinds(self): abstract
|
||||
def readAction(self): abstract
|
||||
|
||||
|
||||
# Functions not necessary to implement in sub class
|
||||
def setFileType(self, filetype = "text"):
|
||||
self.filetype = filetype
|
||||
|
||||
def processFile(self):
|
||||
self.readFile()
|
||||
|
||||
def readFile(self, filename):
|
||||
"""Read file"""
|
||||
if(self.filetype == "text"):
|
||||
infile=open(filename, "rU")
|
||||
self.obs = readfile(inputFile)
|
||||
inputFile.close()
|
||||
elif(self.filetype == "xml"):
|
||||
try:
|
||||
doc = xml.dom.minidom.parse(filename)
|
||||
self.doc = doc
|
||||
except:
|
||||
traceback.print_exc(file=sys.stderr)
|
||||
|
||||
def writeStars(self):
|
||||
"""Write out parsed data"""
|
||||
|
||||
# print sitename + " Game #" + handid + ": " + gametype + " (" + sb + "/" + bb + " - " + starttime
|
||||
# print "Table '" + tablename + "' " + maxseats + "-max Seat #" + buttonpos + " is the button"
|
||||
#
|
||||
# counter = 1
|
||||
# for player in seating:
|
||||
# print "Seat " + counter + ": " + playername + "($" + playermoney + " in chips"
|
||||
#
|
||||
# print playername + ": posts small blind " + sb
|
||||
# print playername + ": posts big blind " + bb
|
||||
#
|
||||
# print "*** HOLE CARDS ***"
|
||||
# print "Dealt to " + hero + " [" + holecards + "]"
|
||||
#
|
||||
## ACTION STUFF
|
||||
#
|
||||
# print "*** SUMMARY ***"
|
||||
# print "Total pot $" + totalpot + " | Rake $" + rake
|
||||
# print "Board [" + boardcards + "]"
|
||||
#
|
||||
## SUMMARY STUFF
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user