Merge branch 'master' of git://git.assembla.com/fpdb
This commit is contained in:
commit
da82c25b2f
112
packaging/announce-0.22.txt
Normal file
112
packaging/announce-0.22.txt
Normal file
|
@ -0,0 +1,112 @@
|
|||
Hello everyone,
|
||||
The new fpdb release 0.22 is now available for download as source or as packages/installers for Debian, Gentoo, Ubuntu and Windows.
|
||||
This version brings many improvements and bugfixes. A quick word on our version naming: We have decided to stop using the usual alpha/beta/rc release system as it doesn't suit fpdb's development style and resources. From now on all releases are created equal (ie. considered "testing"). If they proof themselves we declare them "stable" and make them the default download on sourceforge. If you wish to be notified of new releases or stabilisation please subscribe to the fpdb-announe mailing list (see Links further down). Since this version has been available for some time we consider it stable and recommend all users to update.
|
||||
|
||||
So... what is FPDB?
|
||||
===================
|
||||
FPDB (Free Poker Database) is a free/open source suite of steadily growing tools to track and analyse your online poker game. FPDB is able to import the hand histories that poker sites write to your computer and to store additional data from each hand in a database for use in later analysis.
|
||||
|
||||
FPDB is ambitious, intending to support all games. Currently we support flop based games (Hold’em, Omaha, Omaha Hi/Lo), stud games (7 Card Stud, 7 Card Stud Hi/Lo, and Razz) and draw games (Triple Draw Lowball, 5 Card Draw) on most major poker sites.
|
||||
|
||||
FPDB provides a Heads Up Display (HUD), Profit Grapher and Stats viewers with a list of features that is growing.
|
||||
|
||||
What's changed
|
||||
==============
|
||||
417 changesets (incl. merges) have gone in since 0.21-rc2. Some of the improvements are:
|
||||
|
||||
New stats:
|
||||
Three bet: name="three_B" (note this stat was previously "three_B_0")
|
||||
Four bet: name="four_B"
|
||||
Cold four bet: name="cfour_B"
|
||||
Squeeze bet preflop: name="squeeze"
|
||||
Fold to three bet preflop: name="f_3bet"
|
||||
Fold to four bet preflop: name="f_4bet"
|
||||
Steal Success : name="s_steal"
|
||||
|
||||
Pokerstars Home Games now supported
|
||||
Everest now supported
|
||||
Winamax now supported
|
||||
|
||||
Translation progress:
|
||||
Complete: English, Hungarian. If you notice an untranslated string in any output please let us know.
|
||||
Partial: French (85%), German (32%), Polish (27%), Spanish (17%), Russian (6%).
|
||||
|
||||
|
||||
Significant work on the underlying HUD code, including hud dragging and table closing
|
||||
Problems where some stats became > 100% are now fixed
|
||||
sqlite database performance improvements (sqlite is the default database for fpdb)
|
||||
pokerstars.it tournament HUD now working
|
||||
Cap games added to filter options
|
||||
Initial work to support Rush poker - this will need further testing and improvement before we can release it. One or two testers would be welcome, please PM gimick if you want to help.
|
||||
|
||||
Various updates and fixes when importing Hand histories.
|
||||
Party freeroll tournaments now recognised.
|
||||
Stars 20/40 limit and FTP 1k/2k limit now recognised.
|
||||
Initial work on a Stove function for holdem (see the viewers menu)
|
||||
The windows exe has been upgraded from python 2.6 to python 2.7.
|
||||
|
||||
|
||||
Where to get it
|
||||
===============
|
||||
Please note that you will have to either recreate your database or use a new one if you're updating from 0.21-rc2 or older. Fpdb will warn you if your database is incompatible and will not work unless you recreate or use a different one.
|
||||
Config files from 0.20 and later should work. Please report if you have problems with config files from that version or later.
|
||||
You can find checksums (MD5 and SHA512) in the download folder.
|
||||
To download: http://sourceforge.net/projects/fpdb/files/fpdb/0.22/
|
||||
|
||||
Links
|
||||
=====
|
||||
To be notified by email of new versions you can subscribe to our announce mailing list here: https://lists.sourceforge.net/lists/listinfo/fpdb-announce
|
||||
Link to fpdb website (wiki) http://fpdb.wiki.sourceforge.net/
|
||||
Features page: http://sourceforge.net/apps/mediawiki/fpdb/index.php?title=Features
|
||||
How to install&setup fpdb in 5 Minutes with the Windows installer: http://sf.net/projects/fpdb/files/fpdb/help/ Choose exe021install.avi (18mb, no sound)
|
||||
Installation instructions are available from: http://sourceforge.net/apps/mediawiki/fpdb/index.php?title=Installation
|
||||
Getting Started Instructions: http://sourceforge.net/apps/mediawiki/fpdb/index.php?title=Getting_Started
|
||||
FAQ: http://sourceforge.net/apps/mediawiki/fpdb/index.php?title=FAQ
|
||||
Screenshots: http://sourceforge.net/apps/mediawiki/fpdb/index.php?title=Screenshots
|
||||
|
||||
How to help
|
||||
===========
|
||||
Join us in IRC (see below) and say you want to do something :)
|
||||
|
||||
How to get help
|
||||
===============
|
||||
Please also see the "Bug reports" section below to enable us to help you.
|
||||
These are listed in order of usefulness - the 2+2 thread in particular is rather chaotic so if we miss your post feel free to bring it up again
|
||||
1) Chat/IRC
|
||||
One of the developers is usually around, but it is IRC. Dont get discouraged because we didn't answer within 10 minutes, once we do you've probably got our full attention.
|
||||
This link takes you to a website where you can talk to us directly: http://webchat.freenode.net/?channels=fpdb
|
||||
Alternatively use can use any IRC client to connect to #fpdb on freenode.net
|
||||
2) Mailing List
|
||||
Visit http://lists.sourceforge.net/lists/listinfo/fpdb-main to subscribe to the development&support mailing list and send us an email
|
||||
3) The monster 2+2 forum thread (registration required).
|
||||
http://forumserver.twoplustwo.com/16...2009-a-273001/ Please dont let the size of the thread phase you. It is monitored and sends email notifications to some of the developers. (Note: If you play poker and don't frequent the 2+2 forums, you may want to become better acquainted. Its a bit daunting at first, but well worth the effort)
|
||||
|
||||
Bug reports
|
||||
===========
|
||||
When you do report issues, try to make it easier for us help you. We usually need at least the following information:
|
||||
- Operating system and version (e.g. Ubuntu 10.10 or Windows XP)
|
||||
- Database type (MySQL, SQLite, PostgreSQL)
|
||||
- Install method (exe, tarball, deb, git, ebuild)
|
||||
- Fpdb version
|
||||
- Site name and gametype (e.g. $10 Pokerstars Razz SnG)
|
||||
You can find most of these details for easy copy&paste in the Help menu under About.
|
||||
|
||||
Important known problems
|
||||
========================
|
||||
Hud will not work if using postgres database - fixed in 0.23
|
||||
PKR is not working correctly
|
||||
|
||||
Special information for Windows installations
|
||||
=============================================
|
||||
First-time installs will need to download and install the C++ runtime executable from Microsoft.
|
||||
Windows 7 and windows Vista users will need to set fpdb.exe and hud_main.exe to run as administrator (see http://sourceforge.net/apps/mediawiki/fpdb/index.php?title=Install_in_Windows)
|
||||
|
||||
Contributors
|
||||
============
|
||||
Code/translations: Worros, Donoban, Nutomatic, Steffen, Chaz Littlejohn, Scott Wolchok, tribumarchal, Erki Ferenc, Eric Blade, atinm, Mika Bostrom, Robert Wielinga, Chris Moore, Gerko de Roo, Gimick
|
||||
Special shoutout to Eleatic Stranger who has written an initial converter for Carbon poker, without ever having played on the site!
|
||||
Documentation: RSOAndrew, Buggernaut, ChazDazzle
|
||||
Testers and everyone answering forum questions - xaviax, Dog, uncooper etc. You know who you are.
|
||||
Hand History donations: Quite a few people on this list now. Every donation for alternate sites and various corner cases is appreciated.
|
||||
|
||||
And a particular thanks to all the libraries, interpreters etc. that we use to create fpdb!
|
78
packaging/announce-template.txt
Normal file
78
packaging/announce-template.txt
Normal file
|
@ -0,0 +1,78 @@
|
|||
Replace all occurrences of XXX with the real values.
|
||||
Remove or leave YYY(foobar)YYY sections as appropriate.
|
||||
|
||||
Hello everyone,
|
||||
The new fpdb release XXX is now available for download as source or as packages/installers for Debian, Gentoo, Ubuntu and Windows.
|
||||
This version brings many improvements and bugfixes. A quick word on our version naming: We have decided to stop using the usual alpha/beta/rc release system as it doesn't suit fpdb's development style and resources. From now on all releases are created equal (ie. considered "testing"). If they proof themselves we declare them "stable" and make them the default download on sourceforge. If you wish to be notified of new releases or stabilisation please subscribe to the fpdb-announe mailing list (see Links further down).
|
||||
|
||||
So... what is FPDB?
|
||||
===================
|
||||
FPDB (Free Poker Database) is a free/open source suite of steadily growing tools to track and analyse your online poker game. FPDB is able to import the hand histories that poker sites write to your computer and to store additional data from each hand in a database for use in later analysis.
|
||||
|
||||
FPDB is ambitious, intending to support all games. Currently we support flop based games (Hold’em, Omaha, Omaha Hi/Lo), stud games (7 Card Stud, 7 Card Stud Hi/Lo, and Razz) and draw games (Triple Draw Lowball, 5 Card Draw) on most major poker sites.
|
||||
|
||||
FPDB provides a Heads Up Display (HUD), Profit Grapher and Stats viewers with a list of features that is growing.
|
||||
|
||||
What's changed
|
||||
==============
|
||||
XXX changesets (incl. merges) have gone in since XXX. Some of the improvements are:
|
||||
|
||||
XXX
|
||||
|
||||
Where to get it
|
||||
===============
|
||||
Please note that you will have to either recreate your database or use a new one if you're updating from XXX or older. Fpdb will warn you if your database is incompatible and will not work unless you recreate or use a different one.
|
||||
Config files from 0.20 and later should work. Please report if you have problems with config files from that version or later.
|
||||
You can find checksums (MD5 and SHA512) in the download folder.
|
||||
To download: http://sourceforge.net/projects/fpdb/files/fpdb/XXX/
|
||||
|
||||
Links
|
||||
=====
|
||||
To be notified by email of new versions you can subscribe to our announce mailing list here: https://lists.sourceforge.net/lists/listinfo/fpdb-announce
|
||||
Link to fpdb website (wiki) http://fpdb.wiki.sourceforge.net/
|
||||
Features page: http://sourceforge.net/apps/mediawiki/fpdb/index.php?title=Features
|
||||
How to install&setup fpdb in 5 Minutes with the Windows installer: http://sf.net/projects/fpdb/files/fpdb/help/ Choose exe021install.avi (18mb, no sound)
|
||||
Installation instructions are available from: http://sourceforge.net/apps/mediawiki/fpdb/index.php?title=Installation
|
||||
Getting Started Instructions: http://sourceforge.net/apps/mediawiki/fpdb/index.php?title=Getting_Started
|
||||
FAQ: http://sourceforge.net/apps/mediawiki/fpdb/index.php?title=FAQ
|
||||
Screenshots: http://sourceforge.net/apps/mediawiki/fpdb/index.php?title=Screenshots
|
||||
|
||||
How to help
|
||||
===========
|
||||
Join us in IRC (see below) and say you want to do something :)
|
||||
|
||||
How to get help
|
||||
===============
|
||||
Please also see the "Bug reports" section below to enable us to help you.
|
||||
These are listed in order of usefulness - the 2+2 thread in particular is rather chaotic so if we miss your post feel free to bring it up again
|
||||
1) Chat/IRC
|
||||
One of the developers is usually around, but it is IRC. Dont get discouraged because we didn't answer within 10 minutes, once we do you've probably got our full attention.
|
||||
This link takes you to a website where you can talk to us directly: http://webchat.freenode.net/?channels=fpdb
|
||||
Alternatively use can use any IRC client to connect to #fpdb on freenode.net
|
||||
2) Mailing List
|
||||
Visit http://lists.sourceforge.net/lists/listinfo/fpdb-main to subscribe to the development&support mailing list and send us an email
|
||||
3) The monster 2+2 forum thread (registration required).
|
||||
http://forumserver.twoplustwo.com/16...2009-a-273001/ Please dont let the size of the thread phase you. It is monitored and sends email notifications to some of the developers. (Note: If you play poker and don't frequent the 2+2 forums, you may want to become better acquainted. Its a bit daunting at first, but well worth the effort)
|
||||
|
||||
Bug reports
|
||||
===========
|
||||
When you do report issues, try to make it easier for us help you. We usually need at least the following information:
|
||||
- Operating system and version (e.g. Ubuntu 10.10 or Windows XP)
|
||||
- Database type (MySQL, SQLite, PostgreSQL)
|
||||
- Install method (exe, tarball, deb, git, ebuild)
|
||||
- Fpdb version
|
||||
- Site name and gametype (e.g. $10 Pokerstars Razz SnG)
|
||||
You can find most of these details for easy copy&paste in the Help menu under About.
|
||||
|
||||
Important known problems
|
||||
========================
|
||||
YYY(PKR is not working correctly)YYY
|
||||
|
||||
Special information for Windows installations
|
||||
=============================================
|
||||
YYY(First-time installs may need to download and install the C++ runtime executable from Microsoft.)YYY
|
||||
YYY(Windows 7 and windows Vista users will need to set fpdb.exe and hud_main.exe to run as administrator (see http://sourceforge.net/apps/mediawiki/fpdb/index.php?title=Install_in_Windows))YYY
|
||||
|
||||
Contributors
|
||||
============
|
||||
For the latest list of contributors please see YYY(replace with link to git-web of contributors.txt)YYY
|
|
@ -1,3 +1,15 @@
|
|||
free-poker-tools (0.22-1) unstable; urgency=low
|
||||
|
||||
* New release: 0.22
|
||||
|
||||
-- Mika Bostrom <bostik@iki.fi> Sun, 13 Mar 2011 05:15:24 +0200
|
||||
|
||||
free-poker-tools (0.21-1) unstable; urgency=low
|
||||
|
||||
* New release: 0.21
|
||||
|
||||
-- Mika Bostrom <bostik@iki.fi> Mon, 28 Feb 2011 04:09:57 +0200
|
||||
|
||||
free-poker-tools (0.21~rc2) unstable; urgency=low
|
||||
|
||||
* Second 0.21 release-candidate
|
||||
|
|
|
@ -10,14 +10,14 @@ inherit eutils games
|
|||
|
||||
DESCRIPTION="A free/open source tracker/HUD for use with online poker"
|
||||
HOMEPAGE="http://fpdb.wiki.sourceforge.net/"
|
||||
SRC_URI="mirror://sourceforge/${PN}/Snapshots/${P}.tar.bz2"
|
||||
SRC_URI="mirror://sourceforge/${PN}/${PV}/${P}.tar.bz2"
|
||||
|
||||
LICENSE="AGPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
#note: this should work on other architectures too, please send me your experiences
|
||||
#note: fpdb has only been tested on x86 and amd64, but should work on other arches, too
|
||||
|
||||
IUSE="graph mysql postgres sqlite linguas_de linguas_hu linguas_fr"
|
||||
IUSE="graph mysql postgres sqlite linguas_de linguas_es linguas_fr linguas_hu linguas_it linguas_pl linguas_pt linguas_ru linguas_zh"
|
||||
RDEPEND="
|
||||
mysql? ( virtual/mysql
|
||||
dev-python/mysql-python )
|
||||
|
@ -39,8 +39,40 @@ src_install() {
|
|||
doins -r gfx || die "failed to install gfx directory"
|
||||
doins -r pyfpdb || die "failed to install pyfpdb directory"
|
||||
|
||||
if use linguas_de; then
|
||||
msgfmt pyfpdb/locale/fpdb-de_DE.po -o pyfpdb/locale/de.mo || die "failed to create German mo file"
|
||||
fi
|
||||
|
||||
if use linguas_es; then
|
||||
msgfmt pyfpdb/locale/fpdb-es_ES.po -o pyfpdb/locale/es.mo || die "failed to create Spanish mo file"
|
||||
fi
|
||||
|
||||
if use linguas_fr; then
|
||||
msgfmt pyfpdb/locale/fpdb-fr_FR.po -o pyfpdb/locale/fr.mo || die "failed to create French mo file"
|
||||
fi
|
||||
|
||||
if use linguas_hu; then
|
||||
msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo || die "failed to create hungarian mo file"
|
||||
msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo || die "failed to create Hungarian mo file"
|
||||
fi
|
||||
|
||||
if use linguas_it; then
|
||||
msgfmt pyfpdb/locale/fpdb-it_IT.po -o pyfpdb/locale/it.mo || die "failed to create Italian mo file"
|
||||
fi
|
||||
|
||||
if use linguas_pl; then
|
||||
msgfmt pyfpdb/locale/fpdb-pl_PL.po -o pyfpdb/locale/pl.mo || die "failed to create Polish mo file"
|
||||
fi
|
||||
|
||||
if use linguas_pt; then
|
||||
msgfmt pyfpdb/locale/fpdb-pt_BR.po -o pyfpdb/locale/pt.mo || die "failed to create Portuguese mo file"
|
||||
fi
|
||||
|
||||
if use linguas_ru; then
|
||||
msgfmt pyfpdb/locale/fpdb-ru_RU.po -o pyfpdb/locale/ru.mo || die "failed to create Russian mo file"
|
||||
fi
|
||||
|
||||
if use linguas_zh; then
|
||||
msgfmt pyfpdb/locale/fpdb-zh_CN.po -o pyfpdb/locale/zh.mo || die "failed to create Chinese mo file"
|
||||
fi
|
||||
|
||||
domo pyfpdb/locale/*.mo || die "failed to install mo files"
|
|
@ -1,60 +0,0 @@
|
|||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: $
|
||||
|
||||
#TODO: Header, add cdecimal
|
||||
|
||||
EAPI="2"
|
||||
|
||||
inherit eutils games
|
||||
|
||||
DESCRIPTION="A free/open source tracker/HUD for use with online poker"
|
||||
HOMEPAGE="http://fpdb.wiki.sourceforge.net/"
|
||||
SRC_URI="mirror://sourceforge/${PN}/${PV}/${P}.tar.bz2"
|
||||
|
||||
LICENSE="AGPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
#note: this should work on other architectures too, please send me your experiences
|
||||
|
||||
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"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
src_install() {
|
||||
insinto "${GAMES_DATADIR}"/${PN}
|
||||
doins -r gfx
|
||||
doins -r pyfpdb
|
||||
doins readme.txt
|
||||
|
||||
exeinto "${GAMES_DATADIR}"/${PN}
|
||||
doexe run_fpdb.py
|
||||
|
||||
dodir "${GAMES_BINDIR}"
|
||||
dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN}
|
||||
|
||||
newicon gfx/fpdb-icon.png ${PN}.png
|
||||
make_desktop_entry ${PN}
|
||||
|
||||
fperms +x "${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."
|
||||
}
|
|
@ -15,8 +15,9 @@ EGIT_REPO_URI="git://git.assembla.com/fpdb.git"
|
|||
LICENSE="AGPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS=""
|
||||
#note: fpdb has only been tested on x86 and amd64, but should work on other arches, too
|
||||
|
||||
IUSE="graph mysql postgres sqlite linguas_de linguas_hu linguas_fr"
|
||||
IUSE="graph mysql postgres sqlite linguas_de linguas_es linguas_fr linguas_hu linguas_it linguas_pl linguas_pt linguas_ru linguas_zh"
|
||||
RDEPEND="
|
||||
mysql? ( virtual/mysql
|
||||
dev-python/mysql-python )
|
||||
|
@ -29,7 +30,7 @@ RDEPEND="
|
|||
graph? ( dev-python/numpy
|
||||
dev-python/matplotlib[gtk] )
|
||||
dev-python/python-xlib
|
||||
dev-python/pytz"
|
||||
x11-apps/xwininfo"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
src_unpack() {
|
||||
|
@ -38,29 +39,57 @@ src_unpack() {
|
|||
|
||||
src_install() {
|
||||
insinto "${GAMES_DATADIR}"/${PN}
|
||||
doins -r gfx
|
||||
doins -r pyfpdb
|
||||
doins -r gfx || die "failed to install gfx directory"
|
||||
doins -r pyfpdb || die "failed to install pyfpdb directory"
|
||||
|
||||
if use linguas_de; then
|
||||
msgfmt pyfpdb/locale/fpdb-de_DE.po -o pyfpdb/locale/de.mo
|
||||
msgfmt pyfpdb/locale/fpdb-de_DE.po -o pyfpdb/locale/de.mo || die "failed to create German mo file"
|
||||
fi
|
||||
|
||||
if use linguas_es; then
|
||||
msgfmt pyfpdb/locale/fpdb-es_ES.po -o pyfpdb/locale/es.mo || die "failed to create Spanish mo file"
|
||||
fi
|
||||
|
||||
if use linguas_fr; then
|
||||
msgfmt pyfpdb/locale/fpdb-fr_FR.po -o pyfpdb/locale/fr.mo || die "failed to create French mo file"
|
||||
fi
|
||||
|
||||
if use linguas_hu; then
|
||||
msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo
|
||||
msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo || die "failed to create Hungarian mo file"
|
||||
fi
|
||||
|
||||
domo pyfpdb/locale/*.mo
|
||||
if use linguas_it; then
|
||||
msgfmt pyfpdb/locale/fpdb-it_IT.po -o pyfpdb/locale/it.mo || die "failed to create Italian mo file"
|
||||
fi
|
||||
|
||||
doins readme.txt
|
||||
if use linguas_pl; then
|
||||
msgfmt pyfpdb/locale/fpdb-pl_PL.po -o pyfpdb/locale/pl.mo || die "failed to create Polish mo file"
|
||||
fi
|
||||
|
||||
if use linguas_pt; then
|
||||
msgfmt pyfpdb/locale/fpdb-pt_BR.po -o pyfpdb/locale/pt.mo || die "failed to create Portuguese mo file"
|
||||
fi
|
||||
|
||||
if use linguas_ru; then
|
||||
msgfmt pyfpdb/locale/fpdb-ru_RU.po -o pyfpdb/locale/ru.mo || die "failed to create Russian mo file"
|
||||
fi
|
||||
|
||||
if use linguas_zh; then
|
||||
msgfmt pyfpdb/locale/fpdb-zh_CN.po -o pyfpdb/locale/zh.mo || die "failed to create Chinese mo file"
|
||||
fi
|
||||
|
||||
domo pyfpdb/locale/*.mo || die "failed to install mo files"
|
||||
|
||||
doins readme.txt || die "failed to install readme.txt file"
|
||||
|
||||
exeinto "${GAMES_DATADIR}"/${PN}
|
||||
doexe run_fpdb.py
|
||||
doexe run_fpdb.py || die "failed to install executable run_fpdb.py"
|
||||
|
||||
dodir "${GAMES_BINDIR}"
|
||||
dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN}
|
||||
dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} || die "failed to create symlink for starting fpdb"
|
||||
|
||||
newicon gfx/fpdb-icon.png ${PN}.png
|
||||
make_desktop_entry ${PN}
|
||||
newicon gfx/fpdb-icon.png ${PN}.png || die "failed to install fpdb icon"
|
||||
make_desktop_entry ${PN} || die "failed to create desktop entry"
|
||||
|
||||
fperms +x "${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw
|
||||
prepgamesdirs
|
||||
|
|
|
@ -138,7 +138,7 @@ class Absolute(HandHistoryConverter):
|
|||
if not m:
|
||||
tmp = handText[0:100]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
|
||||
|
||||
|
|
|
@ -1,134 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
#Copyright 2009-2011 Grigorij Indigirkin
|
||||
#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.
|
||||
|
||||
#TODO: gettextify if file is used again
|
||||
|
||||
from decimal_wrapper 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
|
||||
|
|
@ -1,485 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
#Copyright 2009-2011 Grigorij Indigirkin
|
||||
#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.
|
||||
|
||||
"""@package AlchemyMappings
|
||||
This package contains all classes to be mapped and mappers themselves
|
||||
"""
|
||||
|
||||
#TODO: gettextify if file is used again
|
||||
|
||||
import logging
|
||||
import re
|
||||
from decimal_wrapper 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 '<Player "%s" on %s>' % (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', 'currency'],
|
||||
['type', 'base', 'category', 'limitType', 'sb', 'bb', 'dummy', 'dummy', 'currency'])
|
||||
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',
|
||||
'rebuy': 'isRebuy',
|
||||
'addOn': 'isAddOn',
|
||||
'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.startTime:
|
||||
setattr(tour, col, min(db_val, hand.startTime))
|
||||
|
||||
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 = TourneysPlayer.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','FT'),
|
||||
(2 , 'PokerStars', 'PS'),
|
||||
(3 , 'Everleaf', 'EV'),
|
||||
(4 , 'Win2day', 'W2'),
|
||||
(5 , 'OnGame', 'OG'),
|
||||
(6 , 'UltimateBet', 'UB'),
|
||||
(7 , 'Betfair', 'BF'),
|
||||
(8 , 'Absolute', 'AB'),
|
||||
(9 , 'PartyPoker', 'PP'),
|
||||
(10, 'Partouche', 'PA'),
|
||||
(11, 'Carbon', 'CA'),
|
||||
(12, 'PKR', 'PK'),
|
||||
(13, 'PacificPoker', 'P8'),
|
||||
]
|
||||
INITIAL_DATA_KEYS = ('id', 'name', 'code')
|
||||
|
||||
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 TourneyType 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
|
||||
rebuy addOn shootout matrix sng currency
|
||||
"""
|
||||
return get_or_create(cls, session, **kwargs)[0]
|
||||
|
||||
|
||||
class TourneysPlayer(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(TourneysPlayer, 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 (TourneysPlayer, 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)
|
||||
|
|
@ -1,460 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
#Copyright 2009-2011 Grigorij Indigirkin
|
||||
#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.
|
||||
|
||||
"""@package AlchemyTables
|
||||
Contains all sqlalchemy tables
|
||||
"""
|
||||
|
||||
#TODO: gettextify if file is used again
|
||||
|
||||
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('currency', String(4), nullable=False), # varchar(4) NOT NULL
|
||||
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('startTime', 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('code', String(2), nullable=False), # char(2) 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('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('totalRebuyCount', Integer, default=0), # INT DEFAULT 0
|
||||
Column('totalAddOnCount', 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('currency', String(4), nullable=False), # varchar(4) NOT NULL
|
||||
Column('buyin', Integer, nullable=False), # INT NOT NULL
|
||||
Column('fee', Integer, nullable=False), # INT NOT NULL
|
||||
Column('buyInChips', Integer, nullable=False), # INT NOT NULL
|
||||
Column('maxSeats', Boolean, nullable=False, default=-1), # INT NOT NULL DEFAULT -1
|
||||
Column('rebuy', Boolean, nullable=False, default=False), # BOOLEAN NOT NULL DEFAULT False
|
||||
Column('rebuyCost', Integer), # INT
|
||||
Column('rebuyChips', Integer), # INT
|
||||
Column('addOn', Boolean, nullable=False, default=False), # BOOLEAN NOT NULL DEFAULT False
|
||||
Column('addOnCost', Integer), # INT
|
||||
Column('addOnChips', Integer), # INT
|
||||
Column('knockout', Boolean, nullable=False, default=False), # BOOLEAN NOT NULL DEFAULT False
|
||||
Column('koBounty', Integer), # INT
|
||||
Column('speed', String(10)), # varchar(10)
|
||||
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
|
||||
Column('satellite', Boolean, nullable=False, default=False), # BOOLEAN NOT NULL DEFAULT False
|
||||
Column('doubleOrNothing', Boolean, nullable=False, default=False), # BOOLEAN NOT NULL DEFAULT False
|
||||
Column('guarantee', Integer, nullable=False, default=0), # INT NOT NULL DEFAULT 0
|
||||
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.rebuy,
|
||||
tourney_types_table.c.addOn, tourney_types_table.c.speed,
|
||||
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('rank', Integer), # INT NOT NULL
|
||||
Column('winnings', Integer), # INT NOT NULL
|
||||
Column('winningsCurrency', Text), # TEXT
|
||||
Column('rebuyCount', Integer, default=0), # INT DEFAULT 0
|
||||
Column('addOnCount', Integer, default=0), # INT DEFAULT 0
|
||||
Column('koCount', 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_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
|
||||
|
|
@ -74,7 +74,7 @@ class Betfair(HandHistoryConverter):
|
|||
if not m:
|
||||
tmp = handText[0:100]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
|
||||
mg = m.groupdict()
|
||||
|
|
|
@ -128,7 +128,7 @@ or None if we fail to get the info """
|
|||
except AttributeError:
|
||||
tmp = handText[0:100]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
|
||||
self.info = {}
|
||||
|
|
|
@ -26,9 +26,7 @@ import Configuration
|
|||
|
||||
encoder_to_utf = codecs.lookup('utf-8')
|
||||
encoder_to_sys = codecs.lookup(Configuration.LOCALE_ENCODING)
|
||||
coder_hex = codecs.lookup('hex_codec')
|
||||
|
||||
hex_coding = False #FIXME: Should only be on if db is not UTF8 - test in Database.py?
|
||||
# I'm saving a few cycles with this one
|
||||
not_needed1, not_needed2, not_needed3 = False, False, False
|
||||
if Configuration.LOCALE_ENCODING == 'UTF8':
|
||||
|
@ -77,19 +75,3 @@ def to_gui(s):
|
|||
except UnicodeEncodeError:
|
||||
sys.stderr.write(_('Could not encode: "%s"\n') % s)
|
||||
raise
|
||||
|
||||
def to_hex(s):
|
||||
try:
|
||||
out = coder_hex.encode(s)[0]
|
||||
return out
|
||||
except UnicodeDecodeError:
|
||||
sys.stderr.write(_('Could not convert: "%s"\n') % s)
|
||||
return s
|
||||
|
||||
def from_hex(s):
|
||||
try:
|
||||
out = coder_hex.decode(s)[0]
|
||||
return out
|
||||
except UnicodeDecodeError:
|
||||
sys.stderr.write(_('Could not convert: "%s"\n') % s)
|
||||
return s
|
||||
|
|
|
@ -207,8 +207,8 @@ DATABASE_TYPES = (
|
|||
DATABASE_TYPE_MYSQL,
|
||||
)
|
||||
|
||||
#LOCALE_ENCODING = locale.getdefaultlocale()[1]
|
||||
LOCALE_ENCODING = locale.getpreferredencoding()
|
||||
LOCALE_ENCODING = locale.getdefaultlocale()[1]
|
||||
#LOCALE_ENCODING = locale.getpreferredencoding() #this breaks on Mac OSX - please leave this comment
|
||||
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"
|
||||
|
@ -314,8 +314,6 @@ class Site:
|
|||
self.layout = {}
|
||||
self.emails = {}
|
||||
|
||||
#print _("Loading site"), self.site_name
|
||||
|
||||
for layout_node in node.getElementsByTagName('layout'):
|
||||
lo = Layout(layout_node)
|
||||
self.layout[lo.max] = lo
|
||||
|
@ -637,14 +635,14 @@ class RawHands:
|
|||
if save in ("none", "error", "all"):
|
||||
self.save=save
|
||||
else:
|
||||
print _("Invalid config value for raw_hands.save, defaulting to \"error\"")
|
||||
print (_("Invalid config value for %s, defaulting to %s") % (raw_hands.save, "\"error\""))
|
||||
self.save="error"
|
||||
|
||||
compression=node.getAttribute("compression")
|
||||
if save in ("none", "gzip", "bzip2"):
|
||||
self.compression=compression
|
||||
else:
|
||||
print _("Invalid config value for raw_hands.compression, defaulting to \"none\"")
|
||||
print (_("Invalid config value for %s, defaulting to %s") % (raw_hands.compression, "\"none\""))
|
||||
self.compression="none"
|
||||
#end def __init__
|
||||
|
||||
|
@ -663,14 +661,14 @@ class RawTourneys:
|
|||
if save in ("none", "error", "all"):
|
||||
self.save=save
|
||||
else:
|
||||
print _("Invalid config value for raw_tourneys.save, defaulting to \"error\"")
|
||||
print (_("Invalid config value for %s, defaulting to %s") % (raw_tourneys.save, "\"error\""))
|
||||
self.save="error"
|
||||
|
||||
compression=node.getAttribute("compression")
|
||||
if save in ("none", "gzip", "bzip2"):
|
||||
self.compression=compression
|
||||
else:
|
||||
print _("Invalid config value for raw_tourneys.compression, defaulting to \"none\"")
|
||||
print (_("Invalid config value for %s, defaulting to %s") % (raw_tourneys.compression, "\"none\""))
|
||||
self.compression="none"
|
||||
#end def __init__
|
||||
|
||||
|
@ -726,7 +724,7 @@ class Config:
|
|||
self.doc = doc
|
||||
self.file_error = None
|
||||
except:
|
||||
log.error(_("Error parsing %s. See error log file.") % (file))
|
||||
log.error((_("Error parsing %s.") % (file)) + _("See error log file."))
|
||||
traceback.print_exc(file=sys.stderr)
|
||||
self.file_error = sys.exc_info()[1]
|
||||
# we could add a parameter to decide whether to return or read a line and exit?
|
||||
|
@ -842,7 +840,7 @@ class Config:
|
|||
try:
|
||||
example_doc = xml.dom.minidom.parse(example_file)
|
||||
except:
|
||||
log.error(_("Error parsing example configuration file %s. See error log file.") % (example_file))
|
||||
log.error((_("Error parsing example configuration file %s.") % (example_file)) + _("See error log file."))
|
||||
return nodes_added
|
||||
|
||||
for cnode in doc.getElementsByTagName("FreePokerToolsConfig"):
|
||||
|
|
|
@ -467,7 +467,7 @@ class 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: %s") % 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
|
||||
|
@ -510,19 +510,18 @@ 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")
|
||||
% (settings[0]))
|
||||
log.error((_("Outdated or too new database version (%s).") % (settings[0])) + " " + _("Please recreate tables."))
|
||||
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
|
||||
|
@ -1534,37 +1533,37 @@ class Database:
|
|||
c = self.get_cursor()
|
||||
c.execute("INSERT INTO Settings (version) VALUES (%s);" % (DB_VERSION))
|
||||
#Fill Sites
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('Full Tilt Poker', 'FT')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('PokerStars', 'PS')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('Everleaf', 'EV')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('Win2day', 'W2')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('OnGame', 'OG')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('UltimateBet', 'UB')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('Betfair', 'BF')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('Absolute', 'AB')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('PartyPoker', 'PP')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('PacificPoker', 'P8')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('Partouche', 'PA')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('Carbon', 'CA')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('PKR', 'PK')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('iPoker', 'IP')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('Winamax', 'WM')")
|
||||
c.execute("INSERT INTO Sites (name,code) VALUES ('Everest', 'EP')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('1', 'Full Tilt Poker', 'FT')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('2', 'PokerStars', 'PS')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('3', 'Everleaf', 'EV')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('4', 'Win2day', 'W2')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('5', 'OnGame', 'OG')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('6', 'UltimateBet', 'UB')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('7', 'Betfair', 'BF')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('8', 'Absolute', 'AB')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('9', 'PartyPoker', 'PP')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('10', 'PacificPoker', 'P8')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('11', 'Partouche', 'PA')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('12', 'Carbon', 'CA')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('13', 'PKR', 'PK')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('14', 'iPoker', 'IP')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('15', 'Winamax', 'WM')")
|
||||
c.execute("INSERT INTO Sites (id,name,code) VALUES ('16', 'Everest', 'EP')")
|
||||
#Fill Actions
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('ante', 'A')")
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('small blind', 'SB')")
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('secondsb', 'SSB')")
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('big blind', 'BB')")
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('both', 'SBBB')")
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('calls', 'C')")
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('raises', 'R')")
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('bets', 'B')")
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('stands pat', 'S')")
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('folds', 'F')")
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('checks', 'K')")
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('discards', 'D')")
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('bringin', 'I')")
|
||||
c.execute("INSERT INTO Actions (name,code) VALUES ('completes', 'P')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('1', 'ante', 'A')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('2', 'small blind', 'SB')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('3', 'secondsb', 'SSB')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('4', 'big blind', 'BB')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('5', 'both', 'SBBB')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('6', 'calls', 'C')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('7', 'raises', 'R')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('8', 'bets', 'B')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('9', 'stands pat', 'S')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('10', 'folds', 'F')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('11', 'checks', 'K')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('12', 'discards', 'D')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('13', 'bringin', 'I')")
|
||||
c.execute("INSERT INTO Actions (id,name,code) VALUES ('14', 'completes', 'P')")
|
||||
|
||||
#end def fillDefaultData
|
||||
|
||||
|
|
|
@ -99,12 +99,12 @@ class Everest(HandHistoryConverter):
|
|||
except AttributeError:
|
||||
tmp = handText[0:100]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
|
||||
if not m2:
|
||||
tmp = handText[0:100]
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise handinfo from: '%s'") % tmp)
|
||||
|
||||
self.info = {}
|
||||
|
|
52
pyfpdb/EverleafToFpdb.py
Executable file → Normal file
52
pyfpdb/EverleafToFpdb.py
Executable file → Normal file
|
@ -34,19 +34,33 @@ class Everleaf(HandHistoryConverter):
|
|||
codepage = "cp1252"
|
||||
siteId = 3 # Needs to match id entry in Sites database
|
||||
|
||||
substitutions = {
|
||||
'LEGAL_ISO' : "USD|EUR|GBP|CAD|FPP", # legal ISO currency codes
|
||||
'LS' : u"\$|\u20AC|\xe2\x82\xac|\x80|", # legal currency symbols - Euro(cp1252, utf-8) #TODO change \x80 to \x20\x80, update all regexes accordingly
|
||||
'TAB' : u"-\u2013'\s\da-zA-Z#_", # legal characters for tablename
|
||||
'NUM' : u".,\d", # legal characters in number format
|
||||
}
|
||||
|
||||
# Static regexes
|
||||
re_SplitHands = re.compile(r"\n\n\n+")
|
||||
re_TailSplitHands = re.compile(r"(\n\n\n+)")
|
||||
re_GameInfo = re.compile(ur"^(Blinds )?(?P<CURRENCY>[$€]?)(?P<SB>[.0-9]+)/[$€]?(?P<BB>[.0-9]+) (?P<LIMIT>NL|PL|) ?(?P<GAME>(Hold\'em|Omaha|7 Card Stud))", re.MULTILINE)
|
||||
#re.compile(ur"^(Blinds )?(?P<CURRENCY>\$| €|)(?P<SB>[.0-9]+)/(?:\$| €)?(?P<BB>[.0-9]+) (?P<LIMIT>NL|PL|) ?(?P<GAME>(Hold\'em|Omaha|7 Card Stud))", re.MULTILINE)
|
||||
re_HandInfo = re.compile(ur".*#(?P<HID>[0-9]+)\n.*\n(Blinds )?(?P<CURRENCY>[$€])?(?P<SB>[.0-9]+)/(?:[$€])?(?P<BB>[.0-9]+) (?P<GAMETYPE>.*) - (?P<DATETIME>\d\d\d\d/\d\d/\d\d - \d\d:\d\d:\d\d)\nTable (?P<TABLE>.+$)", re.MULTILINE)
|
||||
re_GameInfo = re.compile(ur"^(Blinds )? ?(?P<CURRENCY>[%(LS)s]?)(?P<SB>[.0-9]+) ?/ ? ?[%(LS)s]?(?P<BB>[.0-9]+) (?P<LIMIT>NL|PL|) ?(?P<GAME>(Hold\'em|Omaha|7 Card Stud))" % substitutions, re.MULTILINE)
|
||||
|
||||
#re_HandInfo = re.compile(ur".*#(?P<HID>[0-9]+)\n.*\n(Blinds )?(?P<CURRENCY>[$€])?(?P<SB>[.0-9]+)/(?:[$€])?(?P<BB>[.0-9]+) (?P<GAMETYPE>.*) - (?P<DATETIME>\d\d\d\d/\d\d/\d\d - \d\d:\d\d:\d\d)\nTable (?P<TABLE>.+$)", re.MULTILINE)
|
||||
|
||||
re_HandInfo = re.compile(ur".*\n(.*#|.* partie )(?P<HID>[0-9]+).*(\n|\n\n)(Blinds )? ?(?P<CURRENCY>[%(LS)s])?(?P<SB>[.0-9]+) ?/ ?(?:[%(LS)s])?(?P<BB>[.0-9]+) (?P<GAMETYPE>.*) - (?P<DATETIME>\d\d\d\d/\d\d/\d\d - \d\d:\d\d:\d\d)\nTable (?P<TABLE>.+$)" % substitutions, re.MULTILINE)
|
||||
#
|
||||
|
||||
#re_HandInfo = re.compile(ur"(.*#|.*\n.* partie )(?P<HID>[0-9]+).*(\n|\n\n)(Blinds )?(?:\$| €|)(?P<SB>[.0-9]+)/(?:\$| €|)(?P<BB>[.0-9]+) (?P<GAMETYPE>.*) - (?P<DATETIME>\d\d\d\d/\d\d/\d\d - \d\d:\d\d:\d\d)\nTable (?P<TABLE>.+$)", re.MULTILINE)
|
||||
|
||||
|
||||
re_Button = re.compile(ur"^Seat (?P<BUTTON>\d+) is the button$", re.MULTILINE)
|
||||
re_PlayerInfo = re.compile(ur"""^Seat\s(?P<SEAT>[0-9]+):\s(?P<PNAME>.*)\s+
|
||||
\(
|
||||
\s+[$€]?\s?(?P<CASH>[.0-9]+)
|
||||
(\s(USD|EURO|Chips)?(new\splayer|All-in)?)?
|
||||
\s+[%(LS)s]?\s?(?P<CASH>[.0-9]+)
|
||||
(\s(USD|EURO|EUR|Chips)?(new\splayer|All-in)?)?
|
||||
\s?\)$
|
||||
""", re.MULTILINE|re.VERBOSE)
|
||||
""" % substitutions, re.MULTILINE|re.VERBOSE)
|
||||
re_Board = re.compile(ur"\[ (?P<CARDS>.+) \]")
|
||||
re_TourneyInfoFromFilename = re.compile(ur".*TID_(?P<TOURNO>[0-9]+)-(?P<TABLE>[0-9]+)\.txt")
|
||||
|
||||
|
@ -58,16 +72,16 @@ class Everleaf(HandHistoryConverter):
|
|||
self.compiledPlayers = players
|
||||
player_re = "(?P<PNAME>" + "|".join(map(re.escape, players)) + ")"
|
||||
logging.debug("player_re: "+ player_re)
|
||||
self.re_PostSB = re.compile(ur"^%s: posts small blind \[[$€]? (?P<SB>[.0-9]+)\s.*\]$" % player_re, re.MULTILINE)
|
||||
self.re_PostBB = re.compile(ur"^%s: posts big blind \[[$€]? (?P<BB>[.0-9]+)\s.*\]$" % player_re, re.MULTILINE)
|
||||
self.re_PostBoth = re.compile(ur"^%s: posts both blinds \[[$€]? (?P<SBBB>[.0-9]+)\s.*\]$" % player_re, re.MULTILINE)
|
||||
self.re_Antes = re.compile(ur"^%s: posts ante \[[$€]? (?P<ANTE>[.0-9]+)\s.*\]$" % player_re, re.MULTILINE)
|
||||
self.re_BringIn = re.compile(ur"^%s posts bring-in [$€]? (?P<BRINGIN>[.0-9]+)\." % player_re, re.MULTILINE)
|
||||
self.re_PostSB = re.compile(ur"^%s: posts small blind \[ ?[%s]? (?P<SB>[.0-9]+)\s.*\]$" % (player_re, self.substitutions["LS"]), re.MULTILINE)
|
||||
self.re_PostBB = re.compile(ur"^%s: posts big blind \[ ?[%s]? (?P<BB>[.0-9]+)\s.*\]$" % (player_re, self.substitutions["LS"]), re.MULTILINE)
|
||||
self.re_PostBoth = re.compile(ur"^%s: posts both blinds \[ ?[%s]? (?P<SBBB>[.0-9]+)\s.*\]$" % (player_re, self.substitutions["LS"]), re.MULTILINE)
|
||||
self.re_Antes = re.compile(ur"^%s: posts ante \[ ?[%s]? (?P<ANTE>[.0-9]+)\s.*\]$" % (player_re, self.substitutions["LS"]), re.MULTILINE)
|
||||
self.re_BringIn = re.compile(ur"^%s posts bring-in ?[%s]? (?P<BRINGIN>[.0-9]+)\." % (player_re, self.substitutions["LS"]), re.MULTILINE)
|
||||
self.re_HeroCards = re.compile(ur"^Dealt to %s \[ (?P<CARDS>.*) \]$" % player_re, re.MULTILINE)
|
||||
# ^%s(?P<ATYPE>: bets| checks| raises| calls| folds)(\s\[(?:\$| €|) (?P<BET>[.,\d]+) (USD|EURO|Chips)\])?
|
||||
self.re_Action = re.compile(ur"^%s(?P<ATYPE>: bets| checks| raises| calls| folds)(\s\[(?:[$€]?) (?P<BET>[.,\d]+)\s?(USD|EURO|Chips|)\])?" % player_re, re.MULTILINE)
|
||||
# ^%s(?P<ATYPE>: bets| checks| raises| calls| folds)(\s\[(?:\$| €|) (?P<BET>[.,\d]+) (USD|EURO|EUR|Chips)\])?
|
||||
self.re_Action = re.compile(ur"^%s(?P<ATYPE>: bets| checks| raises| calls| folds)(\s\[(?: ?[%s]?) (?P<BET>[.,\d]+)\s?(USD|EURO|EUR|Chips|)\])?" % (player_re, self.substitutions["LS"]), re.MULTILINE)
|
||||
self.re_ShowdownAction = re.compile(ur"^%s shows \[ (?P<CARDS>.*) \]" % player_re, re.MULTILINE)
|
||||
self.re_CollectPot = re.compile(ur"^%s wins (?:[$€]?)\s?(?P<POT>[.\d]+) (USD|EURO|chips)(.*?\[ (?P<CARDS>.*?) \])?" % player_re, re.MULTILINE)
|
||||
self.re_CollectPot = re.compile(ur"^%s wins ?(?: ?[%s]?)\s?(?P<POT>[.\d]+) (USD|EURO|EUR|chips)(.*?\[ (?P<CARDS>.*?) \])?" % (player_re, self.substitutions["LS"]), re.MULTILINE)
|
||||
self.re_SitsOut = re.compile(ur"^%s sits out" % player_re, re.MULTILINE)
|
||||
|
||||
def readSupportedGames(self):
|
||||
|
@ -107,11 +121,12 @@ or None if we fail to get the info """
|
|||
# Table 2
|
||||
info = {'type':'ring'}
|
||||
|
||||
|
||||
m = self.re_GameInfo.search(handText)
|
||||
if not m:
|
||||
tmp = handText[0:100]
|
||||
tmp = handText[0:150]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
|
||||
mg = m.groupdict()
|
||||
|
@ -256,10 +271,7 @@ or None if we fail to get the info """
|
|||
|
||||
|
||||
def readStudPlayerCards(self, hand, street):
|
||||
# lol. see Plymouth.txt
|
||||
logging.warning(_("Everleaf readStudPlayerCards is only a stub."))
|
||||
#~ if street in ('THIRD', 'FOURTH', 'FIFTH', 'SIXTH'):
|
||||
#~ hand.addPlayerCards(player = player.group('PNAME'), street = street, closed = [], open = [])
|
||||
|
||||
|
||||
def readAction(self, hand, street):
|
||||
|
@ -280,7 +292,7 @@ or None if we fail to get the info """
|
|||
elif action.group('ATYPE') == ' complete to':
|
||||
hand.addComplete( street, action.group('PNAME'), action.group('BET'))
|
||||
else:
|
||||
logging.debug(_("Unimplemented readAction: %s %s") % (action.group('PNAME'),action.group('ATYPE')))
|
||||
logging.debug(_("Unimplemented readAction: '%s' '%s'") % (action.group('PNAME'), action.group('ATYPE')))
|
||||
|
||||
|
||||
def readShowdownActions(self, hand):
|
||||
|
|
|
@ -89,8 +89,8 @@ class FullTiltPokerSummary(TourneySummary):
|
|||
m = self.re_TourneyInfo.search(self.summaryText[:2000])
|
||||
if m == None:
|
||||
tmp = self.summaryText[0:200]
|
||||
log.error(_("parseSummary: Unable to recognise Tourney Info: '%s'") % tmp)
|
||||
log.error(_("parseSummary: Raising FpdbParseError"))
|
||||
log.error("parseSummary: " + _("Unable to recognise Tourney Info: '%s'") % tmp)
|
||||
log.error("parseSummary: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise Tourney Info: '%s'") % tmp)
|
||||
|
||||
#print "DEBUG: m.groupdict(): %s" % m.groupdict()
|
||||
|
@ -115,8 +115,8 @@ class FullTiltPokerSummary(TourneySummary):
|
|||
|
||||
m = self.re_Currency.search(self.summaryText)
|
||||
if m == None:
|
||||
log.error(_("parseSummary: Unable to locate currency"))
|
||||
log.error(_("parseSummary: Raising FpdbParseError"))
|
||||
log.error("parseSummary: " + _("Unable to locate currency"))
|
||||
log.error("parseSummary: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to locate currency"))
|
||||
#print "DEBUG: m.groupdict(): %s" % m.groupdict()
|
||||
|
||||
|
|
|
@ -197,8 +197,13 @@ class Fulltilt(HandHistoryConverter):
|
|||
["tour", "hold", "nl"],
|
||||
["tour", "hold", "pl"],
|
||||
["tour", "hold", "fl"],
|
||||
["tour", "hold", "cn"],
|
||||
|
||||
["tour", "stud", "fl"],
|
||||
|
||||
["tour", "draw", "fl"],
|
||||
["tour", "draw", "pl"],
|
||||
["tour", "draw", "nl"],
|
||||
]
|
||||
|
||||
def determineGameType(self, handText):
|
||||
|
@ -208,7 +213,7 @@ class Fulltilt(HandHistoryConverter):
|
|||
if not m:
|
||||
tmp = handText[0:100]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError for file '%s'") % self.in_path)
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError for file '%s'") % self.in_path)
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
mg = m.groupdict()
|
||||
|
||||
|
@ -251,7 +256,7 @@ class Fulltilt(HandHistoryConverter):
|
|||
info['bb'] = self.Lim_Blinds[bb][1]
|
||||
except KeyError:
|
||||
log.error(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||
|
||||
if mg['GAME'] is not None:
|
||||
|
@ -369,7 +374,7 @@ class Fulltilt(HandHistoryConverter):
|
|||
|
||||
if plist == {}:
|
||||
#No players! The hand is either missing stacks or everyone is sitting out
|
||||
raise FpdbParseError(_("FTP: readPlayerStacks: No players detected (hand #%s)") % hand.handid)
|
||||
raise FpdbParseError(_("readPlayerStacks: No players detected (hand #%s)") % hand.handid)
|
||||
|
||||
|
||||
def markStreets(self, hand):
|
||||
|
@ -441,7 +446,7 @@ class Fulltilt(HandHistoryConverter):
|
|||
hand.buttonpos = int(self.re_Button.search(hand.handText).group('BUTTON'))
|
||||
except AttributeError, e:
|
||||
# FTP has no indication that a hand is cancelled.
|
||||
raise FpdbParseError(_("FTP: readButton: Failed to detect button (hand #%s cancelled?)") % hand.handid)
|
||||
raise FpdbParseError(_("readButton: Failed to detect button (hand #%s cancelled?)") % hand.handid)
|
||||
|
||||
def readHeroCards(self, hand):
|
||||
# streets PREFLOP, PREDRAW, and THIRD are special cases beacause
|
||||
|
@ -499,7 +504,7 @@ class Fulltilt(HandHistoryConverter):
|
|||
elif action.group('ATYPE') == ' stands pat':
|
||||
hand.addStandsPat( street, action.group('PNAME'), action.group('CARDS'))
|
||||
else:
|
||||
print _("FullTilt: DEBUG: unimplemented readAction: '%s' '%s'") %(action.group('PNAME'),action.group('ATYPE'),)
|
||||
print (_("DEBUG: ") + " " + _("Unimplemented readAction: '%s' '%s'") % (action.group('PNAME'), action.group('ATYPE')))
|
||||
|
||||
|
||||
def readShowdownActions(self, hand):
|
||||
|
@ -776,7 +781,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 (_("Player finishing stats unreadable : %s") % a)
|
||||
|
||||
# Find Hero
|
||||
n = self.re_TourneyHeroFinishingP.search(playersText)
|
||||
|
@ -785,9 +790,9 @@ 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 (_("%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 (_("Bad parsing : finish position incoherent : %s / %s") % (tourney.ranks[heroName], n.group('HERO_FINISHING_POS')))
|
||||
|
||||
return True
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@ class GuiImapFetcher (threading.Thread):
|
|||
|
||||
def displayConfig(self):
|
||||
box=gtk.HBox(homogeneous=True)
|
||||
for text in (_("Site"), _("Fetch Type"), _("Mailserver"), _("Username"), _("Password"), _("Mail Folder"), _("Use SSL")):
|
||||
for text in (_("Site"), _("Fetch Type"), _("Mail Server"), _("Username"), _("Password"), _("Mail Folder"), _("Use SSL")):
|
||||
label=gtk.Label(text)
|
||||
box.add(label)
|
||||
self.mainVBox.pack_start(box, expand=False)
|
||||
|
|
|
@ -161,7 +161,7 @@ class OnGame(HandHistoryConverter):
|
|||
if not m:
|
||||
tmp = handText[0:100]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
|
||||
mg = m.groupdict()
|
||||
|
@ -180,7 +180,7 @@ class OnGame(HandHistoryConverter):
|
|||
else:
|
||||
tmp = handText[0:100]
|
||||
log.error(_("limit not found in self.limits(%s). hand: '%s'") % (str(mg),tmp))
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("limit not found in self.limits(%s). hand: '%s'") % (str(mg),tmp))
|
||||
if 'GAME' in mg:
|
||||
(info['base'], info['category']) = self.games[mg['GAME']]
|
||||
|
|
|
@ -171,7 +171,7 @@ class PacificPoker(HandHistoryConverter):
|
|||
if not m:
|
||||
tmp = handText[0:120]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
|
||||
mg = m.groupdict()
|
||||
|
@ -202,7 +202,7 @@ class PacificPoker(HandHistoryConverter):
|
|||
info['bb'] = self.Lim_Blinds[mg['BB']][1]
|
||||
except KeyError:
|
||||
log.error(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||
|
||||
return info
|
||||
|
@ -255,7 +255,7 @@ class PacificPoker(HandHistoryConverter):
|
|||
hand.buyinCurrency="PSFP"
|
||||
else:
|
||||
#FIXME: handle other currencies, FPP, play money
|
||||
raise FpdbParseError(_("Failed to detect currency. Hand ID: %s: '%s'") % (hand.handid, info[key]))
|
||||
raise FpdbParseError(_("Failed to detect currency.") + " " + _("Hand ID: %s: '%s'") % (hand.handid, info[key]))
|
||||
|
||||
info['BIAMT'] = info['BIAMT'].strip(u'$€FPP')
|
||||
|
||||
|
@ -426,7 +426,7 @@ class PacificPoker(HandHistoryConverter):
|
|||
elif action.group('ATYPE') == ' stands pat':
|
||||
hand.addStandsPat( street, action.group('PNAME'))
|
||||
else:
|
||||
print _("DEBUG: unimplemented readAction: '%s' '%s'") %(action.group('PNAME'),action.group('ATYPE'),)
|
||||
print (_("DEBUG: ") + _("Unimplemented readAction: '%s' '%s'") % (action.group('PNAME'), action.group('ATYPE')))
|
||||
|
||||
|
||||
def readShowdownActions(self, hand):
|
||||
|
|
|
@ -195,7 +195,7 @@ class PartyPoker(HandHistoryConverter):
|
|||
if m is None:
|
||||
tmp = handText[0:100]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
|
||||
mg = m.groupdict()
|
||||
|
@ -345,7 +345,7 @@ class PartyPoker(HandHistoryConverter):
|
|||
elif info[key].find(u"€")!=-1:
|
||||
hand.buyinCurrency="EUR"
|
||||
else:
|
||||
raise FpdbParseError(_("Failed to detect currency. Hand ID: %s: '%s'") % (hand.handid, info[key]))
|
||||
raise FpdbParseError(_("Failed to detect currency.") + " " + _("Hand ID: %s: '%s'") % (hand.handid, info[key]))
|
||||
info[key] = info[key].strip(u'$€')
|
||||
hand.buyin = int(100*Decimal(info[key]))
|
||||
if key == 'LEVEL':
|
||||
|
@ -532,9 +532,7 @@ class PartyPoker(HandHistoryConverter):
|
|||
elif actionType == 'checks':
|
||||
hand.addCheck( street, playerName )
|
||||
else:
|
||||
raise FpdbParseError(
|
||||
_("Unimplemented readAction: '%s' '%s'") % (playerName,actionType,),
|
||||
hid = hand.hid, )
|
||||
raise FpdbParseError(_("Unimplemented readAction: '%s' '%s'") % (playerName,actionType), hid = hand.hid)
|
||||
|
||||
def readShowdownActions(self, hand):
|
||||
# all action in readShownCards
|
||||
|
|
|
@ -126,7 +126,7 @@ class Pkr(HandHistoryConverter):
|
|||
if not m:
|
||||
tmp = handText[0:100]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
|
||||
mg = m.groupdict()
|
||||
|
@ -151,7 +151,7 @@ class Pkr(HandHistoryConverter):
|
|||
info['bb'] = self.Lim_Blinds[mg['BB']][1]
|
||||
except KeyError:
|
||||
log.error(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||
|
||||
return info
|
||||
|
@ -348,7 +348,7 @@ class Pkr(HandHistoryConverter):
|
|||
elif action.group('ATYPE') == ' stands pat':
|
||||
hand.addStandsPat( street, action.group('PNAME'))
|
||||
else:
|
||||
print "DEBUG: unimplemented readAction: '%s' '%s'" %(action.group('PNAME'),action.group('ATYPE'),)
|
||||
print (_("DEBUG: ") + _("Unimplemented readAction: '%s' '%s'") % (action.group('PNAME'), action.group('ATYPE')))
|
||||
|
||||
|
||||
def readShowdownActions(self, hand):
|
||||
|
|
|
@ -78,8 +78,8 @@ class PokerStarsSummary(TourneySummary):
|
|||
m = self.re_TourneyInfo.search(self.summaryText)
|
||||
if m == None:
|
||||
tmp = self.summaryText[0:200]
|
||||
log.error(_("parseSummary: Unable to recognise Tourney Info: '%s'") % tmp)
|
||||
log.error(_("parseSummary: Raising FpdbParseError"))
|
||||
log.error("parseSummary: " + _("Unable to recognise Tourney Info: '%s'") % tmp)
|
||||
log.error("parseSummary: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise Tourney Info: '%s'") % tmp)
|
||||
|
||||
#print "DEBUG: m.groupdict(): %s" % m.groupdict()
|
||||
|
@ -104,8 +104,8 @@ class PokerStarsSummary(TourneySummary):
|
|||
|
||||
m = self.re_Currency.search(self.summaryText)
|
||||
if m == None:
|
||||
log.error(_("parseSummary: Unable to locate currency"))
|
||||
log.error(_("parseSummary: Raising FpdbParseError"))
|
||||
log.error("parseSummary: " + _("Unable to locate currency"))
|
||||
log.error("parseSummary: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to locate currency"))
|
||||
#print "DEBUG: m.groupdict(): %s" % m.groupdict()
|
||||
|
||||
|
|
|
@ -182,9 +182,9 @@ class PokerStars(HandHistoryConverter):
|
|||
info = {}
|
||||
m = self.re_GameInfo.search(handText)
|
||||
if not m:
|
||||
tmp = handText[0:100]
|
||||
tmp = handText[0:150]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
|
||||
mg = m.groupdict()
|
||||
|
@ -210,7 +210,7 @@ class PokerStars(HandHistoryConverter):
|
|||
info['bb'] = self.Lim_Blinds[mg['BB']][1]
|
||||
except KeyError:
|
||||
log.error(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||
|
||||
return info
|
||||
|
@ -263,7 +263,7 @@ class PokerStars(HandHistoryConverter):
|
|||
hand.buyinCurrency="PSFP"
|
||||
else:
|
||||
#FIXME: handle other currencies, play money
|
||||
raise FpdbParseError(_("Failed to detect currency. Hand ID: %s: '%s'") % (hand.handid, info[key]))
|
||||
raise FpdbParseError(_("Failed to detect currency.") + " " + _("Hand ID: %s: '%s'") % (hand.handid, info[key]))
|
||||
|
||||
info['BIAMT'] = info['BIAMT'].strip(u'$€FPP')
|
||||
|
||||
|
|
|
@ -243,7 +243,7 @@ class RushNotes(Aux_Window):
|
|||
c.execute(("SELECT handId, position, startCards, street0Aggr, tableName " +
|
||||
"FROM Hands, HandsPlayers " +
|
||||
"WHERE HandsPlayers.handId = Hands.id " +
|
||||
"AND street0VPI = True " +
|
||||
"AND street0VPI " +
|
||||
"AND startCards > 0 " +
|
||||
"AND playerId = %d " +
|
||||
"ORDER BY startCards DESC " +
|
||||
|
|
|
@ -78,8 +78,8 @@ class Sitename(TourneySummary):
|
|||
m = self.re_TourneyInfo.search(self.summaryText)
|
||||
if m == None:
|
||||
tmp = self.summaryText[0:200]
|
||||
log.error(_("parseSummary: Unable to recognise Tourney Info: '%s'") % tmp)
|
||||
log.error(_("parseSummary: Raising FpdbParseError"))
|
||||
log.error("parseSummary: " + _("Unable to recognise Tourney Info: '%s'") % tmp)
|
||||
log.error("parseSummary: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise Tourney Info: '%s'") % tmp)
|
||||
|
||||
print "DEBUG: m.groupdict(): %s" % m.groupdict()
|
||||
|
|
|
@ -380,9 +380,6 @@ def main(argv=None):
|
|||
for i, site in enumerate(ErrorsList):
|
||||
totalerrors += ErrorsList[i].errorcount
|
||||
|
||||
print "---------------------"
|
||||
print "Total Errors: %d" % totalerrors
|
||||
print "---------------------"
|
||||
for i, site in enumerate(ErrorsList):
|
||||
ErrorsList[i].print_histogram()
|
||||
|
||||
|
@ -407,6 +404,9 @@ def main(argv=None):
|
|||
for num, stat in sortedstats:
|
||||
print "(%3d) : %s" %(num, stat)
|
||||
|
||||
print "---------------------"
|
||||
print "Total Errors: %d" % totalerrors
|
||||
print "---------------------"
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
||||
|
|
|
@ -99,7 +99,7 @@ class Win2day(HandHistoryConverter):
|
|||
if not m:
|
||||
tmp = handText[0:1000]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
|
||||
mg = m.groupdict()
|
||||
|
@ -345,7 +345,7 @@ class Win2day(HandHistoryConverter):
|
|||
elif action.group('ATYPE') == 'ACTION_STAND':
|
||||
hand.addStandsPat( street, action.group('PNAME'))
|
||||
else:
|
||||
print (_("DEBUG: ") + _("unimplemented readAction: '%s' '%s'") % (action.group('PNAME'), action.group('ATYPE')))
|
||||
print (_("DEBUG: ") + _("Unimplemented readAction: '%s' '%s'") % (action.group('PNAME'), action.group('ATYPE')))
|
||||
|
||||
|
||||
def readShowdownActions(self, hand):
|
||||
|
|
|
@ -170,7 +170,7 @@ class Winamax(HandHistoryConverter):
|
|||
if not m:
|
||||
tmp = handText[0:100]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
|
||||
mg = m.groupdict()
|
||||
|
@ -188,7 +188,7 @@ class Winamax(HandHistoryConverter):
|
|||
else:
|
||||
tmp = handText[0:100]
|
||||
log.error(_("limit not found in self.limits(%s). hand: '%s'") % (str(mg),tmp))
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("limit not found in self.limits(%s). hand: '%s'") % (str(mg),tmp))
|
||||
if 'GAME' in mg:
|
||||
(info['base'], info['category']) = self.games[mg['GAME']]
|
||||
|
@ -260,7 +260,7 @@ class Winamax(HandHistoryConverter):
|
|||
hand.buyinCurrency="PSFP"
|
||||
else:
|
||||
#FIXME: handle other currencies (are there other currencies?)
|
||||
raise FpdbParseError(_("Failed to detect currency. Hand ID: %s: '%s'") % (hand.handid, info[key]))
|
||||
raise FpdbParseError(_("Failed to detect currency.") + " " + _("Hand ID: %s: '%s'") % (hand.handid, info[key]))
|
||||
|
||||
info['BIAMT'] = info['BIAMT'].strip(u'$€FPP')
|
||||
|
||||
|
@ -403,13 +403,13 @@ class Winamax(HandHistoryConverter):
|
|||
elif action.group('ATYPE') == ' stands pat':
|
||||
hand.addStandsPat( street, action.group('PNAME'))
|
||||
else:
|
||||
log.fatal(_("DEBUG: ") + _("unimplemented readAction: '%s' '%s'") % (action.group('PNAME'),action.group('ATYPE')))
|
||||
log.fatal(_("DEBUG: ") + _("Unimplemented readAction: '%s' '%s'") % (action.group('PNAME'), action.group('ATYPE')))
|
||||
# print "Processed %s"%acts
|
||||
# print "committed=",hand.pot.committed
|
||||
|
||||
def readShowdownActions(self, hand):
|
||||
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
||||
log.debug(_("add show actions %s") % shows)
|
||||
#log.debug(_("add show actions %s") % shows)
|
||||
cards = shows.group('CARDS')
|
||||
cards = cards.split(' ')
|
||||
# print "DEBUG: addShownCards(%s, %s)" %(cards, shows.group('PNAME'))
|
||||
|
|
|
@ -266,10 +266,15 @@ class fpdb:
|
|||
'Eric Blade', '_mt', 'sqlcoder', 'Bostik', _('and others')])
|
||||
dia.set_program_name("Free Poker Database (FPDB)")
|
||||
|
||||
db_version = ""
|
||||
#if self.db is not None:
|
||||
# db_version = self.db.get_version()
|
||||
nums = [(_('Operating System'), os.name),
|
||||
if (os.name=="posix"):
|
||||
os_text=str(os.uname())
|
||||
elif (os.name=="nt"):
|
||||
import platform
|
||||
os_text=("Windows" + " " + str(platform.win32_ver()))
|
||||
else:
|
||||
os_text="Unknown"
|
||||
|
||||
nums = [(_('Operating System'), os_text),
|
||||
('Python', sys.version[0:3]),
|
||||
('GTK+', '.'.join([str(x) for x in gtk.gtk_version])),
|
||||
('PyGTK', '.'.join([str(x) for x in gtk.pygtk_version])),
|
||||
|
@ -281,7 +286,7 @@ class fpdb:
|
|||
]
|
||||
versions = gtk.TextBuffer()
|
||||
w = 20 # width used for module names and version numbers
|
||||
versions.set_text('\n'.join([x[0].rjust(w) + ' ' + x[1].ljust(w) for x in nums]))
|
||||
versions.set_text('\n'.join([x[0].rjust(w) + ': ' + x[1].ljust(w) for x in nums]))
|
||||
view = gtk.TextView(versions)
|
||||
view.set_editable(False)
|
||||
view.set_justification(gtk.JUSTIFY_CENTER)
|
||||
|
@ -1221,7 +1226,6 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an
|
|||
self.window.set_icon_from_file('/usr/share/pixmaps/fpdb-cards.png')
|
||||
else:
|
||||
self.statusIcon.set_from_stock(gtk.STOCK_HOME)
|
||||
self.window.set_icon_stock(gtk.STOCK_HOME)
|
||||
self.statusIcon.set_tooltip("Free Poker Database")
|
||||
self.statusIcon.connect('activate', self.statusicon_activate)
|
||||
self.statusMenu = gtk.Menu()
|
||||
|
|
|
@ -120,7 +120,7 @@ or None if we fail to get the info """
|
|||
except AttributeError:
|
||||
tmp = handText[0:100]
|
||||
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||
log.error("determineGameType: " + _("Raising FpdbParseError"))
|
||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||
|
||||
self.info = {}
|
||||
|
@ -258,7 +258,7 @@ or None if we fail to get the info """
|
|||
#print "DEBUG: addBringIn(%s, %s)" %(action.group('PNAME'), action.group('BET'))
|
||||
hand.addBringIn(action.group('PNAME'), action.group('BET'))
|
||||
else:
|
||||
logging.error(_("Unimplemented readAction: %s") % (ag))
|
||||
logging.error(_("DEBUG: ") + _("Unimplemented readAction: '%s' '%s'") % (action.group('PNAME'), action.group('ATYPE')))
|
||||
|
||||
def readShowdownActions(self, hand):
|
||||
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
||||
|
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
4225
pyfpdb/locale/fpdb-it_IT.po
Normal file
4225
pyfpdb/locale/fpdb-it_IT.po
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
4026
pyfpdb/locale/fpdb-pt_BR.po
Normal file
4026
pyfpdb/locale/fpdb-pt_BR.po
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
3992
pyfpdb/locale/fpdb-zh_CN.po
Normal file
3992
pyfpdb/locale/fpdb-zh_CN.po
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
BIN
pyfpdb/locale/it/LC_MESSAGES/fpdb.mo
Normal file
BIN
pyfpdb/locale/it/LC_MESSAGES/fpdb.mo
Normal file
Binary file not shown.
|
@ -5,26 +5,42 @@ echo "creating template po file"
|
|||
python /usr/share/doc/python-2.*/examples/Tools/i18n/pygettext.py --output-dir=locale --default-domain=fpdb --output=fpdb-en_GB.pot *.py *.pyw
|
||||
|
||||
echo "merging template with existing translations"
|
||||
#msgmerge --update locale/fpdb-.po locale/fpdb-en_GB.pot
|
||||
msgmerge --update locale/fpdb-de_DE.po locale/fpdb-en_GB.pot
|
||||
msgmerge --update locale/fpdb-es_ES.po locale/fpdb-en_GB.pot
|
||||
msgmerge --update locale/fpdb-fr_FR.po locale/fpdb-en_GB.pot
|
||||
msgmerge --update locale/fpdb-hu_HU.po locale/fpdb-en_GB.pot
|
||||
msgmerge --update locale/fpdb-it_IT.po locale/fpdb-en_GB.pot
|
||||
msgmerge --update locale/fpdb-pl_PL.po locale/fpdb-en_GB.pot
|
||||
msgmerge --update locale/fpdb-pt_BR.po locale/fpdb-en_GB.pot
|
||||
msgmerge --update locale/fpdb-ru_RU.po locale/fpdb-en_GB.pot
|
||||
msgmerge --update locale/fpdb-zh_CN.po locale/fpdb-en_GB.pot
|
||||
|
||||
msgfmt -c locale/fpdb-de_DE.po
|
||||
msgfmt -c locale/fpdb-es_ES.po
|
||||
msgfmt -c locale/fpdb-fr_FR.po
|
||||
msgfmt -c locale/fpdb-hu_HU.po
|
||||
msgfmt -c locale/fpdb-pl_PL.po
|
||||
msgfmt -c locale/fpdb-ru_RU.po
|
||||
echo "checking translated files"
|
||||
#msgfmt -c --check-accelerators locale/fpdb-.po
|
||||
msgfmt -c --check-accelerators locale/fpdb-de_DE.po
|
||||
msgfmt -c --check-accelerators locale/fpdb-es_ES.po
|
||||
msgfmt -c --check-accelerators locale/fpdb-fr_FR.po
|
||||
msgfmt -c --check-accelerators locale/fpdb-hu_HU.po
|
||||
msgfmt -c --check-accelerators locale/fpdb-it_IT.po
|
||||
msgfmt -c --check-accelerators locale/fpdb-pl_PL.po
|
||||
msgfmt -c --check-accelerators locale/fpdb-pt_BR.po
|
||||
msgfmt -c --check-accelerators locale/fpdb-ru_RU.po
|
||||
msgfmt -c --check-accelerators locale/fpdb-zh_CN.po
|
||||
|
||||
echo "check the following output for misplaced \\\\"
|
||||
grep "[\\][\\]" locale/*.po
|
||||
|
||||
echo "compiling mo files"
|
||||
#python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale//LC_MESSAGES/fpdb.mo locale/fpdb-.po
|
||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/de/LC_MESSAGES/fpdb.mo locale/fpdb-de_DE.po
|
||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/es/LC_MESSAGES/fpdb.mo locale/fpdb-es_ES.po
|
||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/fr/LC_MESSAGES/fpdb.mo locale/fpdb-fr_FR.po
|
||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/hu/LC_MESSAGES/fpdb.mo locale/fpdb-hu_HU.po
|
||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/it/LC_MESSAGES/fpdb.mo locale/fpdb-it_IT.po
|
||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/pl/LC_MESSAGES/fpdb.mo locale/fpdb-pl_PL.po
|
||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/pt/LC_MESSAGES/fpdb.mo locale/fpdb-pt_BR.po
|
||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/ru/LC_MESSAGES/fpdb.mo locale/fpdb-ru_RU.po
|
||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/zh/LC_MESSAGES/fpdb.mo locale/fpdb-zh_CN.po
|
||||
|
||||
pocount locale/*.po
|
||||
|
|
Binary file not shown.
BIN
pyfpdb/locale/pt/LC_MESSAGES/fpdb.mo
Normal file
BIN
pyfpdb/locale/pt/LC_MESSAGES/fpdb.mo
Normal file
Binary file not shown.
Binary file not shown.
BIN
pyfpdb/locale/zh/LC_MESSAGES/fpdb.mo
Normal file
BIN
pyfpdb/locale/zh/LC_MESSAGES/fpdb.mo
Normal file
Binary file not shown.
|
@ -0,0 +1,48 @@
|
|||
Partouche Poker Gibraltar
|
||||
*** Historique des Mains pour la partie 25324991 ***
|
||||
Blinds €0.01/ €0.02 NL Hold'em - 2009/10/27 - 19:04:57
|
||||
Table Andernos 2
|
||||
Seat 1 is the button
|
||||
Total number of players: 6
|
||||
Seat 1: player1 ( € 0.76 EUR )
|
||||
Seat 2: player2 ( € 1.83 EUR )
|
||||
Seat 3: player3 ( € 0.81 EUR )
|
||||
Seat 4: player4 ( € 2 EUR )
|
||||
Seat 5: player5 ( € 1.39 EUR )
|
||||
Seat 6: player6 ( new player )
|
||||
player2: posts small blind [ € 0.01 EUR]
|
||||
player3: posts big blind [ € 0.02 EUR]
|
||||
player4: posts big blind [ € 0.02 EUR]
|
||||
** Dealing down cards **
|
||||
Dealt to player4 [ 5s, 4s ]
|
||||
player4 checks
|
||||
player5 raises [ € 0.04 EUR]
|
||||
player1 folds
|
||||
player2 calls [ € 0.03 EUR]
|
||||
player3 est déconnecté et dispose de 20 secondes supplémentaires pour agir
|
||||
player3 calls [ € 0.02 EUR]
|
||||
player4 calls [ € 0.02 EUR]
|
||||
** Dealing Flop ** [ Qs, 8s, 7c ]
|
||||
player3 est déconnecté et dispose de 20 secondes supplémentaires pour agir
|
||||
player2 checks
|
||||
player3 est déconnecté et dispose de 20 secondes supplémentaires pour agir
|
||||
player3 checks
|
||||
player4: bets [ € 0.08 EUR]
|
||||
player5 raises [ € 0.16 EUR]
|
||||
player2 folds
|
||||
player3 calls [ € 0.16 EUR]
|
||||
player4 calls [ € 0.08 EUR]
|
||||
** Dealing Turn ** [ Th ]
|
||||
player3 checks
|
||||
player4 checks
|
||||
player5: bets [ € 0.64 EUR]
|
||||
player3 folds
|
||||
player4 calls [ € 0.64 EUR]
|
||||
** Dealing River ** [ Tc ]
|
||||
player4: bets [ € 1.16 EUR]
|
||||
player5 calls [ € 0.55 EUR]
|
||||
player4 shows [ 5s, 4s ]a pair of tens
|
||||
player5 shows [ Qh, Ad ]two pairs, queens and tens
|
||||
player5 wins € 2.72 EUR from main pot with two pairs, queens and tens [ Ad, Qh, Qs, Th, Tc ]
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -1,126 +0,0 @@
|
|||
fpdb database dump
|
||||
DB version=143
|
||||
|
||||
###################
|
||||
Table Autorates
|
||||
###################
|
||||
empty table
|
||||
|
||||
###################
|
||||
Table Backings
|
||||
###################
|
||||
empty table
|
||||
|
||||
###################
|
||||
Table Gametypes
|
||||
###################
|
||||
empty table
|
||||
|
||||
###################
|
||||
Table Hands
|
||||
###################
|
||||
empty table
|
||||
|
||||
###################
|
||||
Table HandsActions
|
||||
###################
|
||||
empty table
|
||||
|
||||
###################
|
||||
Table HandsPlayers
|
||||
###################
|
||||
empty table
|
||||
|
||||
###################
|
||||
Table HudCache
|
||||
###################
|
||||
empty table
|
||||
|
||||
###################
|
||||
Table Players
|
||||
###################
|
||||
empty table
|
||||
|
||||
###################
|
||||
Table RawHands
|
||||
###################
|
||||
empty table
|
||||
|
||||
###################
|
||||
Table RawTourneys
|
||||
###################
|
||||
empty table
|
||||
|
||||
###################
|
||||
Table Settings
|
||||
###################
|
||||
version=143
|
||||
|
||||
|
||||
###################
|
||||
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
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
PokerStars Tournament #382394766, No Limit Hold'em
|
||||
Buy-In: 300/20
|
||||
9 players
|
||||
Total Prize Pool: 2700
|
||||
Tournament started 2011/04/05 4:00:18 CET [2011/04/04 22:00:18 ET]
|
||||
|
||||
1: ColdChipz (Australia), still playing
|
||||
2: pokermom2121 (United States), still playing
|
||||
3: Jerry4rt (United States), still playing
|
||||
4: scratch228 (United States), still playing
|
||||
5: steffen780 (Germany),
|
||||
6: thegoodnews (United States),
|
||||
7: olii22 (Colombia),
|
||||
8: LinColn368 (United States),
|
||||
9: neto coinete (Brazil),
|
||||
|
||||
You finished in 5th place (eliminated at hand #60348883363).
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,381 @@
|
|||
PokerStars Game #60348646994: Tournament #382394766, 300+20 Hold'em No Limit - Level I (10/20) - 2011/04/05 4:00:18 CET [2011/04/04 22:00:18 ET]
|
||||
Table '382394766 1' 9-max Seat #1 is the button
|
||||
Seat 1: olii22 (1500 in chips)
|
||||
Seat 2: Jerry4rt (1500 in chips)
|
||||
Seat 3: pokermom2121 (1500 in chips)
|
||||
Seat 4: thegoodnews (1500 in chips)
|
||||
Seat 5: ColdChipz (1500 in chips)
|
||||
Seat 6: steffen780 (1500 in chips)
|
||||
Seat 7: neto coinete (1500 in chips)
|
||||
Seat 8: scratch228 (1500 in chips)
|
||||
Seat 9: LinColn368 (1500 in chips)
|
||||
Jerry4rt: posts small blind 10
|
||||
pokermom2121: posts big blind 20
|
||||
*** HOLE CARDS ***
|
||||
Dealt to steffen780 [8h 6s]
|
||||
thegoodnews: folds
|
||||
ColdChipz: calls 20
|
||||
steffen780: folds
|
||||
neto coinete: raises 80 to 100
|
||||
scratch228: raises 1400 to 1500 and is all-in
|
||||
LinColn368: calls 1500 and is all-in
|
||||
olii22: folds
|
||||
Jerry4rt: folds
|
||||
pokermom2121: folds
|
||||
ColdChipz: folds
|
||||
neto coinete: calls 1400 and is all-in
|
||||
*** FLOP *** [3s 4h 7h]
|
||||
ColdChipz said, "surprise surprise"
|
||||
*** TURN *** [3s 4h 7h] [2h]
|
||||
*** RIVER *** [3s 4h 7h 2h] [3h]
|
||||
*** SHOW DOWN ***
|
||||
neto coinete: shows [As Kc] (a pair of Threes)
|
||||
scratch228: shows [Tc Td] (two pair, Tens and Threes)
|
||||
LinColn368: shows [6c 4c] (two pair, Fours and Threes)
|
||||
scratch228 collected 4550 from pot
|
||||
neto coinete finished the tournament in 8th place
|
||||
LinColn368 finished the tournament in 8th place
|
||||
*** SUMMARY ***
|
||||
Total pot 4550 | Rake 0
|
||||
Board [3s 4h 7h 2h 3h]
|
||||
Seat 1: olii22 (button) folded before Flop (didn't bet)
|
||||
Seat 2: Jerry4rt (small blind) folded before Flop
|
||||
Seat 3: pokermom2121 (big blind) folded before Flop
|
||||
Seat 4: thegoodnews folded before Flop (didn't bet)
|
||||
Seat 5: ColdChipz folded before Flop
|
||||
Seat 6: steffen780 folded before Flop (didn't bet)
|
||||
Seat 7: neto coinete showed [As Kc] and lost with a pair of Threes
|
||||
Seat 8: scratch228 showed [Tc Td] and won (4550) with two pair, Tens and Threes
|
||||
Seat 9: LinColn368 showed [6c 4c] and lost with two pair, Fours and Threes
|
||||
|
||||
|
||||
|
||||
PokerStars Game #60348679778: Tournament #382394766, 300+20 Hold'em No Limit - Level I (10/20) - 2011/04/05 4:01:29 CET [2011/04/04 22:01:29 ET]
|
||||
Table '382394766 1' 9-max Seat #2 is the button
|
||||
Seat 1: olii22 (1500 in chips)
|
||||
Seat 2: Jerry4rt (1490 in chips)
|
||||
Seat 3: pokermom2121 (1480 in chips)
|
||||
Seat 4: thegoodnews (1500 in chips)
|
||||
Seat 5: ColdChipz (1480 in chips)
|
||||
Seat 6: steffen780 (1500 in chips)
|
||||
Seat 8: scratch228 (4550 in chips)
|
||||
pokermom2121: posts small blind 10
|
||||
thegoodnews: posts big blind 20
|
||||
*** HOLE CARDS ***
|
||||
Dealt to steffen780 [5d 2s]
|
||||
ColdChipz: folds
|
||||
steffen780: calls 20
|
||||
scratch228: raises 100 to 120
|
||||
olii22: raises 100 to 220
|
||||
Jerry4rt: folds
|
||||
pokermom2121: folds
|
||||
thegoodnews: calls 200
|
||||
steffen780: folds
|
||||
scratch228: calls 100
|
||||
*** FLOP *** [6s 3s 9s]
|
||||
thegoodnews: checks
|
||||
scratch228: bets 400
|
||||
olii22: calls 400
|
||||
thegoodnews: raises 880 to 1280 and is all-in
|
||||
scratch228: calls 880
|
||||
olii22: calls 880 and is all-in
|
||||
*** TURN *** [6s 3s 9s] [2c]
|
||||
*** RIVER *** [6s 3s 9s 2c] [5c]
|
||||
*** SHOW DOWN ***
|
||||
thegoodnews: shows [8c Js] (high card Jack)
|
||||
scratch228: shows [6c 6h] (three of a kind, Sixes)
|
||||
olii22: shows [7h Qc] (high card Queen)
|
||||
scratch228 collected 4530 from pot
|
||||
olii22 finished the tournament in 6th place
|
||||
thegoodnews finished the tournament in 6th place
|
||||
*** SUMMARY ***
|
||||
Total pot 4530 | Rake 0
|
||||
Board [6s 3s 9s 2c 5c]
|
||||
Seat 1: olii22 showed [7h Qc] and lost with high card Queen
|
||||
Seat 2: Jerry4rt (button) folded before Flop (didn't bet)
|
||||
Seat 3: pokermom2121 (small blind) folded before Flop
|
||||
Seat 4: thegoodnews (big blind) showed [8c Js] and lost with high card Jack
|
||||
Seat 5: ColdChipz folded before Flop (didn't bet)
|
||||
Seat 6: steffen780 folded before Flop
|
||||
Seat 8: scratch228 showed [6c 6h] and won (4530) with three of a kind, Sixes
|
||||
|
||||
|
||||
|
||||
PokerStars Game #60348723543: Tournament #382394766, 300+20 Hold'em No Limit - Level I (10/20) - 2011/04/05 4:02:51 CET [2011/04/04 22:02:51 ET]
|
||||
Table '382394766 1' 9-max Seat #3 is the button
|
||||
Seat 2: Jerry4rt (1490 in chips)
|
||||
Seat 3: pokermom2121 (1470 in chips)
|
||||
Seat 5: ColdChipz (1480 in chips)
|
||||
Seat 6: steffen780 (1480 in chips)
|
||||
Seat 8: scratch228 (7580 in chips)
|
||||
ColdChipz: posts small blind 10
|
||||
steffen780: posts big blind 20
|
||||
*** HOLE CARDS ***
|
||||
Dealt to steffen780 [Ac 7s]
|
||||
scratch228: calls 20
|
||||
Jerry4rt: folds
|
||||
pokermom2121: calls 20
|
||||
ColdChipz: calls 10
|
||||
steffen780: raises 100 to 120
|
||||
ColdChipz said, "yep"
|
||||
scratch228: calls 100
|
||||
pokermom2121: calls 100
|
||||
ColdChipz: folds
|
||||
*** FLOP *** [5d Ks 3h]
|
||||
steffen780: checks
|
||||
scratch228: checks
|
||||
pokermom2121: checks
|
||||
*** TURN *** [5d Ks 3h] [Kd]
|
||||
steffen780: bets 220
|
||||
scratch228: calls 220
|
||||
pokermom2121: calls 220
|
||||
*** RIVER *** [5d Ks 3h Kd] [Tc]
|
||||
steffen780: bets 1140 and is all-in
|
||||
scratch228: folds
|
||||
pokermom2121: calls 1130 and is all-in
|
||||
Uncalled bet (10) returned to steffen780
|
||||
*** SHOW DOWN ***
|
||||
steffen780: shows [Ac 7s] (a pair of Kings)
|
||||
pokermom2121: shows [7h Kc] (three of a kind, Kings)
|
||||
pokermom2121 collected 3300 from pot
|
||||
*** SUMMARY ***
|
||||
Total pot 3300 | Rake 0
|
||||
Board [5d Ks 3h Kd Tc]
|
||||
Seat 2: Jerry4rt folded before Flop (didn't bet)
|
||||
Seat 3: pokermom2121 (button) showed [7h Kc] and won (3300) with three of a kind, Kings
|
||||
Seat 5: ColdChipz (small blind) folded before Flop
|
||||
Seat 6: steffen780 (big blind) showed [Ac 7s] and lost with a pair of Kings
|
||||
Seat 8: scratch228 folded on the River
|
||||
|
||||
|
||||
|
||||
PokerStars Game #60348767993: Tournament #382394766, 300+20 Hold'em No Limit - Level I (10/20) - 2011/04/05 4:04:11 CET [2011/04/04 22:04:11 ET]
|
||||
Table '382394766 1' 9-max Seat #5 is the button
|
||||
Seat 2: Jerry4rt (1490 in chips)
|
||||
Seat 3: pokermom2121 (3300 in chips)
|
||||
Seat 5: ColdChipz (1460 in chips)
|
||||
Seat 6: steffen780 (10 in chips)
|
||||
Seat 8: scratch228 (7240 in chips)
|
||||
steffen780: posts small blind 10 and is all-in
|
||||
scratch228: posts big blind 20
|
||||
*** HOLE CARDS ***
|
||||
Dealt to steffen780 [2s Ks]
|
||||
Jerry4rt: raises 400 to 420
|
||||
pokermom2121: calls 420
|
||||
ColdChipz: folds
|
||||
scratch228: folds
|
||||
*** FLOP *** [Kd 4s 7s]
|
||||
Jerry4rt: bets 1070 and is all-in
|
||||
pokermom2121: folds
|
||||
Uncalled bet (1070) returned to Jerry4rt
|
||||
*** TURN *** [Kd 4s 7s] [8d]
|
||||
*** RIVER *** [Kd 4s 7s 8d] [8h]
|
||||
*** SHOW DOWN ***
|
||||
Jerry4rt: shows [Td Ts] (two pair, Tens and Eights)
|
||||
Jerry4rt collected 830 from side pot
|
||||
steffen780: shows [2s Ks] (two pair, Kings and Eights)
|
||||
steffen780 collected 40 from main pot
|
||||
*** SUMMARY ***
|
||||
Total pot 870 Main pot 40. Side pot 830. | Rake 0
|
||||
Board [Kd 4s 7s 8d 8h]
|
||||
Seat 2: Jerry4rt showed [Td Ts] and won (830) with two pair, Tens and Eights
|
||||
Seat 3: pokermom2121 folded on the Flop
|
||||
Seat 5: ColdChipz (button) folded before Flop (didn't bet)
|
||||
Seat 6: steffen780 (small blind) showed [2s Ks] and won (40) with two pair, Kings and Eights
|
||||
Seat 8: scratch228 (big blind) folded before Flop
|
||||
|
||||
|
||||
|
||||
PokerStars Game #60348792090: Tournament #382394766, 300+20 Hold'em No Limit - Level I (10/20) - 2011/04/05 4:04:54 CET [2011/04/04 22:04:54 ET]
|
||||
Table '382394766 1' 9-max Seat #6 is the button
|
||||
Seat 2: Jerry4rt (1900 in chips)
|
||||
Seat 3: pokermom2121 (2880 in chips)
|
||||
Seat 5: ColdChipz (1460 in chips)
|
||||
Seat 6: steffen780 (40 in chips)
|
||||
Seat 8: scratch228 (7220 in chips)
|
||||
scratch228: posts small blind 10
|
||||
Jerry4rt: posts big blind 20
|
||||
*** HOLE CARDS ***
|
||||
Dealt to steffen780 [Js Kh]
|
||||
pokermom2121: folds
|
||||
ColdChipz: calls 20
|
||||
steffen780: raises 20 to 40 and is all-in
|
||||
scratch228: calls 30
|
||||
Jerry4rt: calls 20
|
||||
ColdChipz: calls 20
|
||||
*** FLOP *** [7s 8c Kc]
|
||||
scratch228: checks
|
||||
Jerry4rt: checks
|
||||
ColdChipz: checks
|
||||
*** TURN *** [7s 8c Kc] [Ks]
|
||||
scratch228: checks
|
||||
Jerry4rt: bets 200
|
||||
ColdChipz: folds
|
||||
scratch228: folds
|
||||
Uncalled bet (200) returned to Jerry4rt
|
||||
*** RIVER *** [7s 8c Kc Ks] [Td]
|
||||
*** SHOW DOWN ***
|
||||
Jerry4rt: shows [5s 5d] (two pair, Kings and Fives)
|
||||
steffen780: shows [Js Kh] (three of a kind, Kings)
|
||||
steffen780 collected 160 from pot
|
||||
*** SUMMARY ***
|
||||
Total pot 160 | Rake 0
|
||||
Board [7s 8c Kc Ks Td]
|
||||
Seat 2: Jerry4rt (big blind) showed [5s 5d] and lost with two pair, Kings and Fives
|
||||
Seat 3: pokermom2121 folded before Flop (didn't bet)
|
||||
Seat 5: ColdChipz folded on the Turn
|
||||
Seat 6: steffen780 (button) showed [Js Kh] and won (160) with three of a kind, Kings
|
||||
Seat 8: scratch228 (small blind) folded on the Turn
|
||||
|
||||
|
||||
|
||||
PokerStars Game #60348824266: Tournament #382394766, 300+20 Hold'em No Limit - Level I (10/20) - 2011/04/05 4:05:51 CET [2011/04/04 22:05:51 ET]
|
||||
Table '382394766 1' 9-max Seat #8 is the button
|
||||
Seat 2: Jerry4rt (1860 in chips)
|
||||
Seat 3: pokermom2121 (2880 in chips)
|
||||
Seat 5: ColdChipz (1420 in chips)
|
||||
Seat 6: steffen780 (160 in chips)
|
||||
Seat 8: scratch228 (7180 in chips)
|
||||
Jerry4rt: posts small blind 10
|
||||
pokermom2121: posts big blind 20
|
||||
*** HOLE CARDS ***
|
||||
Dealt to steffen780 [Th 8s]
|
||||
ColdChipz: folds
|
||||
steffen780: raises 140 to 160 and is all-in
|
||||
scratch228: folds
|
||||
Jerry4rt: folds
|
||||
pokermom2121: calls 140
|
||||
*** FLOP *** [Qd 8h 8c]
|
||||
*** TURN *** [Qd 8h 8c] [Ad]
|
||||
*** RIVER *** [Qd 8h 8c Ad] [7h]
|
||||
*** SHOW DOWN ***
|
||||
pokermom2121: shows [4s Ks] (a pair of Eights)
|
||||
steffen780: shows [Th 8s] (three of a kind, Eights)
|
||||
steffen780 collected 330 from pot
|
||||
*** SUMMARY ***
|
||||
Total pot 330 | Rake 0
|
||||
Board [Qd 8h 8c Ad 7h]
|
||||
Seat 2: Jerry4rt (small blind) folded before Flop
|
||||
Seat 3: pokermom2121 (big blind) showed [4s Ks] and lost with a pair of Eights
|
||||
Seat 5: ColdChipz folded before Flop (didn't bet)
|
||||
Seat 6: steffen780 showed [Th 8s] and won (330) with three of a kind, Eights
|
||||
Seat 8: scratch228 (button) folded before Flop (didn't bet)
|
||||
|
||||
|
||||
|
||||
PokerStars Game #60348839497: Tournament #382394766, 300+20 Hold'em No Limit - Level I (10/20) - 2011/04/05 4:06:18 CET [2011/04/04 22:06:18 ET]
|
||||
Table '382394766 1' 9-max Seat #2 is the button
|
||||
Seat 2: Jerry4rt (1850 in chips)
|
||||
Seat 3: pokermom2121 (2720 in chips)
|
||||
Seat 5: ColdChipz (1420 in chips)
|
||||
Seat 6: steffen780 (330 in chips)
|
||||
Seat 8: scratch228 (7180 in chips)
|
||||
pokermom2121: posts small blind 10
|
||||
ColdChipz: posts big blind 20
|
||||
*** HOLE CARDS ***
|
||||
Dealt to steffen780 [8c 6c]
|
||||
steffen780: raises 310 to 330 and is all-in
|
||||
scratch228: calls 330
|
||||
Jerry4rt: folds
|
||||
pokermom2121: folds
|
||||
ColdChipz: folds
|
||||
*** FLOP *** [Jc 5s 7c]
|
||||
*** TURN *** [Jc 5s 7c] [Qd]
|
||||
*** RIVER *** [Jc 5s 7c Qd] [6s]
|
||||
*** SHOW DOWN ***
|
||||
steffen780: shows [8c 6c] (a pair of Sixes)
|
||||
scratch228: shows [Tc Kc] (high card King)
|
||||
steffen780 collected 690 from pot
|
||||
*** SUMMARY ***
|
||||
Total pot 690 | Rake 0
|
||||
Board [Jc 5s 7c Qd 6s]
|
||||
Seat 2: Jerry4rt (button) folded before Flop (didn't bet)
|
||||
Seat 3: pokermom2121 (small blind) folded before Flop
|
||||
Seat 5: ColdChipz (big blind) folded before Flop
|
||||
Seat 6: steffen780 showed [8c 6c] and won (690) with a pair of Sixes
|
||||
Seat 8: scratch228 showed [Tc Kc] and lost with high card King
|
||||
|
||||
|
||||
|
||||
PokerStars Game #60348854448: Tournament #382394766, 300+20 Hold'em No Limit - Level I (10/20) - 2011/04/05 4:06:45 CET [2011/04/04 22:06:45 ET]
|
||||
Table '382394766 1' 9-max Seat #3 is the button
|
||||
Seat 2: Jerry4rt (1850 in chips)
|
||||
Seat 3: pokermom2121 (2710 in chips)
|
||||
Seat 5: ColdChipz (1400 in chips)
|
||||
Seat 6: steffen780 (690 in chips)
|
||||
Seat 8: scratch228 (6850 in chips)
|
||||
ColdChipz: posts small blind 10
|
||||
steffen780: posts big blind 20
|
||||
*** HOLE CARDS ***
|
||||
Dealt to steffen780 [4d 2h]
|
||||
scratch228: folds
|
||||
Jerry4rt: folds
|
||||
pokermom2121: calls 20
|
||||
ColdChipz: calls 10
|
||||
steffen780: checks
|
||||
*** FLOP *** [Kh Kd Kc]
|
||||
ColdChipz: checks
|
||||
steffen780: checks
|
||||
pokermom2121: checks
|
||||
*** TURN *** [Kh Kd Kc] [8c]
|
||||
ColdChipz: checks
|
||||
steffen780: checks
|
||||
pokermom2121: bets 140
|
||||
ColdChipz: calls 140
|
||||
steffen780: calls 140
|
||||
*** RIVER *** [Kh Kd Kc 8c] [Ts]
|
||||
ColdChipz: checks
|
||||
steffen780: checks
|
||||
pokermom2121: checks
|
||||
*** SHOW DOWN ***
|
||||
ColdChipz: shows [7d Ac] (three of a kind, Kings)
|
||||
steffen780: mucks hand
|
||||
pokermom2121: shows [9c 8s] (a full house, Kings full of Eights)
|
||||
pokermom2121 collected 480 from pot
|
||||
*** SUMMARY ***
|
||||
Total pot 480 | Rake 0
|
||||
Board [Kh Kd Kc 8c Ts]
|
||||
Seat 2: Jerry4rt folded before Flop (didn't bet)
|
||||
Seat 3: pokermom2121 (button) showed [9c 8s] and won (480) with a full house, Kings full of Eights
|
||||
Seat 5: ColdChipz (small blind) showed [7d Ac] and lost with three of a kind, Kings
|
||||
Seat 6: steffen780 (big blind) mucked [4d 2h]
|
||||
Seat 8: scratch228 folded before Flop (didn't bet)
|
||||
|
||||
|
||||
|
||||
PokerStars Game #60348883363: Tournament #382394766, 300+20 Hold'em No Limit - Level I (10/20) - 2011/04/05 4:07:37 CET [2011/04/04 22:07:37 ET]
|
||||
Table '382394766 1' 9-max Seat #5 is the button
|
||||
Seat 2: Jerry4rt (1850 in chips)
|
||||
Seat 3: pokermom2121 (3030 in chips)
|
||||
Seat 5: ColdChipz (1240 in chips)
|
||||
Seat 6: steffen780 (530 in chips)
|
||||
Seat 8: scratch228 (6850 in chips)
|
||||
steffen780: posts small blind 10
|
||||
scratch228: posts big blind 20
|
||||
*** HOLE CARDS ***
|
||||
Dealt to steffen780 [As Qs]
|
||||
Jerry4rt: folds
|
||||
pokermom2121: folds
|
||||
ColdChipz: calls 20
|
||||
steffen780: raises 510 to 530 and is all-in
|
||||
scratch228: folds
|
||||
ColdChipz: calls 510
|
||||
*** FLOP *** [3d Tc 7s]
|
||||
*** TURN *** [3d Tc 7s] [2h]
|
||||
*** RIVER *** [3d Tc 7s 2h] [4s]
|
||||
*** SHOW DOWN ***
|
||||
steffen780: shows [As Qs] (high card Ace)
|
||||
ColdChipz: shows [7c Ad] (a pair of Sevens)
|
||||
ColdChipz collected 1080 from pot
|
||||
steffen780 finished the tournament in 5th place
|
||||
*** SUMMARY ***
|
||||
Total pot 1080 | Rake 0
|
||||
Board [3d Tc 7s 2h 4s]
|
||||
Seat 2: Jerry4rt folded before Flop (didn't bet)
|
||||
Seat 3: pokermom2121 folded before Flop (didn't bet)
|
||||
Seat 5: ColdChipz (button) showed [7c Ad] and won (1080) with a pair of Sevens
|
||||
Seat 6: steffen780 (small blind) showed [As Qs] and lost with high card Ace
|
||||
Seat 8: scratch228 (big blind) folded before Flop
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,288 @@
|
|||
2137865906:35129644
|
||||
2137866285:35129644
|
||||
2137866663:35129644
|
||||
2137870973:35129644
|
||||
2137871766:35134072
|
||||
2137871297:35129644
|
||||
2137872103:35134072
|
||||
2137871605:35129644
|
||||
2137872595:35134072
|
||||
2137875811:35129644
|
||||
2137875860:35135862
|
||||
2137873579:35132513
|
||||
2137876905:35134072
|
||||
2137876144:35129644
|
||||
2137876304:35135862
|
||||
2137877295:35134072
|
||||
2137876333:35125878
|
||||
2137876536:35129644
|
||||
2137877928:35132513
|
||||
2137877564:35134072
|
||||
2137878328:35132513
|
||||
2137879861:35129644
|
||||
2137879886:35125878
|
||||
2137881190:35124993
|
||||
2137878558:35132513
|
||||
2137879970:35135862
|
||||
2137880240:35125878
|
||||
2137880794:35134072
|
||||
2137880410:35135862
|
||||
2137880231:35129644
|
||||
2137881290:35124993
|
||||
2137882780:35132513
|
||||
2137881406:35134072
|
||||
2137881679:35134072
|
||||
2137880464:35125878
|
||||
2137880727:35129644
|
||||
2137881626:35124993
|
||||
2137880704:35135862
|
||||
2137883876:35125878
|
||||
2137884785:35134072
|
||||
2137883993:35129644
|
||||
2137883139:35132513
|
||||
2137884961:35124993
|
||||
2137884221:35135862
|
||||
2137885174:35134072
|
||||
2137884365:35129644
|
||||
2137885400:35134072
|
||||
2137883628:35132513
|
||||
2137884472:35135862
|
||||
2137884196:35125878
|
||||
2137885347:35124993
|
||||
2137885725:35134072
|
||||
2137886946:35132513
|
||||
2137887899:35135862
|
||||
2137884723:35129644
|
||||
2137889992:35124993
|
||||
2137887205:35132513
|
||||
2137887352:35132513
|
||||
2137890172:35134072
|
||||
2137888240:35129644
|
||||
2137890469:35134072
|
||||
2137888228:35135862
|
||||
2137890574:35134072
|
||||
2137890313:35124993
|
||||
2137887389:35132513
|
||||
2137888461:35129644
|
||||
2137890639:35134072
|
||||
2137890809:35124993
|
||||
2137891798:35129644
|
||||
2137893735:35132513
|
||||
2137888599:35135862
|
||||
2137890884:35134072
|
||||
2137891075:35124993
|
||||
2137892026:35129644
|
||||
2137891456:35134072
|
||||
2137892446:35129644
|
||||
2137892247:35135862
|
||||
2137894197:35131702
|
||||
2137891445:35124993
|
||||
2137894058:35132513
|
||||
2137896843:35124993
|
||||
2137894457:35131702
|
||||
2137891555:35134072
|
||||
2137897773:35129644
|
||||
2137897740:35135862
|
||||
2137894547:35132513
|
||||
2137894631:35131702
|
||||
2137896932:35124993
|
||||
2137897044:35134072
|
||||
2137894729:35132513
|
||||
2137897392:35134072
|
||||
2137898016:35129644
|
||||
2137898913:35132513
|
||||
2137897466:35134072
|
||||
2137898774:35131702
|
||||
2137897328:35124993
|
||||
2137898079:35135862
|
||||
2137898413:35129644
|
||||
2137897728:35124993
|
||||
2137899017:35132513
|
||||
2137899072:35131702
|
||||
2137897590:35134072
|
||||
2137898640:35135862
|
||||
2137898682:35129644
|
||||
2137899820:35124993
|
||||
2137899323:35131702
|
||||
2137900225:35124993
|
||||
2137899379:35132513
|
||||
2137899994:35134072
|
||||
2137900410:35134072
|
||||
2137900360:35124993
|
||||
2137900997:35135862
|
||||
2137900613:35124993
|
||||
2137901078:35129644
|
||||
2137900503:35134072
|
||||
2137899716:35132513
|
||||
2137901536:35129644
|
||||
2137901493:35135862
|
||||
2137900671:35124993
|
||||
2137899674:35131702
|
||||
2137905742:35134072
|
||||
2137905028:35132513
|
||||
2137906011:35134072
|
||||
2137906110:35134072
|
||||
2137905180:35131702
|
||||
2137906194:35134072
|
||||
2137905268:35132513
|
||||
2137901646:35129644
|
||||
2137906306:35134072
|
||||
2137905426:35132513
|
||||
2137901693:35135862
|
||||
2137905979:35124993
|
||||
2137906407:35134072
|
||||
2137907083:35129644
|
||||
2137906451:35124993
|
||||
2137906504:35134072
|
||||
2137907200:35135862
|
||||
2137906693:35134072
|
||||
2137905419:35131702
|
||||
2137907278:35129644
|
||||
2137905538:35132513
|
||||
2137906618:35124993
|
||||
2137911790:35134072
|
||||
2137911910:35124993
|
||||
2137907478:35135862
|
||||
2137910856:35131702
|
||||
2137910932:35132513
|
||||
2137907595:35129644
|
||||
2137911986:35124993
|
||||
2137907707:35135862
|
||||
2137911971:35134072
|
||||
2137913922:35129644
|
||||
2137912286:35134072
|
||||
2137911090:35131702
|
||||
2137912502:35134072
|
||||
2137911226:35132513
|
||||
2137913947:35135862
|
||||
2137912590:35134072
|
||||
2137911581:35132513
|
||||
2137912240:35124993
|
||||
2137914142:35129644
|
||||
2137911633:35132513
|
||||
2137912681:35134072
|
||||
2137911470:35131702
|
||||
2137914295:35135862
|
||||
2137914798:35124993
|
||||
2137914936:35134072
|
||||
2137915764:35132513
|
||||
2137914494:35129644
|
||||
2137915057:35134072
|
||||
2137916021:35132513
|
||||
2137914624:35135862
|
||||
2137915017:35124993
|
||||
2137915868:35131702
|
||||
2137916208:35132513
|
||||
2137917880:35129644
|
||||
2137915297:35134072
|
||||
2137918014:35135862
|
||||
2137915612:35134072
|
||||
2137915423:35124993
|
||||
2137916302:35131702
|
||||
2137918193:35129644
|
||||
2137915700:35134072
|
||||
2137916618:35131702
|
||||
2137916377:35132513
|
||||
2137918296:35135862
|
||||
2137918531:35129644
|
||||
2137922085:35134072
|
||||
2137922912:35131702
|
||||
2137921772:35124993
|
||||
2137918702:35135862
|
||||
2137922377:35124993
|
||||
2137922268:35134072
|
||||
2137923085:35131702
|
||||
2137922529:35134072
|
||||
2137923949:35135862
|
||||
2137923777:35129644
|
||||
2137922927:35132513
|
||||
2137923379:35131702
|
||||
2137922678:35134072
|
||||
2137923575:35131702
|
||||
2137924196:35135862
|
||||
2137923428:35132513
|
||||
2137923651:35131702
|
||||
2137926879:35131702
|
||||
2137924232:35129644
|
||||
2137924970:35134072
|
||||
2137922524:35124993
|
||||
2137926868:35132513
|
||||
2137925462:35134072
|
||||
2137926921:35131702
|
||||
2137924592:35135862
|
||||
2137927833:35129644
|
||||
2137925433:35124993
|
||||
2137927144:35131702
|
||||
2137927069:35132513
|
||||
2137927391:35131702
|
||||
2137925533:35134072
|
||||
2137928074:35135862
|
||||
2137929945:35134072
|
||||
2137927474:35131702
|
||||
2137930036:35134072
|
||||
2137929754:35124993
|
||||
2137927470:35132513
|
||||
2137928281:35129644
|
||||
2137930113:35134072
|
||||
2137930781:35132513
|
||||
2137928489:35135862
|
||||
2137927663:35131702
|
||||
2137930118:35124993
|
||||
2137928701:35129644
|
||||
2137930949:35132513
|
||||
2137930313:35134072
|
||||
2137931072:35131702
|
||||
2137930640:35124993
|
||||
2137931898:35135862
|
||||
2137931205:35132513
|
||||
2137934771:35124993
|
||||
2137930652:35134072
|
||||
2137934890:35124993
|
||||
2137934990:35124993
|
||||
2137932103:35129644
|
||||
2137932326:35135862
|
||||
2137934951:35134072
|
||||
2137935031:35124993
|
||||
2137931321:35131702
|
||||
2137931420:35132513
|
||||
2137935162:35124993
|
||||
2137932614:35129644
|
||||
2137935292:35124993
|
||||
2137935148:35134072
|
||||
2137935475:35124993
|
||||
2137936812:35132513
|
||||
2137932612:35135862
|
||||
2137935560:35124993
|
||||
2137936806:35131702
|
||||
2137937090:35132513
|
||||
2137935478:35134072
|
||||
2137935641:35124993
|
||||
2137935927:35129644
|
||||
2137937188:35131702
|
||||
2137937250:35132513
|
||||
2137940806:35124993
|
||||
2137936192:35135862
|
||||
2137936484:35129644
|
||||
2137941010:35124993
|
||||
2137940802:35134072
|
||||
2137937476:35131702
|
||||
2137936697:35135862
|
||||
2137937492:35132513
|
||||
2137941174:35124993
|
||||
2137944960:35135862
|
||||
2137937697:35131702
|
||||
2137944843:35129644
|
||||
2137941177:35134072
|
||||
2137946897:35132513
|
||||
2137947029:35131702
|
||||
2137941442:35124993
|
||||
2137941580:35134072
|
||||
2137945234:35135862
|
||||
2137945289:35129644
|
||||
2137947158:35132513
|
||||
2137948842:35134072
|
||||
2137947161:35131702
|
||||
2137941705:35124993
|
||||
2137949017:35134072
|
||||
2137947446:35132513
|
||||
2137947521:35131702
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,258 @@
|
|||
Game # 2137876333 - Omaha High Pot Limit EUR 0.02/0.04 - Table "Chikumi"
|
||||
|
||||
Players(max 6):
|
||||
LihavaLapsi (EUR 2.08 in seat 1)
|
||||
kikekake (EUR 2.15 in seat 2)
|
||||
RealFish82 (EUR 4.00 in seat 3)
|
||||
lukasp2 (EUR 2.30 in seat 4)
|
||||
F4UXR34L (EUR 4.00 in seat 5)
|
||||
ditemelovoi (EUR 10.44 in seat 6)
|
||||
|
||||
Dealer: RealFish82
|
||||
Small Blind: lukasp2 (0.02)
|
||||
Big Blind: F4UXR34L (0.04)
|
||||
|
||||
F4UXR34L was dealt: 8s - Qd - 3d - 5c
|
||||
|
||||
ditemelovoi Call (0.04)
|
||||
LihavaLapsi Raise (0.18)
|
||||
kikekake Fold
|
||||
RealFish82 Fold
|
||||
lukasp2 Fold
|
||||
F4UXR34L Fold
|
||||
ditemelovoi Call (0.14)
|
||||
|
||||
Flop Kh - 6d - 3c
|
||||
|
||||
ditemelovoi Check
|
||||
LihavaLapsi Bet (0.36)
|
||||
ditemelovoi Raise (1.50)
|
||||
LihavaLapsi All-In (1.54)
|
||||
ditemelovoi Call (0.40)
|
||||
|
||||
Turn Kh - 6d - 3c - Jh
|
||||
River Kh - 6d - 3c - Jh - 7d
|
||||
|
||||
ditemelovoi shows: Th - Jd - Kd - 8h (two pairs, Kings and Jacks)
|
||||
LihavaLapsi shows: Kc - 9h - Ad - Ts (a pair of Kings)
|
||||
|
||||
ditemelovoi wins: EUR 4.01 (with two pairs, Kings and Jacks)
|
||||
Rake: EUR 0.21
|
||||
|
||||
Game ended 2011-03-21 16:44:53 GMT
|
||||
|
||||
Game # 2137879886 - Omaha High Pot Limit EUR 0.02/0.04 - Table "Chikumi"
|
||||
|
||||
Players(max 6):
|
||||
LihavaLapsi (EUR 4.00 in seat 1)
|
||||
kikekake (EUR 2.15 in seat 2)
|
||||
RealFish82 (EUR 4.00 in seat 3)
|
||||
lukasp2 (EUR 2.28 in seat 4)
|
||||
F4UXR34L (EUR 3.96 in seat 5)
|
||||
ditemelovoi (EUR 12.37 in seat 6)
|
||||
|
||||
Dealer: lukasp2
|
||||
Small Blind: F4UXR34L (0.02)
|
||||
Big Blind: ditemelovoi (0.04)
|
||||
|
||||
F4UXR34L was dealt: Td - 5h - Kc - 3d
|
||||
|
||||
LihavaLapsi Fold
|
||||
kikekake Fold
|
||||
RealFish82 Fold
|
||||
lukasp2 Raise (0.14)
|
||||
F4UXR34L Fold
|
||||
ditemelovoi Call (0.10)
|
||||
|
||||
Flop Qs - 4c - Jh
|
||||
|
||||
ditemelovoi Check
|
||||
lukasp2 Bet (0.22)
|
||||
ditemelovoi Raise (0.96)
|
||||
lukasp2 Fold
|
||||
ditemelovoi Payback (0.74)
|
||||
|
||||
ditemelovoi didn't show hand
|
||||
|
||||
ditemelovoi wins: EUR 0.71
|
||||
Rake: EUR 0.03
|
||||
|
||||
Game ended 2011-03-21 16:46:00 GMT
|
||||
|
||||
Game # 2137880240 - Omaha High Pot Limit EUR 0.02/0.04 - Table "Chikumi"
|
||||
|
||||
Players(max 6):
|
||||
LihavaLapsi (EUR 4.00 in seat 1)
|
||||
kikekake (EUR 2.15 in seat 2)
|
||||
RealFish82 (EUR 4.00 in seat 3)
|
||||
lukasp2 (EUR 1.92 in seat 4)
|
||||
F4UXR34L (EUR 4.00 in seat 5)
|
||||
ditemelovoi (EUR 12.72 in seat 6)
|
||||
|
||||
Dealer: F4UXR34L
|
||||
Small Blind: ditemelovoi (0.02)
|
||||
Big Blind: LihavaLapsi (0.04)
|
||||
|
||||
F4UXR34L was dealt: 8s - 5c - 8c - 6d
|
||||
|
||||
kikekake Raise (0.14)
|
||||
RealFish82 Fold
|
||||
lukasp2 Fold
|
||||
F4UXR34L Fold
|
||||
ditemelovoi Call (0.12)
|
||||
LihavaLapsi Call (0.10)
|
||||
|
||||
Flop 6h - Js - 5s
|
||||
|
||||
ditemelovoi Check
|
||||
LihavaLapsi Check
|
||||
kikekake Bet (0.42)
|
||||
ditemelovoi Fold
|
||||
LihavaLapsi Fold
|
||||
kikekake Payback (0.42)
|
||||
|
||||
kikekake didn't show hand
|
||||
|
||||
kikekake wins: EUR 0.40
|
||||
Rake: EUR 0.02
|
||||
|
||||
Game ended 2011-03-21 16:46:39 GMT
|
||||
|
||||
Game # 2137880464 - Omaha High Pot Limit EUR 0.02/0.04 - Table "Chikumi"
|
||||
|
||||
Players(max 6):
|
||||
LihavaLapsi (EUR 3.86 in seat 1)
|
||||
kikekake (EUR 2.41 in seat 2)
|
||||
RealFish82 (EUR 4.00 in seat 3)
|
||||
lukasp2 (EUR 1.92 in seat 4)
|
||||
F4UXR34L (EUR 4.00 in seat 5)
|
||||
ditemelovoi (EUR 12.58 in seat 6)
|
||||
|
||||
Dealer: ditemelovoi
|
||||
Small Blind: LihavaLapsi (0.02)
|
||||
Big Blind: kikekake (0.04)
|
||||
|
||||
F4UXR34L was dealt: 3s - 7h - Th - Jc
|
||||
|
||||
RealFish82 Fold
|
||||
lukasp2 Raise (0.14)
|
||||
F4UXR34L Fold
|
||||
ditemelovoi Call (0.14)
|
||||
LihavaLapsi Fold
|
||||
kikekake Call (0.10)
|
||||
|
||||
Flop 2h - 8d - 8s
|
||||
|
||||
kikekake Check
|
||||
lukasp2 Check
|
||||
ditemelovoi Bet (0.44)
|
||||
kikekake Fold
|
||||
lukasp2 Fold
|
||||
ditemelovoi Payback (0.44)
|
||||
|
||||
ditemelovoi didn't show hand
|
||||
|
||||
ditemelovoi wins: EUR 0.42
|
||||
Rake: EUR 0.02
|
||||
|
||||
Game ended 2011-03-21 16:47:45 GMT
|
||||
|
||||
Game # 2137883876 - Omaha High Pot Limit EUR 0.02/0.04 - Table "Chikumi"
|
||||
|
||||
Players(max 6):
|
||||
LihavaLapsi (EUR 3.84 in seat 1)
|
||||
kikekake (EUR 2.27 in seat 2)
|
||||
RealFish82 (EUR 4.00 in seat 3)
|
||||
lukasp2 (EUR 1.78 in seat 4)
|
||||
F4UXR34L (EUR 4.00 in seat 5)
|
||||
ditemelovoi (EUR 12.86 in seat 6)
|
||||
|
||||
Dealer: LihavaLapsi
|
||||
Small Blind: kikekake (0.02)
|
||||
Big Blind: RealFish82 (0.04)
|
||||
|
||||
F4UXR34L was dealt: 3c - Ah - 4s - 9c
|
||||
|
||||
lukasp2 Fold
|
||||
F4UXR34L Fold
|
||||
ditemelovoi Fold
|
||||
LihavaLapsi Fold
|
||||
kikekake Call (0.02)
|
||||
RealFish82 Check
|
||||
|
||||
Flop 7s - 5s - Jd
|
||||
|
||||
kikekake Bet (0.04)
|
||||
RealFish82 Call (0.04)
|
||||
|
||||
Turn 7s - 5s - Jd - As
|
||||
|
||||
kikekake Bet (0.16)
|
||||
RealFish82 Call (0.16)
|
||||
|
||||
River 7s - 5s - Jd - As - 6s
|
||||
|
||||
kikekake Bet (0.48)
|
||||
RealFish82 Call (0.48)
|
||||
|
||||
kikekake shows: Js - 3d - 3s - Jc (a flush, Ace high)
|
||||
RealFish82 shows: 9s - Qs - 2c - 5d (a flush, Ace and Queen high)
|
||||
|
||||
RealFish82 wins: EUR 1.37 (with a flush, Ace and Queen high)
|
||||
Rake: EUR 0.07
|
||||
|
||||
Game ended 2011-03-21 16:48:35 GMT
|
||||
|
||||
Game # 2137884196 - Omaha High Pot Limit EUR 0.02/0.04 - Table "Chikumi"
|
||||
|
||||
Players(max 6):
|
||||
LihavaLapsi (EUR 3.84 in seat 1)
|
||||
kikekake (EUR 1.55 in seat 2)
|
||||
RealFish82 (EUR 4.65 in seat 3)
|
||||
lukasp2 (EUR 1.78 in seat 4)
|
||||
F4UXR34L (EUR 4.00 in seat 5)
|
||||
ditemelovoi (EUR 12.86 in seat 6)
|
||||
|
||||
Dealer: kikekake
|
||||
Small Blind: RealFish82 (0.02)
|
||||
Big Blind: lukasp2 (0.04)
|
||||
|
||||
F4UXR34L was dealt: 5s - 2h - Ad - 2s
|
||||
|
||||
F4UXR34L Fold
|
||||
ditemelovoi Call (0.04)
|
||||
LihavaLapsi Call (0.04)
|
||||
kikekake Call (0.04)
|
||||
RealFish82 Call (0.02)
|
||||
lukasp2 Check
|
||||
|
||||
Flop 7d - 2c - 8h
|
||||
|
||||
RealFish82 Check
|
||||
lukasp2 Check
|
||||
ditemelovoi Check
|
||||
LihavaLapsi Bet (0.15)
|
||||
kikekake Call (0.15)
|
||||
RealFish82 Fold
|
||||
lukasp2 Call (0.15)
|
||||
ditemelovoi Call (0.15)
|
||||
|
||||
Turn 7d - 2c - 8h - 4d
|
||||
|
||||
lukasp2 Check
|
||||
ditemelovoi Bet (0.80)
|
||||
LihavaLapsi Fold
|
||||
kikekake All-In (1.36)
|
||||
lukasp2 Fold
|
||||
ditemelovoi Call (0.56)
|
||||
|
||||
River 7d - 2c - 8h - 4d - 4h
|
||||
|
||||
ditemelovoi shows: 6s - 4c - Jc - 8c (a full house, Fours full of Eights)
|
||||
kikekake shows: 5c - 7c - Jd - 6c (a straight, Eight high)
|
||||
|
||||
ditemelovoi wins: EUR 3.35 (with a full house, Fours full of Eights)
|
||||
Rake: EUR 0.17
|
||||
|
||||
Game ended 2011-03-21 16:50:35 GMT
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,175 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
#Copyright 2008-2011 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.
|
||||
|
||||
#This is intended mostly for regression testing
|
||||
|
||||
import sys
|
||||
import MySQLdb
|
||||
from optparse import OptionParser
|
||||
import fpdb_util_lib as ful
|
||||
|
||||
parser = OptionParser()
|
||||
parser.add_option("-n", "--handNumber", "--hand", type="int",
|
||||
help="Number of the hand to print")
|
||||
parser.add_option("-p", "--password", help="The password for the MySQL user")
|
||||
parser.add_option("-s", "--site", default="PokerStars",
|
||||
help="Name of the site (as written in the history files)")
|
||||
|
||||
(options, sys.argv) = parser.parse_args()
|
||||
|
||||
if options.handNumber==None or options.site==None:
|
||||
print "please supply a hand number and site name. TODO: make this work"
|
||||
|
||||
db = MySQLdb.connect("localhost", "fpdb", options.password, "fpdb")
|
||||
cursor = db.cursor()
|
||||
print "Connected to MySQL on localhost. Print Hand Utility"
|
||||
|
||||
cursor.execute("SELECT id FROM Sites WHERE name=%s", (options.site,))
|
||||
siteId=cursor.fetchone()[0]
|
||||
print "options.site:",options.site,"siteId:",siteId
|
||||
|
||||
print ""
|
||||
print "From Table Hands"
|
||||
print "================"
|
||||
|
||||
cursor.execute("""SELECT Hands.* FROM Hands INNER JOIN Gametypes
|
||||
ON Hands.gametypeId = Gametypes.id WHERE Gametypes.siteId=%s AND Hands.siteHandNo=%s""",
|
||||
(siteId, options.handNumber))
|
||||
handsResult=cursor.fetchone()
|
||||
handId=handsResult[0]
|
||||
tableName=handsResult[1]
|
||||
siteHandNo=options.handNumber
|
||||
gametypeId=handsResult[3]
|
||||
handStart=handsResult[4]
|
||||
#skip importTime
|
||||
seats=handsResult[6]
|
||||
maxSeats=handsResult[7]
|
||||
print "handId:", handId, " tableName:", tableName, " siteHandNo:", siteHandNo, " gametypeId:", gametypeId, " handStart:", handStart, " seats:", seats, " maxSeats:", maxSeats
|
||||
|
||||
|
||||
print ""
|
||||
print "From Table Gametypes"
|
||||
print "===================="
|
||||
|
||||
cursor.execute("""SELECT type, base, category, limitType, hiLo FROM Gametypes WHERE id=%s""", (gametypeId, ))
|
||||
typeEtc=cursor.fetchone()
|
||||
type=typeEtc[0]
|
||||
base=typeEtc[1]
|
||||
category=typeEtc[2]
|
||||
limitType=typeEtc[3]
|
||||
hiLo=typeEtc[4]
|
||||
print "type:", type, " base:", base, " category:", category, " limitType:", limitType, " hiLo:", hiLo
|
||||
|
||||
gtString=""
|
||||
doBets=False
|
||||
if base=="hold":
|
||||
cursor.execute("SELECT smallBlind FROM Gametypes WHERE id=%s", (gametypeId, ))
|
||||
sb=cursor.fetchone()[0]
|
||||
cursor.execute("SELECT bigBlind FROM Gametypes WHERE id=%s", (gametypeId, ))
|
||||
bb=cursor.fetchone()[0]
|
||||
gtString=("sb: "+str(sb)+" bb: "+str(bb))
|
||||
if (limitType=="fl"):
|
||||
doBets=True
|
||||
elif base=="stud":
|
||||
doBets=True
|
||||
|
||||
if doBets:
|
||||
cursor.execute("SELECT smallBet FROM Gametypes WHERE id=%s", (gametypeId, ))
|
||||
sbet=cursor.fetchone()[0]
|
||||
cursor.execute("SELECT bigBet FROM Gametypes WHERE id=%s", (gametypeId, ))
|
||||
bbet=cursor.fetchone()[0]
|
||||
gtString+=(" sbet: "+str(sbet)+" bbet: "+str(bbet))
|
||||
print gtString
|
||||
|
||||
if type=="ring":
|
||||
pass
|
||||
elif type=="tour":
|
||||
#cursor.execute("SELECT tourneys_players_id FROM hands
|
||||
cursor.execute("""SELECT DISTINCT TourneysPlayers.id
|
||||
FROM Hands JOIN HandsPlayers ON HandsPlayers.handId=Hands.id
|
||||
JOIN TourneysPlayers ON HandsPlayers.tourneysPlayersId=TourneysPlayers.id
|
||||
WHERE Hands.id=%s""", (hand_id,))
|
||||
handsPlayersIds=cursor.fetchall()
|
||||
print "dbg hands_players_ids:",handsPlayersIds
|
||||
|
||||
print ""
|
||||
print "From Table Tourneys"
|
||||
print "==================="
|
||||
print "TODO"
|
||||
|
||||
|
||||
print ""
|
||||
print "From Table TourneysPlayers"
|
||||
print "=========================="
|
||||
print "TODO"
|
||||
else:
|
||||
print "invalid type:",type
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
print ""
|
||||
print "From Table BoardCards"
|
||||
print "====================="
|
||||
|
||||
if (category=="holdem" or category=="omahahi" or category=="omahahilo"):
|
||||
cursor.execute("""SELECT * FROM BoardCards WHERE handId=%s""",(handId, ))
|
||||
bc=cursor.fetchone()
|
||||
print "Board cards:", ful.cards2String(bc[2:])
|
||||
|
||||
|
||||
print ""
|
||||
print "From Table HandsPlayers"
|
||||
print "======================="
|
||||
cursor.execute("""SELECT * FROM HandsPlayers WHERE handId=%s""",(handId, ))
|
||||
handsPlayers=cursor.fetchall()
|
||||
playerNames=[]
|
||||
for i in range (len(handsPlayers)):
|
||||
line=handsPlayers[i][2:]
|
||||
playerNames.append(ful.id_to_player_name(cursor, line[0]))
|
||||
printstr="playerName:"+playerNames[i]+" playerStartcash:"+str(line[1])
|
||||
if (category=="holdem" or category=="omahahi" or category=="omahahilo"):
|
||||
printstr+=" position:"+ful.position2String(line[2])+" cards:"
|
||||
if (category=="holdem"):
|
||||
printstr+=ful.cards2String(line[5:9])
|
||||
else:
|
||||
printstr+=ful.cards2String(line[5:13])
|
||||
elif (category=="razz" or category=="studhi" or category=="studhilo"):
|
||||
printstr+=" ante:"+str(line[4])+" cards:"
|
||||
printstr+=ful.cards2String(line[5:19])
|
||||
else:
|
||||
print "TODO: raise error, print_hand.py"
|
||||
sys.exit(1)
|
||||
printstr+=" winnings:"+str(line[19])+" rake:"+str(line[20])
|
||||
print printstr
|
||||
|
||||
|
||||
print ""
|
||||
print "From Table HandsActions"
|
||||
print "======================="
|
||||
for i in range (len(handsPlayers)):
|
||||
cursor.execute("""SELECT * FROM HandsActions WHERE handPlayerId=%s""",(handsPlayers[i][0], ))
|
||||
handsActions=cursor.fetchall()
|
||||
for j in range (len(handsActions)):
|
||||
line=handsActions[j][2:]
|
||||
printstr="playerName:"+playerNames[i]
|
||||
printstr+=" street:"+ful.street_int2String(category, line[0])+" streetActionNo:"+str(line[1])+" action:"+line[2]
|
||||
printstr+=" amount:"+str(line[4])
|
||||
print printstr
|
||||
|
||||
cursor.close()
|
||||
db.close()
|
||||
sys.exit(0)
|
|
@ -1,158 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
#Copyright 2008-2011 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.
|
||||
|
||||
#This is intended mostly for regression testing
|
||||
|
||||
import sys
|
||||
import MySQLdb
|
||||
from optparse import OptionParser
|
||||
import fpdb_util_lib as ful
|
||||
|
||||
parser = OptionParser()
|
||||
parser.add_option("-b", "--bigBet", default="4", type="int", help="big bet in cent")
|
||||
parser.add_option("-c", "--cat", "--category", default="holdem", help="Category, e.g. holdem or studhilo")
|
||||
parser.add_option("-e", "--seats", default="7", type="int", help="number of active seats")
|
||||
parser.add_option("-g", "--gameType", default="ring", help="Whether its a ringgame (ring) or a tournament (tour)")
|
||||
parser.add_option("-l", "--limit", "--limitType", default="fl", help="Limit Type, one of: nl, pl, fl, cn, cp")
|
||||
parser.add_option("-n", "--name", "--playername", default="Player_1", help="Name of the player to print")
|
||||
parser.add_option("-o", "--position", default="B", help="Position, can be B, S, D, C, M or E (see tabledesign.html)")
|
||||
parser.add_option("-p", "--password", help="The password for the MySQL user")
|
||||
parser.add_option("-s", "--site", default="PokerStars", help="Name of the site (as written in the history files)")
|
||||
|
||||
(options, sys.argv) = parser.parse_args()
|
||||
|
||||
db = MySQLdb.connect("localhost", "fpdb", options.password, "fpdb")
|
||||
cursor = db.cursor()
|
||||
print "Connected to MySQL on localhost. Print Player Flags Utility"
|
||||
|
||||
print ""
|
||||
print "Basic Data"
|
||||
print "=========="
|
||||
print "bigBet:",options.bigBet, "category:",options.cat, "limitType:", options.limit, "name:", options.name, "gameType:", options.gameType, "site:", options.site
|
||||
|
||||
cursor.execute("SELECT id FROM Sites WHERE name=%s", (options.site,))
|
||||
siteId=cursor.fetchone()[0]
|
||||
|
||||
cursor.execute("SELECT id FROM Gametypes WHERE bigBet=%s AND category=%s AND siteId=%s AND limitType=%s AND type=%s", (options.bigBet, options.cat, siteId, options.limit, options.gameType))
|
||||
gametypeId=cursor.fetchone()[0]
|
||||
|
||||
cursor.execute("SELECT id FROM Players WHERE name=%s", (options.name,))
|
||||
playerId=cursor.fetchone()[0]
|
||||
|
||||
#print "debug: gametypeId:", gametypeId, "playerId:", playerId, "options.seats:", options.seats, "options.position:", options.position
|
||||
cursor.execute("SELECT id FROM HudCache WHERE gametypeId=%s AND playerId=%s AND activeSeats=%s AND position=%s",(gametypeId, playerId, options.seats, options.position))
|
||||
hudDataId=cursor.fetchone()[0]
|
||||
|
||||
print "siteId:", siteId, "gametypeId:", gametypeId, "playerId:", playerId, "hudDataId:", hudDataId
|
||||
|
||||
print ""
|
||||
print "HUD Raw Hand Counts"
|
||||
print "==================="
|
||||
|
||||
cursor.execute ("SELECT HDs, street0VPI, street0Aggr, street0_3B4BChance, street0_3B4BDone FROM HudCache WHERE id=%s", (hudDataId,))
|
||||
fields=cursor.fetchone()
|
||||
print "HDs:",fields[0]
|
||||
print "street0VPI:",fields[1]
|
||||
print "street0Aggr:",fields[2]
|
||||
print "street0_3B4BChance:",fields[3]
|
||||
print "street0_3B4BDone:",fields[4]
|
||||
print ""
|
||||
|
||||
cursor.execute ("SELECT street1Seen, street2Seen, street3Seen, street4Seen, sawShowdown FROM HudCache WHERE id=%s", (hudDataId,))
|
||||
fields=cursor.fetchone()
|
||||
print "street1Seen:",fields[0]
|
||||
print "street2Seen:",fields[1]
|
||||
print "street3Seen:",fields[2]
|
||||
print "street4Seen:",fields[3]
|
||||
print "sawShowdown:",fields[4]
|
||||
print ""
|
||||
|
||||
cursor.execute ("SELECT street1Aggr, street2Aggr, street3Aggr, street4Aggr FROM HudCache WHERE id=%s", (hudDataId,))
|
||||
fields=cursor.fetchone()
|
||||
print "street1Aggr:",fields[0]
|
||||
print "street2Aggr:",fields[1]
|
||||
print "street3Aggr:",fields[2]
|
||||
print "street4Aggr:",fields[3]
|
||||
print ""
|
||||
|
||||
cursor.execute ("SELECT otherRaisedStreet1, otherRaisedStreet2, otherRaisedStreet3, otherRaisedStreet4, foldToOtherRaisedStreet1, foldToOtherRaisedStreet2, foldToOtherRaisedStreet3, foldToOtherRaisedStreet4 FROM HudCache WHERE id=%s", (hudDataId,))
|
||||
fields=cursor.fetchone()
|
||||
print "otherRaisedStreet1:",fields[0]
|
||||
print "otherRaisedStreet2:",fields[1]
|
||||
print "otherRaisedStreet3:",fields[2]
|
||||
print "otherRaisedStreet4:",fields[3]
|
||||
print "foldToOtherRaisedStreet1:",fields[4]
|
||||
print "foldToOtherRaisedStreet2:",fields[5]
|
||||
print "foldToOtherRaisedStreet3:",fields[6]
|
||||
print "foldToOtherRaisedStreet4:",fields[7]
|
||||
print ""
|
||||
|
||||
cursor.execute ("SELECT wonWhenSeenStreet1, wonAtSD FROM HudCache WHERE id=%s", (hudDataId,))
|
||||
fields=cursor.fetchone()
|
||||
print "wonWhenSeenStreet1:",fields[0]
|
||||
print "wonAtSD:",fields[1]
|
||||
|
||||
cursor.execute ("SELECT stealAttemptChance, stealAttempted, foldBbToStealChance, foldedBbToSteal, foldSbToStealChance, foldedSbToSteal FROM HudCache WHERE id=%s", (hudDataId,))
|
||||
fields=cursor.fetchone()
|
||||
print "stealAttemptChance:",fields[0]
|
||||
print "stealAttempted:",fields[1]
|
||||
print "foldBbToStealChance:",fields[2]
|
||||
print "foldedBbToSteal:",fields[3]
|
||||
print "foldSbToStealChance:",fields[4]
|
||||
print "foldedSbToSteal:",fields[5]
|
||||
|
||||
cursor.execute ("SELECT street1CBChance, street1CBDone, street2CBChance, street2CBDone, street3CBChance, street3CBDone, street4CBChance, street4CBDone FROM HudCache WHERE id=%s", (hudDataId,))
|
||||
fields=cursor.fetchone()
|
||||
print "street1CBChance:",fields[0]
|
||||
print "street1CBDone:",fields[1]
|
||||
print "street2CBChance:",fields[2]
|
||||
print "street2CBDone:",fields[3]
|
||||
print "street3CBChance:",fields[4]
|
||||
print "street3CBDone:",fields[5]
|
||||
print "street4CBChance:",fields[6]
|
||||
print "street4CBDone:",fields[7]
|
||||
|
||||
cursor.execute ("SELECT foldToStreet1CBChance, foldToStreet1CBDone, foldToStreet2CBChance, foldToStreet2CBDone, foldToStreet3CBChance, foldToStreet3CBDone, foldToStreet4CBChance, foldToStreet4CBDone FROM HudCache WHERE id=%s", (hudDataId,))
|
||||
fields=cursor.fetchone()
|
||||
print "foldToStreet1CBChance:",fields[0]
|
||||
print "foldToStreet1CBDone:",fields[1]
|
||||
print "foldToStreet2CBChance:",fields[2]
|
||||
print "foldToStreet2CBDone:",fields[3]
|
||||
print "foldToStreet3CBChance:",fields[4]
|
||||
print "foldToStreet3CBDone:",fields[5]
|
||||
print "foldToStreet4CBChance:",fields[6]
|
||||
print "foldToStreet4CBDone:",fields[7]
|
||||
|
||||
cursor.execute ("SELECT totalProfit FROM HudCache WHERE id=%s", (hudDataId,))
|
||||
fields=cursor.fetchone()
|
||||
print "totalProfit:",fields[0]
|
||||
|
||||
cursor.execute ("SELECT street1CheckCallRaiseChance, street1CheckCallRaiseDone, street2CheckCallRaiseChance, street2CheckCallRaiseDone, street3CheckCallRaiseChance, street3CheckCallRaiseDone, street4CheckCallRaiseChance, street4CheckCallRaiseDone FROM HudCache WHERE id=%s", (hudDataId,))
|
||||
fields=cursor.fetchone()
|
||||
print "street1CheckCallRaiseChance:",fields[0]
|
||||
print "street1CheckCallRaiseDone:",fields[1]
|
||||
print "street2CheckCallRaiseChance:",fields[2]
|
||||
print "street2CheckCallRaiseDone:",fields[3]
|
||||
print "street3CheckCallRaiseChance:",fields[4]
|
||||
print "street3CheckCallRaiseDone:",fields[5]
|
||||
print "street4CheckCallRaiseChance:",fields[6]
|
||||
print "street4CheckCallRaiseDone:",fields[7]
|
||||
|
||||
|
||||
cursor.close()
|
||||
db.close()
|
||||
sys.exit(0)
|
|
@ -1,80 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
#Copyright 2008-2011 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 sys
|
||||
|
||||
def cards2String(arr):
|
||||
if (len(arr)%2!=0):
|
||||
print "TODO: raise error, cards2String failed, uneven length of arr"
|
||||
sys.exit(1)
|
||||
result = ""
|
||||
for i in range (len(arr)/2):
|
||||
if arr[i*2]==0:
|
||||
result+="??"
|
||||
else:
|
||||
if arr[i*2]==14:
|
||||
result+="A"
|
||||
elif arr[i*2]==13:
|
||||
result+="K"
|
||||
elif arr[i*2]==12:
|
||||
result+="Q"
|
||||
elif arr[i*2]==11:
|
||||
result+="J"
|
||||
elif arr[i*2]==10:
|
||||
result+="T"
|
||||
elif (arr[i*2]>=2 and arr[i*2]<=9):
|
||||
result+=str(arr[i*2])
|
||||
else:
|
||||
print "TODO: raise error, cards2String failed, arr[i*2]:", arr[i*2], "len(arr):", len(arr)
|
||||
print "arr:",arr
|
||||
sys.exit(1)
|
||||
result+=arr[i*2+1]
|
||||
result+=" "
|
||||
return result[:-1]
|
||||
|
||||
def id_to_player_name(cursor, id):
|
||||
cursor.execute("SELECT name FROM Players WHERE id=%s", (id, ))
|
||||
return cursor.fetchone()[0]
|
||||
|
||||
def position2String(pos):
|
||||
if pos=="B":
|
||||
return "BB"
|
||||
elif pos=="S":
|
||||
return "SB"
|
||||
elif pos=="0":
|
||||
return "Btn"
|
||||
else:
|
||||
return (pos+" off Btn")
|
||||
|
||||
def street_int2String(category, street):
|
||||
if (category=="holdem" or category=="omahahi" or category=="omahahilo"):
|
||||
if street==0:
|
||||
return "Preflop"
|
||||
elif street==1:
|
||||
return "Flop "
|
||||
elif street==2:
|
||||
return "Turn "
|
||||
elif street==3:
|
||||
return "River "
|
||||
else:
|
||||
print "TODO: raise error, fpdb_util_lib.py street_int2String invalid street no"
|
||||
sys.exit(1)
|
||||
elif (category=="razz" or category=="studhi" or category=="studhilo"):
|
||||
return str(street)
|
||||
else:
|
||||
print "TODO: raise error, fpdb_util_lib.py street_int2String invalid category"
|
||||
sys.exit(1)
|
|
@ -1,271 +0,0 @@
|
|||
Full Tilt Poker Game #6929537410: Table Green (deep) - $0.50/$1 - Pot Limit Omaha Hi - 17:15:44 ET - 2008/06/22
|
||||
Seat 1: player16 ($94.90)
|
||||
Seat 2: player25 ($147)
|
||||
Seat 3: player18 ($62.80)
|
||||
Seat 4: player19 ($136.55)
|
||||
Seat 5: play-er26 ($56.05)
|
||||
Seat 6: player21 ($252.95)
|
||||
Seat 7: player22 ($200)
|
||||
Seat 8: player23 ($162.50)
|
||||
Seat 9: player24 ($270.70)
|
||||
player24 posts the small blind of $0.50
|
||||
player16 posts the big blind of $1
|
||||
player22 posts $1
|
||||
The button is in seat #8
|
||||
*** HOLE CARDS ***
|
||||
player25 folds
|
||||
player25 stands up
|
||||
player18 folds
|
||||
player19 folds
|
||||
play-er26 folds
|
||||
player21 folds
|
||||
player22 checks
|
||||
player23 calls $1
|
||||
player17 adds $100
|
||||
player24 calls $0.50
|
||||
player16 checks
|
||||
*** FLOP *** [4s Kc 8s]
|
||||
player24 has 15 seconds left to act
|
||||
player24 checks
|
||||
player16 checks
|
||||
player22 checks
|
||||
player23 checks
|
||||
*** TURN *** [4s Kc 8s] [6s]
|
||||
player24 checks
|
||||
player16 checks
|
||||
player22 checks
|
||||
player23 bets $4
|
||||
player24 calls $4
|
||||
player16 folds
|
||||
player22 folds
|
||||
*** RIVER *** [4s Kc 8s 6s] [Qc]
|
||||
player24 checks
|
||||
player23 checks
|
||||
*** SHOW DOWN ***
|
||||
player23 shows [Td 5s 3d Js] a flush, Jack high
|
||||
player24 mucks
|
||||
player23 wins the pot ($11.40) with a flush, Jack high
|
||||
*** SUMMARY ***
|
||||
Total pot $12 | Rake $0.60
|
||||
Board: [4s Kc 8s 6s Qc]
|
||||
Seat 1: player16 (big blind) folded on the Turn
|
||||
Seat 2: player25 didn't bet (folded)
|
||||
Seat 3: player18 didn't bet (folded)
|
||||
Seat 4: player19 didn't bet (folded)
|
||||
Seat 5: play-er26 didn't bet (folded)
|
||||
Seat 6: player21 didn't bet (folded)
|
||||
Seat 7: player22 folded on the Turn
|
||||
Seat 8: player23 (button) collected ($11.40)
|
||||
Seat 9: player24 (small blind) mucked
|
||||
|
||||
|
||||
|
||||
Full Tilt Poker Game #6929553738: Table Green (deep) - $0.50/$1 - Pot Limit Omaha Hi - 17:17:06 ET - 2008/06/22
|
||||
Seat 1: player16 ($93.90)
|
||||
Seat 2: player17 ($100)
|
||||
Seat 3: player18 ($62.80)
|
||||
Seat 4: player19 ($136.55)
|
||||
Seat 5: play-er26 ($56.05)
|
||||
Seat 6: player21 ($252.95)
|
||||
Seat 7: player22 ($199)
|
||||
Seat 8: player23 ($168.90)
|
||||
Seat 9: player24 ($265.70)
|
||||
player16 posts the small blind of $0.50
|
||||
player17 posts the big blind of $1
|
||||
The button is in seat #9
|
||||
*** HOLE CARDS ***
|
||||
player18 folds
|
||||
play-er26 stands up
|
||||
player19 raises to $2
|
||||
play-er26 folds
|
||||
player21 calls $2
|
||||
player22 has 15 seconds left to act
|
||||
player22 folds
|
||||
player23 folds
|
||||
player24 folds
|
||||
player16 calls $1.50
|
||||
player17 calls $1
|
||||
*** FLOP *** [Jc 4c Kc]
|
||||
player16 checks
|
||||
player17 checks
|
||||
player19 checks
|
||||
player21 checks
|
||||
*** TURN *** [Jc 4c Kc] [7h]
|
||||
player16 checks
|
||||
player17 checks
|
||||
player19 bets $3.50
|
||||
player21 folds
|
||||
player16 folds
|
||||
player17 calls $3.50
|
||||
*** RIVER *** [Jc 4c Kc 7h] [8s]
|
||||
player17 checks
|
||||
player19 has 15 seconds left to act
|
||||
player19 bets $10
|
||||
player17 calls $10
|
||||
*** SHOW DOWN ***
|
||||
player19 shows [4s Tc As Ac] a flush, Ace high
|
||||
player17 mucks
|
||||
player19 wins the pot ($33.25) with a flush, Ace high
|
||||
*** SUMMARY ***
|
||||
Total pot $35 | Rake $1.75
|
||||
Board: [Jc 4c Kc 7h 8s]
|
||||
Seat 1: player16 (small blind) folded on the Turn
|
||||
Seat 2: player17 (big blind) mucked
|
||||
Seat 3: player18 didn't bet (folded)
|
||||
Seat 4: player19 collected ($33.25)
|
||||
Seat 5: play-er26 didn't bet (folded)
|
||||
Seat 6: player21 folded on the Turn
|
||||
Seat 7: player22 didn't bet (folded)
|
||||
Seat 8: player23 didn't bet (folded)
|
||||
Seat 9: player24 (button) didn't bet (folded)
|
||||
|
||||
|
||||
|
||||
Full Tilt Poker Game #6929572212: Table Green (deep) - $0.50/$1 - Pot Limit Omaha Hi - 17:18:40 ET - 2008/06/22
|
||||
Seat 1: player16 ($91.90)
|
||||
Seat 2: player17 ($84.50)
|
||||
Seat 3: player18 ($62.80)
|
||||
Seat 4: player19 ($154.30)
|
||||
Seat 6: player21 ($250.95)
|
||||
Seat 7: player22 ($199)
|
||||
Seat 8: player23 ($168.90)
|
||||
Seat 9: player24 ($265.70)
|
||||
player17 posts the small blind of $0.50
|
||||
player18 posts the big blind of $1
|
||||
The button is in seat #1
|
||||
*** HOLE CARDS ***
|
||||
player19 folds
|
||||
player21 folds
|
||||
player20 adds $50
|
||||
player22 folds
|
||||
player23 folds
|
||||
player24 folds
|
||||
player20 is sitting out
|
||||
player16 raises to $2
|
||||
player17 folds
|
||||
player18 folds
|
||||
Uncalled bet of $1 returned to player16
|
||||
player16 mucks
|
||||
player16 wins the pot ($2.50)
|
||||
*** SUMMARY ***
|
||||
Total pot $2.50 | Rake $0
|
||||
Seat 1: player16 (button) collected ($2.50), mucked
|
||||
Seat 2: player17 (small blind) folded before the Flop
|
||||
Seat 3: player18 (big blind) folded before the Flop
|
||||
Seat 4: player19 didn't bet (folded)
|
||||
Seat 6: player21 didn't bet (folded)
|
||||
Seat 7: player22 didn't bet (folded)
|
||||
Seat 8: player23 didn't bet (folded)
|
||||
Seat 9: player24 didn't bet (folded)
|
||||
|
||||
|
||||
|
||||
Full Tilt Poker Game #6929576743: Table Green (deep) - $0.50/$1 - Pot Limit Omaha Hi - 17:19:03 ET - 2008/06/22
|
||||
Seat 1: player16 ($93.40)
|
||||
Seat 2: player17 ($84)
|
||||
Seat 3: player18 ($61.80)
|
||||
Seat 4: player19 ($154.30)
|
||||
Seat 5: player20 ($50), is sitting out
|
||||
Seat 6: player21 ($250.95)
|
||||
Seat 7: player22 ($199)
|
||||
Seat 8: player23 ($168.90)
|
||||
Seat 9: player24 ($265.70)
|
||||
player18 posts the small blind of $0.50
|
||||
player19 posts the big blind of $1
|
||||
The button is in seat #2
|
||||
*** HOLE CARDS ***
|
||||
player20 has returned
|
||||
player21 calls $1
|
||||
player22 folds
|
||||
player23 calls $1
|
||||
player24 calls $1
|
||||
player16 raises to $4
|
||||
player17 folds
|
||||
player18 folds
|
||||
player19 folds
|
||||
player21 folds
|
||||
player23 folds
|
||||
player17 is sitting out
|
||||
player24 has 15 seconds left to act
|
||||
player24 calls $3
|
||||
*** FLOP *** [Tc 9s 7h]
|
||||
player24 checks
|
||||
player16 has 15 seconds left to act
|
||||
player16 bets $8
|
||||
player24 folds
|
||||
Uncalled bet of $8 returned to player16
|
||||
player16 mucks
|
||||
player16 wins the pot ($10.95)
|
||||
*** SUMMARY ***
|
||||
Total pot $11.50 | Rake $0.55
|
||||
Board: [Tc 9s 7h]
|
||||
Seat 1: player16 collected ($10.95), mucked
|
||||
Seat 2: player17 (button) didn't bet (folded)
|
||||
Seat 3: player18 (small blind) folded before the Flop
|
||||
Seat 4: player19 (big blind) folded before the Flop
|
||||
Seat 5: player20 is sitting out
|
||||
Seat 6: player21 folded before the Flop
|
||||
Seat 7: player22 didn't bet (folded)
|
||||
Seat 8: player23 folded before the Flop
|
||||
Seat 9: player24 folded on the Flop
|
||||
|
||||
|
||||
|
||||
Full Tilt Poker Game #6929587483: Table Green (deep) - $0.50/$1 - Pot Limit Omaha Hi - 17:19:57 ET - 2008/06/22
|
||||
Seat 1: player16 ($100.35)
|
||||
Seat 2: player17 ($84), is sitting out
|
||||
Seat 3: player18 ($61.30)
|
||||
Seat 4: player19 ($153.30)
|
||||
Seat 5: player20 ($50)
|
||||
Seat 6: player21 ($249.95)
|
||||
Seat 7: player22 ($199)
|
||||
Seat 8: player23 ($167.90)
|
||||
Seat 9: player24 ($261.70)
|
||||
player19 posts the small blind of $0.50
|
||||
player20 posts the big blind of $1
|
||||
The button is in seat #3
|
||||
*** HOLE CARDS ***
|
||||
player21 folds
|
||||
player22 folds
|
||||
player21 stands up
|
||||
player23 calls $1
|
||||
player24 calls $1
|
||||
player16 folds
|
||||
player18 folds
|
||||
player19 calls $0.50
|
||||
player20 checks
|
||||
*** FLOP *** [Jd Td 2c]
|
||||
roguern adds $100
|
||||
player19 bets $3
|
||||
player20 folds
|
||||
player23 folds
|
||||
player24 has 15 seconds left to act
|
||||
player24 raises to $11
|
||||
player19 raises to $37
|
||||
player24 raises to $115
|
||||
player19 raises to $152.30, and is all in
|
||||
player24 calls $37.30
|
||||
player19 shows [Jc Jh 7s 5h]
|
||||
player24 shows [Kh Ad 6h Qd]
|
||||
*** TURN *** [Jd Td 2c] [As]
|
||||
*** RIVER *** [Jd Td 2c As] [8s]
|
||||
player19 shows three of a kind, Jacks
|
||||
player24 shows a straight, Ace high
|
||||
player24 wins the pot ($305.60) with a straight, Ace high
|
||||
player19 is sitting out
|
||||
*** SUMMARY ***
|
||||
Total pot $308.60 | Rake $3
|
||||
Board: [Jd Td 2c As 8s]
|
||||
Seat 1: player16 didn't bet (folded)
|
||||
Seat 2: player17 is sitting out
|
||||
Seat 3: player18 (button) didn't bet (folded)
|
||||
Seat 4: player19 (small blind) showed [Jc Jh 7s 5h] and lost with three of a kind, Jacks
|
||||
Seat 5: player20 (big blind) folded on the Flop
|
||||
Seat 6: player21 didn't bet (folded)
|
||||
Seat 7: player22 didn't bet (folded)
|
||||
Seat 8: player23 folded on the Flop
|
||||
Seat 9: player24 showed [Kh Ad 6h Qd] and won ($305.60) with a straight, Ace high
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
Full Tilt Poker Game #6367428246: Table Mountain Mesa - $15/$30 Ante $3 - Limit Stud H/L - 23:47:38 ET - 2008/05/10
|
||||
Seat 1: Player_8 ($446), is sitting out
|
||||
Seat 2: Play er9 ($303.50)
|
||||
Seat 3: P layer10 ($613), is sitting out
|
||||
Seat 4: Player_11 ($164)
|
||||
Seat 5: Player1 2 ($543.50), is sitting out
|
||||
Seat 6: Player13 ($912.50)
|
||||
Seat 7: Player14 ($430), is sitting out
|
||||
Seat 8: Player15 ($531.50)
|
||||
Player15 antes $3
|
||||
Player_11 antes $3
|
||||
Player13 antes $3
|
||||
Play er9 antes $3
|
||||
*** 3RD STREET ***
|
||||
Dealt to Play er9 [2s]
|
||||
Dealt to Player_11 [3c]
|
||||
Dealt to Player13 [8c]
|
||||
Dealt to Player15 [Jc]
|
||||
Play er9 is low with [2s]
|
||||
Play er9 brings in for $5
|
||||
Player_11 folds
|
||||
Player13 completes it to $15
|
||||
Player15 folds
|
||||
Play er9 calls $10
|
||||
*** 4TH STREET ***
|
||||
Dealt to Play er9 [2s] [6c]
|
||||
Dealt to Player13 [8c] [5h]
|
||||
Player13 bets $15
|
||||
Play er9 calls $15
|
||||
*** 5TH STREET ***
|
||||
Dealt to Play er9 [2s 6c] [Ac]
|
||||
Dealt to Player13 [8c 5h] [Ah]
|
||||
Player13 bets $30
|
||||
Play er9 calls $30
|
||||
*** 6TH STREET ***
|
||||
Dealt to Play er9 [2s 6c Ac] [2c]
|
||||
Dealt to Player13 [8c 5h Ah] [Jd]
|
||||
Play er9 bets $30
|
||||
Player13 calls $30
|
||||
*** 7TH STREET ***
|
||||
Play er9 bets $30
|
||||
Player13 calls $30
|
||||
*** SHOW DOWN ***
|
||||
Play er9 shows [5c 4h 2s 6c Ac 2c 2h] three of a kind, Twos, for high and 6,5,4,2,A, for low
|
||||
Player13 mucks
|
||||
Play er9 wins the high pot ($125) with three of a kind, Twos
|
||||
Play er9 wins the low pot ($125) with 6,5,4,2,A
|
||||
*** SUMMARY ***
|
||||
Total pot $252 | Rake $2
|
||||
Seat 1: Player_8 is sitting out
|
||||
Seat 2: Play er9 collected ($250)
|
||||
Seat 3: P layer10 is sitting out
|
||||
Seat 4: Player_11 folded on 3rd St.
|
||||
Seat 5: Player1 2 is sitting out
|
||||
Seat 6: Player13 mucked
|
||||
Seat 7: Player14 is sitting out
|
||||
Seat 8: Player15 folded on 3rd St.
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
This file is outdated!
|
||||
|
||||
Connected to MySQL on localhost. Print Hand Utility
|
||||
options.site: Full Tilt Poker site_id: 1
|
||||
|
||||
From Table sites
|
||||
====================
|
||||
site_name: Full Tilt Poker
|
||||
|
||||
From Table gametypes
|
||||
====================
|
||||
type: category: studhilo limit_type:
|
||||
sb: bb: sbet: bbet:
|
||||
|
||||
From Table hands
|
||||
================
|
||||
site_hand_no: 6367428246 hand_start: 2008-05-11 04:47:38 seat_count: 4
|
||||
|
||||
From Table hands_players
|
||||
========================
|
||||
player_name:Play er9 player_startcash:30350 ante:300 cards:5c 4h 2s 6c Ac 2c 2h winnings:25000 rake:200
|
||||
player_name:Player_11 player_startcash:16400 ante:300 cards:?? ?? 3c ?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:Player13 player_startcash:91250 ante:300 cards:?? ?? 8c 5h Ah Jd ?? winnings:0 rake:0
|
||||
player_name:Player15 player_startcash:53150 ante:300 cards:?? ?? Jc ?? ?? ?? ?? winnings:0 rake:0
|
||||
|
||||
From Table hands_actions
|
||||
========================
|
||||
player_name:Play er9 actionCount:0 street:3 streetActionNo:0 action:blind amount:500
|
||||
player_name:Play er9 actionCount:1 street:3 streetActionNo:1 action:call amount:1000
|
||||
player_name:Play er9 actionCount:2 street:4 streetActionNo:0 action:call amount:1500
|
||||
player_name:Play er9 actionCount:3 street:5 streetActionNo:0 action:call amount:3000
|
||||
player_name:Play er9 actionCount:4 street:6 streetActionNo:0 action:bet amount:3000
|
||||
player_name:Play er9 actionCount:5 street:7 streetActionNo:0 action:bet amount:3000
|
||||
player_name:Player_11 actionCount:0 street:3 streetActionNo:0 action:fold amount:0
|
||||
player_name:Player13 actionCount:0 street:3 streetActionNo:0 action:bet amount:1500
|
||||
player_name:Player13 actionCount:1 street:4 streetActionNo:0 action:bet amount:1500
|
||||
player_name:Player13 actionCount:2 street:5 streetActionNo:0 action:bet amount:3000
|
||||
player_name:Player13 actionCount:3 street:6 streetActionNo:0 action:call amount:3000
|
||||
player_name:Player13 actionCount:4 street:7 streetActionNo:0 action:call amount:3000
|
||||
player_name:Player15 actionCount:0 street:3 streetActionNo:0 action:fold amount:0
|
|
@ -1,48 +0,0 @@
|
|||
This file is outdated!
|
||||
|
||||
Connected to MySQL on localhost. Print Hand Utility
|
||||
options.site: Full Tilt Poker site_id: 1
|
||||
From Table hands
|
||||
================
|
||||
site_hand_no: 6929537410 hand_start: 2008-06-22 22:15:44 seat_count: 9 category: omahahi
|
||||
Board cards: 4s Kc 8s 6s Qc
|
||||
|
||||
From Table hands_players
|
||||
========================
|
||||
player_name:player16 player_startcash:9490 position:BB cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:player25 player_startcash:14700 position:6 off Btn cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:player18 player_startcash:6280 position:5 off Btn cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:player19 player_startcash:13655 position:4 off Btn cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:play-er26 player_startcash:5605 position:3 off Btn cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:player21 player_startcash:25295 position:2 off Btn cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:player22 player_startcash:20000 position:1 off Btn cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:player23 player_startcash:16250 position:Btn cards:Td 5s 3d Js winnings:1140 rake:60
|
||||
player_name:player24 player_startcash:27070 position:SB cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
|
||||
From Table hands_actions
|
||||
========================
|
||||
player_name:player16 actionCount:0 street:Preflop streetActionNo:0 action:blind amount:100
|
||||
player_name:player16 actionCount:1 street:Preflop streetActionNo:1 action:check amount:0
|
||||
player_name:player16 actionCount:2 street:Flop streetActionNo:0 action:check amount:0
|
||||
player_name:player16 actionCount:3 street:Turn streetActionNo:0 action:check amount:0
|
||||
player_name:player16 actionCount:4 street:Turn streetActionNo:1 action:fold amount:0
|
||||
player_name:player25 actionCount:0 street:Preflop streetActionNo:0 action:fold amount:0
|
||||
player_name:player18 actionCount:0 street:Preflop streetActionNo:0 action:fold amount:0
|
||||
player_name:player19 actionCount:0 street:Preflop streetActionNo:0 action:fold amount:0
|
||||
player_name:play-er26 actionCount:0 street:Preflop streetActionNo:0 action:fold amount:0
|
||||
player_name:player21 actionCount:0 street:Preflop streetActionNo:0 action:fold amount:0
|
||||
player_name:player22 actionCount:0 street:Preflop streetActionNo:0 action:blind amount:100
|
||||
player_name:player22 actionCount:1 street:Preflop streetActionNo:1 action:check amount:0
|
||||
player_name:player22 actionCount:2 street:Flop streetActionNo:0 action:check amount:0
|
||||
player_name:player22 actionCount:3 street:Turn streetActionNo:0 action:check amount:0
|
||||
player_name:player22 actionCount:4 street:Turn streetActionNo:1 action:fold amount:0
|
||||
player_name:player23 actionCount:0 street:Preflop streetActionNo:0 action:call amount:100
|
||||
player_name:player23 actionCount:1 street:Flop streetActionNo:0 action:check amount:0
|
||||
player_name:player23 actionCount:2 street:Turn streetActionNo:0 action:bet amount:400
|
||||
player_name:player23 actionCount:3 street:River streetActionNo:0 action:check amount:0
|
||||
player_name:player24 actionCount:0 street:Preflop streetActionNo:0 action:blind amount:50
|
||||
player_name:player24 actionCount:1 street:Preflop streetActionNo:1 action:call amount:50
|
||||
player_name:player24 actionCount:2 street:Flop streetActionNo:0 action:check amount:0
|
||||
player_name:player24 actionCount:3 street:Turn streetActionNo:0 action:check amount:0
|
||||
player_name:player24 actionCount:4 street:Turn streetActionNo:1 action:call amount:400
|
||||
player_name:player24 actionCount:5 street:River streetActionNo:0 action:check amount:0
|
|
@ -1,47 +0,0 @@
|
|||
This file is outdated!
|
||||
|
||||
Connected to MySQL on localhost. Print Hand Utility
|
||||
options.site: Full Tilt Poker site_id: 1
|
||||
From Table hands
|
||||
================
|
||||
site_hand_no: 6929553738 hand_start: 2008-06-22 22:17:06 seat_count: 9 category: omahahi
|
||||
Board cards: Jc 4c Kc 7h 8s
|
||||
|
||||
From Table hands_players
|
||||
========================
|
||||
player_name:player16 player_startcash:9390 position:SB cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:player17 player_startcash:10000 position:BB cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:player18 player_startcash:6280 position:6 off Btn cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:player19 player_startcash:13655 position:5 off Btn cards:4s Tc As Ac winnings:3325 rake:175
|
||||
player_name:play-er26 player_startcash:5605 position:4 off Btn cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:player21 player_startcash:25295 position:3 off Btn cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:player22 player_startcash:19900 position:2 off Btn cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:player23 player_startcash:16890 position:1 off Btn cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
player_name:player24 player_startcash:26570 position:Btn cards:?? ?? ?? ?? winnings:0 rake:0
|
||||
|
||||
From Table hands_actions
|
||||
========================
|
||||
player_name:player16 actionCount:0 street:Preflop streetActionNo:0 action:blind amount:50
|
||||
player_name:player16 actionCount:1 street:Preflop streetActionNo:1 action:call amount:150
|
||||
player_name:player16 actionCount:2 street:Flop streetActionNo:0 action:check amount:0
|
||||
player_name:player16 actionCount:3 street:Turn streetActionNo:0 action:check amount:0
|
||||
player_name:player16 actionCount:4 street:Turn streetActionNo:1 action:fold amount:0
|
||||
player_name:player17 actionCount:0 street:Preflop streetActionNo:0 action:blind amount:100
|
||||
player_name:player17 actionCount:1 street:Preflop streetActionNo:1 action:call amount:100
|
||||
player_name:player17 actionCount:2 street:Flop streetActionNo:0 action:check amount:0
|
||||
player_name:player17 actionCount:3 street:Turn streetActionNo:0 action:check amount:0
|
||||
player_name:player17 actionCount:4 street:Turn streetActionNo:1 action:call amount:350
|
||||
player_name:player17 actionCount:5 street:River streetActionNo:0 action:check amount:0
|
||||
player_name:player17 actionCount:6 street:River streetActionNo:1 action:call amount:1000
|
||||
player_name:player18 actionCount:0 street:Preflop streetActionNo:0 action:fold amount:0
|
||||
player_name:player19 actionCount:0 street:Preflop streetActionNo:0 action:bet amount:200
|
||||
player_name:player19 actionCount:1 street:Flop streetActionNo:0 action:check amount:0
|
||||
player_name:player19 actionCount:2 street:Turn streetActionNo:0 action:bet amount:350
|
||||
player_name:player19 actionCount:3 street:River streetActionNo:0 action:bet amount:1000
|
||||
player_name:play-er26 actionCount:0 street:Preflop streetActionNo:0 action:fold amount:0
|
||||
player_name:player21 actionCount:0 street:Preflop streetActionNo:0 action:call amount:200
|
||||
player_name:player21 actionCount:1 street:Flop streetActionNo:0 action:check amount:0
|
||||
player_name:player21 actionCount:2 street:Turn streetActionNo:0 action:fold amount:0
|
||||
player_name:player22 actionCount:0 street:Preflop streetActionNo:0 action:fold amount:0
|
||||
player_name:player23 actionCount:0 street:Preflop streetActionNo:0 action:fold amount:0
|
||||
player_name:player24 actionCount:0 street:Preflop streetActionNo:0 action:fold amount:0
|
|
@ -1,68 +0,0 @@
|
|||
Connected to MySQL on localhost. Print Player Flags Utility
|
||||
|
||||
Basic Data
|
||||
==========
|
||||
bigBet: 4 category: holdem limitType: fl name: Player_5 gameType: ring site: PokerStars
|
||||
siteId: 2 gametypeId: 1 playerId: 5 hudDataId: 12
|
||||
|
||||
HUD Raw Hand Counts
|
||||
===================
|
||||
HDs: 1
|
||||
street0VPI: 0
|
||||
street0Aggr: 0
|
||||
street0_3B4BChance: 0
|
||||
street0_3B4BDone: 0
|
||||
|
||||
street1Seen: 1
|
||||
street2Seen: 1
|
||||
street3Seen: 1
|
||||
street4Seen: 0
|
||||
sawShowdown: 1
|
||||
|
||||
street1Aggr: 1
|
||||
street2Aggr: 1
|
||||
street3Aggr: 0
|
||||
street4Aggr: 0
|
||||
|
||||
otherRaisedStreet1: 0
|
||||
otherRaisedStreet2: 1
|
||||
otherRaisedStreet3: 1
|
||||
otherRaisedStreet4: 0
|
||||
foldToOtherRaisedStreet1: 0
|
||||
foldToOtherRaisedStreet2: 0
|
||||
foldToOtherRaisedStreet3: 0
|
||||
foldToOtherRaisedStreet4: 0
|
||||
|
||||
wonWhenSeenStreet1: 0.0
|
||||
wonAtSD: 0.0
|
||||
stealAttemptChance: 0
|
||||
stealAttempted: 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:
|
||||
street1CheckCallRaiseChance:
|
||||
street1CheckCallRaiseDone:
|
||||
street2CheckCallRaiseChance:
|
||||
street2CheckCallRaiseDone:
|
||||
street3CheckCallRaiseChance:
|
||||
street3CheckCallRaiseDone:
|
||||
street4CheckCallRaiseChance: 0
|
||||
street4CheckCallRaiseDone: 0
|
|
@ -1,68 +0,0 @@
|
|||
Connected to MySQL on localhost. Print Player Flags Utility
|
||||
|
||||
Basic Data
|
||||
==========
|
||||
bigBet: 50 category: holdem limitType: fl name: player3 gameType: ring site: PokerStars
|
||||
siteId: 2 gametypeId: 2 playerId: 11 hudDataId: 22
|
||||
|
||||
HUD Raw Hand Counts
|
||||
===================
|
||||
HDs: 1
|
||||
street0VPI: 1
|
||||
street0Aggr: 1
|
||||
street0_3B4BChance: 1
|
||||
street0_3B4BDone: 1
|
||||
|
||||
street1Seen: 1
|
||||
street2Seen: 1
|
||||
street3Seen: 1
|
||||
street4Seen: 0
|
||||
sawShowdown: 1
|
||||
|
||||
street1Aggr: 1
|
||||
street2Aggr: 0
|
||||
street3Aggr: 0
|
||||
street4Aggr: 0
|
||||
|
||||
otherRaisedStreet1: 0
|
||||
otherRaisedStreet2:
|
||||
otherRaisedStreet3:
|
||||
otherRaisedStreet4: 0
|
||||
foldToOtherRaisedStreet1: 0
|
||||
foldToOtherRaisedStreet2: 0
|
||||
foldToOtherRaisedStreet3: 0
|
||||
foldToOtherRaisedStreet4: 0
|
||||
|
||||
wonWhenSeenStreet1: 0.0
|
||||
wonAtSD: 0.0
|
||||
stealAttemptChance: 0
|
||||
stealAttempted: 0
|
||||
foldBbToStealChance: 0
|
||||
foldedBbToSteal: 0
|
||||
foldSbToStealChance: 0
|
||||
foldedSbToSteal: 0
|
||||
street1CBChance: 1
|
||||
street1CBDone: 1
|
||||
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:
|
||||
street1CheckCallRaiseChance: 0
|
||||
street1CheckCallRaiseDone: 0
|
||||
street2CheckCallRaiseChance: 0
|
||||
street2CheckCallRaiseDone: 0
|
||||
street3CheckCallRaiseChance: 0
|
||||
street3CheckCallRaiseDone: 0
|
||||
street4CheckCallRaiseChance: 0
|
||||
street4CheckCallRaiseDone: 0
|
|
@ -1,68 +0,0 @@
|
|||
Connected to MySQL on localhost. Print Player Flags Utility
|
||||
|
||||
Basic Data
|
||||
==========
|
||||
bigBet: 4 category: holdem limitType: fl name: Player_1 gameType: ring site: PokerStars
|
||||
siteId: 2 gametypeId: 1 playerId: 1 hudDataId: 8
|
||||
|
||||
HUD Raw Hand Counts
|
||||
===================
|
||||
HDs: 2
|
||||
street0VPI: 0
|
||||
street0Aggr: 0
|
||||
street0_3B4BChance: 0
|
||||
street0_3B4BDone: 0
|
||||
|
||||
street1Seen: 0
|
||||
street2Seen: 0
|
||||
street3Seen: 0
|
||||
street4Seen: 0
|
||||
sawShowdown: 0
|
||||
|
||||
street1Aggr: 0
|
||||
street2Aggr: 0
|
||||
street3Aggr: 0
|
||||
street4Aggr: 0
|
||||
|
||||
otherRaisedStreet1: 0
|
||||
otherRaisedStreet2: 0
|
||||
otherRaisedStreet3: 0
|
||||
otherRaisedStreet4: 0
|
||||
foldToOtherRaisedStreet1: 0
|
||||
foldToOtherRaisedStreet2: 0
|
||||
foldToOtherRaisedStreet3: 0
|
||||
foldToOtherRaisedStreet4: 0
|
||||
|
||||
wonWhenSeenStreet1: 0.0
|
||||
wonAtSD: 0.0
|
||||
stealAttemptChance: 0
|
||||
stealAttempted: 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
|
|
@ -1,68 +0,0 @@
|
|||
Connected to MySQL on localhost. Print Player Flags Utility
|
||||
|
||||
Basic Data
|
||||
==========
|
||||
bigBet: 20 category: studhilo limitType: fl name: br1an gameType: ring site: PokerStars
|
||||
siteId: 2 gametypeId: 3 playerId: 21 hudDataId: 32
|
||||
|
||||
HUD Raw Hand Counts
|
||||
===================
|
||||
HDs: 1
|
||||
street0VPI: 0
|
||||
street0Aggr: 0
|
||||
street0_3B4BChance: 0
|
||||
street0_3B4BDone: 0
|
||||
|
||||
street1Seen: 1
|
||||
street2Seen: 1
|
||||
street3Seen: 1
|
||||
street4Seen: 1
|
||||
sawShowdown: 1
|
||||
|
||||
street1Aggr: 0
|
||||
street2Aggr: 0
|
||||
street3Aggr: 0
|
||||
street4Aggr: 0
|
||||
|
||||
otherRaisedStreet1: 0
|
||||
otherRaisedStreet2: 1
|
||||
otherRaisedStreet3: 0
|
||||
otherRaisedStreet4: 1
|
||||
foldToOtherRaisedStreet1: 0
|
||||
foldToOtherRaisedStreet2: 0
|
||||
foldToOtherRaisedStreet3: 0
|
||||
foldToOtherRaisedStreet4: 0
|
||||
|
||||
wonWhenSeenStreet1: 0.0
|
||||
wonAtSD: 0.0
|
||||
stealAttemptChance: 0
|
||||
stealAttempted: 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.47
|
||||
street1CheckCallRaiseChance: 0
|
||||
street1CheckCallRaiseDone: 0
|
||||
street2CheckCallRaiseChance: 0
|
||||
street2CheckCallRaiseDone: 0
|
||||
street3CheckCallRaiseChance: 0
|
||||
street3CheckCallRaiseDone: 0
|
||||
street4CheckCallRaiseChance: 1
|
||||
street4CheckCallRaiseDone: 0
|
|
@ -1,169 +0,0 @@
|
|||
PokerStars Game #14519394979: Hold'em Limit ($0.02/$0.04) - 2008/01/13 - 00:22:15 (ET)
|
||||
Table 'Merope' 10-max Seat #1 is the button
|
||||
Seat 1: Player_1 ($0.75 in chips)
|
||||
Seat 3: Player_2 ($0.59 in chips)
|
||||
Seat 4: Player_3 ($1.47 in chips)
|
||||
Seat 6: Player_4 ($1.98 in chips)
|
||||
Seat 7: Player_5 ($1.22 in chips)
|
||||
Seat 8: Player_6 ($0.48 in chips)
|
||||
Seat 9: Player_7 ($1.39 in chips)
|
||||
Player_2: posts small blind $0.01
|
||||
Player_3: posts big blind $0.02
|
||||
*** HOLE CARDS ***
|
||||
Dealt to Player_7 [Ts Jh]
|
||||
Player_4: raises $0.02 to $0.04
|
||||
Player_5: folds
|
||||
Player_6: folds
|
||||
Player_7: folds
|
||||
Player_1: calls $0.04
|
||||
Player_2: calls $0.03
|
||||
Player_3: folds
|
||||
*** FLOP *** [Qd Th Js]
|
||||
Player_2: checks
|
||||
Player_4: bets $0.02
|
||||
Player_1: calls $0.02
|
||||
Player_2: calls $0.02
|
||||
*** TURN *** [Qd Th Js] [2s]
|
||||
Player_2: checks
|
||||
Player_4: bets $0.04
|
||||
Player_1: calls $0.04
|
||||
Player_2: calls $0.04
|
||||
*** RIVER *** [Qd Th Js 2s] [7s]
|
||||
Player_2: checks
|
||||
Player_4: bets $0.04
|
||||
Player_1: folds
|
||||
Player_2: folds
|
||||
Player_4 collected $0.31 from pot
|
||||
*** SUMMARY ***
|
||||
Total pot $0.32 | Rake $0.01
|
||||
Board [Qd Th Js 2s 7s]
|
||||
Seat 1: Player_1 (button) folded on the River
|
||||
Seat 3: Player_2 (small blind) folded on the River
|
||||
Seat 4: Player_3 (big blind) folded before Flop
|
||||
Seat 6: Player_4 collected ($0.31)
|
||||
Seat 7: Player_5 folded before Flop (didn't bet)
|
||||
Seat 8: Player_6 folded before Flop (didn't bet)
|
||||
Seat 9: Player_7 folded before Flop (didn't bet)
|
||||
|
||||
|
||||
|
||||
PokerStars Game #14519420999: Hold'em Limit ($0.02/$0.04) - 2008/01/13 - 00:23:43 (ET)
|
||||
Table 'Merope' 10-max Seat #4 is the button
|
||||
Seat 1: Player_1 ($0.65 in chips)
|
||||
Seat 3: Player_2 ($0.49 in chips)
|
||||
Seat 4: Player_3 ($1.79 in chips)
|
||||
Seat 6: Player_4 ($2.05 in chips)
|
||||
Seat 7: Player_5 ($1.18 in chips)
|
||||
Seat 8: Player_6 ($0.34 in chips)
|
||||
Seat 9: Player_7 ($1.35 in chips)
|
||||
wakked13 will be allowed to play after the button
|
||||
Player_4: posts small blind $0.01
|
||||
Player_5: posts big blind $0.02
|
||||
*** HOLE CARDS ***
|
||||
Dealt to Player_7 [8d 5d]
|
||||
Player_6 said, "vn"
|
||||
Player_6: folds
|
||||
Player_7: folds
|
||||
Player_1: folds
|
||||
Player_2: calls $0.02
|
||||
Player_3: folds
|
||||
Player_4: calls $0.01
|
||||
Player_5: checks
|
||||
*** FLOP *** [Th Jd 3c]
|
||||
Player_3 said, "ty"
|
||||
Player_4: checks
|
||||
Player_5: bets $0.02
|
||||
Player_2: calls $0.02
|
||||
Player_4: calls $0.02
|
||||
*** TURN *** [Th Jd 3c] [7c]
|
||||
Player_4: checks
|
||||
Player_5: bets $0.04
|
||||
Player_2: raises $0.04 to $0.08
|
||||
Player_4: folds
|
||||
Player_5: calls $0.04
|
||||
*** RIVER *** [Th Jd 3c 7c] [4s]
|
||||
Player_5: checks
|
||||
Player_2: bets $0.04
|
||||
Player_5: calls $0.04
|
||||
*** SHOW DOWN ***
|
||||
Player_2: shows [8s 9s] (a straight, Seven to Jack)
|
||||
Player_5: mucks hand
|
||||
Player_2 collected $0.35 from pot
|
||||
*** SUMMARY ***
|
||||
Total pot $0.36 | Rake $0.01
|
||||
Board [Th Jd 3c 7c 4s]
|
||||
Seat 1: Player_1 folded before Flop (didn't bet)
|
||||
Seat 3: Player_2 showed [8s 9s] and won ($0.35) with a straight, Seven to Jack
|
||||
Seat 4: Player_3 (button) folded before Flop (didn't bet)
|
||||
Seat 6: Player_4 (small blind) folded on the Turn
|
||||
Seat 7: Player_5 (big blind) mucked [Qh Js]
|
||||
Seat 8: Player_6 folded before Flop (didn't bet)
|
||||
Seat 9: Player_7 folded before Flop (didn't bet)
|
||||
|
||||
|
||||
|
||||
PokerStars Game #14519433154: Hold'em Limit ($0.02/$0.04) - 2008/01/13 - 00:24:25 (ET)
|
||||
Table 'Merope' 10-max Seat #6 is the button
|
||||
Seat 1: Player_1 ($0.65 in chips)
|
||||
Seat 3: Player_2 ($0.68 in chips)
|
||||
Seat 4: Player_3 ($1.79 in chips)
|
||||
Seat 6: Player_4 ($2.01 in chips)
|
||||
Seat 7: Player_5 ($1.02 in chips)
|
||||
Seat 8: Player_6 ($0.34 in chips)
|
||||
Seat 9: Player_7 ($1.35 in chips)
|
||||
Player_5: posts small blind $0.01
|
||||
Player_6: posts big blind $0.02
|
||||
wakked13: sits out
|
||||
*** HOLE CARDS ***
|
||||
Dealt to Player_7 [7c Jh]
|
||||
Player_7: folds
|
||||
Player_1: folds
|
||||
Player_2: folds
|
||||
Player_3: calls $0.02
|
||||
Player_4: calls $0.02
|
||||
Player_5: raises $0.02 to $0.04
|
||||
Player_6: calls $0.02
|
||||
Player_3: calls $0.02
|
||||
Player_4: calls $0.02
|
||||
*** FLOP *** [4h 9s Ad]
|
||||
Player_5: checks
|
||||
Player_6: checks
|
||||
Player_3: bets $0.02
|
||||
Player_4: raises $0.02 to $0.04
|
||||
Player_5: folds
|
||||
Player_6: folds
|
||||
Player_3: raises $0.02 to $0.06
|
||||
Player_4: raises $0.02 to $0.08
|
||||
Betting is capped
|
||||
Player_3: calls $0.02
|
||||
*** TURN *** [4h 9s Ad] [Qc]
|
||||
Player_3: bets $0.04
|
||||
Player_4: raises $0.04 to $0.08
|
||||
Player_3: raises $0.04 to $0.12
|
||||
Player_4: raises $0.04 to $0.16
|
||||
Betting is capped
|
||||
Player_3: calls $0.04
|
||||
*** RIVER *** [4h 9s Ad Qc] [Ks]
|
||||
Player_3: bets $0.04
|
||||
Player_4: raises $0.04 to $0.08
|
||||
Player_3: raises $0.04 to $0.12
|
||||
Player_4: raises $0.04 to $0.16
|
||||
Betting is capped
|
||||
Player_3: calls $0.04
|
||||
*** SHOW DOWN ***
|
||||
Player_4: shows [Ac Td] (a pair of Aces)
|
||||
Player_3: shows [Ah 9d] (two pair, Aces and Nines)
|
||||
Player_3 collected $0.92 from pot
|
||||
*** SUMMARY ***
|
||||
Total pot $0.96 | Rake $0.04
|
||||
Board [4h 9s Ad Qc Ks]
|
||||
Seat 1: Player_1 folded before Flop (didn't bet)
|
||||
Seat 3: Player_2 folded before Flop (didn't bet)
|
||||
Seat 4: Player_3 showed [Ah 9d] and won ($0.92) with two pair, Aces and Nines
|
||||
Seat 6: Player_4 (button) showed [Ac Td] and lost with a pair of Aces
|
||||
Seat 7: Player_5 (small blind) folded on the Flop
|
||||
Seat 8: Player_6 (big blind) folded on the Flop
|
||||
Seat 9: Player_7 folded before Flop (didn't bet)
|
||||
|
||||
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
PokerStars Game #19546605871: Hold'em Limit ($0.25/$0.50) - 2008/08/11 - 20:15:41 (ET)
|
||||
Table 'Pyxis' 10-max Seat #1 is the button
|
||||
Seat 1: player10 ($7.75 in chips)
|
||||
Seat 2: player1 ($11.55 in chips)
|
||||
Seat 3: player2 ($8.25 in chips)
|
||||
Seat 4: player3 ($0.90 in chips)
|
||||
Seat 5: player4 ($10003.50 in chips)
|
||||
Seat 6: player5 ($13.50 in chips)
|
||||
Seat 7: player6 ($8 in chips)
|
||||
Seat 8: player7 ($11.80 in chips)
|
||||
Seat 9: player8 ($11.05 in chips)
|
||||
Seat 10: player9 ($11.85 in chips)
|
||||
player1: posts small blind $0.10
|
||||
player1 said, "little holy water on the river lol"
|
||||
player2: posts big blind $0.25
|
||||
*** HOLE CARDS ***
|
||||
Dealt to player6 [Ad Ts]
|
||||
player3: calls $0.25
|
||||
player4: folds
|
||||
player5: raises $0.25 to $0.50
|
||||
player6: calls $0.50
|
||||
player7: folds
|
||||
player8: folds
|
||||
player9: folds
|
||||
player10: folds
|
||||
player1: folds
|
||||
player2: folds
|
||||
player3: raises $0.25 to $0.75
|
||||
player5: calls $0.25
|
||||
player6: calls $0.25
|
||||
*** FLOP *** [Js 5d 4c]
|
||||
player3: bets $0.15 and is all-in
|
||||
player5: calls $0.15
|
||||
player6: calls $0.15
|
||||
*** TURN *** [Js 5d 4c] [4s]
|
||||
player5: bets $0.50
|
||||
player6: calls $0.50
|
||||
*** RIVER *** [Js 5d 4c 4s] [6d]
|
||||
player5: bets $0.50
|
||||
player6: calls $0.50
|
||||
*** SHOW DOWN ***
|
||||
player5: shows [Qc Ac] (a pair of Fours)
|
||||
player6: mucks hand
|
||||
player5 collected $1.90 from side pot
|
||||
player3: shows [9c 7c] (a pair of Fours - lower kicker)
|
||||
player5 collected $2.95 from main pot
|
||||
*** SUMMARY ***
|
||||
Total pot $5.05 Main pot $2.95. Side pot $1.90. | Rake $0.20
|
||||
Board [Js 5d 4c 4s 6d]
|
||||
Seat 1: player10 (button) folded before Flop (didn't bet)
|
||||
Seat 2: player1 (small blind) folded before Flop
|
||||
Seat 3: player2 (big blind) folded before Flop
|
||||
Seat 4: player3 showed [9c 7c] and lost with a pair of Fours
|
||||
Seat 5: player4 folded before Flop (didn't bet)
|
||||
Seat 6: player5 showed [Qc Ac] and won ($4.85) with a pair of Fours
|
||||
Seat 7: player6 mucked [Ad Ts]
|
||||
Seat 8: player7 folded before Flop (didn't bet)
|
||||
Seat 9: player8 folded before Flop (didn't bet)
|
||||
Seat 10: player9 folded before Flop (didn't bet)
|
||||
|
||||
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
PokerStars Game #19546637866: Hold'em Limit ($0.25/$0.50) - 2008/08/11 - 20:17:04 (ET)
|
||||
Table 'Pyxis' 10-max Seat #2 is the button
|
||||
Seat 1: player1 ($7.75 in chips)
|
||||
Seat 2: player2 ($11.45 in chips)
|
||||
Seat 5: player3 ($10003.50 in chips)
|
||||
Seat 6: player4 ($16.45 in chips)
|
||||
Seat 7: player5 ($6.10 in chips)
|
||||
Seat 8: player6 ($11.80 in chips)
|
||||
Seat 9: player7 ($11.05 in chips)
|
||||
Seat 10: player8 ($11.85 in chips)
|
||||
player9 leaves the table
|
||||
player10: is sitting out
|
||||
player10 leaves the table
|
||||
player3: posts small blind $0.10
|
||||
player4: posts big blind $0.25
|
||||
*** HOLE CARDS ***
|
||||
Dealt to player5 [Jh 5d]
|
||||
Mac Fun K joins the table at seat #4
|
||||
player5: folds
|
||||
player6: folds
|
||||
player7: folds
|
||||
player8: folds
|
||||
player1: raises $0.25 to $0.50
|
||||
player2: folds
|
||||
player3: folds
|
||||
player4: folds
|
||||
Uncalled bet ($0.25) returned to player1
|
||||
player1 collected $0.60 from pot
|
||||
player1: doesn't show hand
|
||||
*** SUMMARY ***
|
||||
Total pot $0.60 | Rake $0
|
||||
Seat 1: player1 collected ($0.60)
|
||||
Seat 2: player2 (button) folded before Flop (didn't bet)
|
||||
Seat 5: player3 (small blind) folded before Flop
|
||||
Seat 6: player4 (big blind) folded before Flop
|
||||
Seat 7: player5 folded before Flop (didn't bet)
|
||||
Seat 8: player6 folded before Flop (didn't bet)
|
||||
Seat 9: player7 folded before Flop (didn't bet)
|
||||
Seat 10: player8 folded before Flop (didn't bet)
|
||||
|
||||
|
||||
|
|
@ -1,130 +0,0 @@
|
|||
PokerStars Game #15043388146: 7 Card Stud Hi/Lo Limit ($0.10/$0.20) - 2008/02/03 - 22:04:15 (ET)
|
||||
Table 'Lydia' 8-max
|
||||
Seat 2: olimpicon99 ($5.31 in chips)
|
||||
Seat 4: PokerPig55 ($1.58 in chips)
|
||||
Seat 5: VISTA GIRL ($0.83 in chips)
|
||||
Seat 6: br1an ($5.10 in chips)
|
||||
Seat 7: steffen780 ($4 in chips)
|
||||
Seat 8: willowdale ($3.92 in chips)
|
||||
olimpicon99: posts the ante $0.02
|
||||
PokerPig55: posts the ante $0.02
|
||||
VISTA GIRL: posts the ante $0.02
|
||||
br1an: posts the ante $0.02
|
||||
steffen780: posts the ante $0.02
|
||||
willowdale: posts the ante $0.02
|
||||
*** 3rd STREET ***
|
||||
Dealt to olimpicon99 [8c]
|
||||
Dealt to PokerPig55 [Kh]
|
||||
Dealt to VISTA GIRL [8h]
|
||||
Dealt to br1an [2d]
|
||||
Dealt to steffen780 [Kc 9h 9c]
|
||||
Dealt to willowdale [5s]
|
||||
br1an: brings in for $0.05
|
||||
steffen780: calls $0.05
|
||||
willowdale: calls $0.05
|
||||
olimpicon99: folds
|
||||
olimpicon99 leaves the table
|
||||
PokerPig55: folds
|
||||
VISTA GIRL: folds
|
||||
*** 4th STREET ***
|
||||
Dealt to br1an [2d] [Qh]
|
||||
Dealt to steffen780 [Kc 9h 9c] [5c]
|
||||
Dealt to willowdale [5s] [4s]
|
||||
br1an: checks
|
||||
steffen780: checks
|
||||
willowdale: checks
|
||||
*** 5th STREET ***
|
||||
Dealt to br1an [2d Qh] [6d]
|
||||
Dealt to steffen780 [Kc 9h 9c 5c] [8s]
|
||||
Dealt to willowdale [5s 4s] [Ad]
|
||||
willowdale: bets $0.20
|
||||
br1an: calls $0.20
|
||||
steffen780: folds
|
||||
*** 6th STREET ***
|
||||
Dealt to br1an [2d Qh 6d] [6h]
|
||||
Dealt to willowdale [5s 4s Ad] [5h]
|
||||
br1an: checks
|
||||
willowdale: checks
|
||||
*** RIVER ***
|
||||
br1an: checks
|
||||
willowdale: bets $0.20
|
||||
br1an: calls $0.20
|
||||
*** SHOW DOWN ***
|
||||
willowdale: shows [3s 4d 5s 4s Ad 5h 2c] (HI: a straight, Ace to Five; LO: 5,4,3,2,A)
|
||||
br1an: shows [4c 7d 2d Qh 6d 6h 2h] (HI: two pair, Sixes and Deuces)
|
||||
willowdale collected $0.51 from pot
|
||||
willowdale collected $0.51 from pot
|
||||
*** SUMMARY ***
|
||||
Total pot $1.07 | Rake $0.05
|
||||
Seat 2: olimpicon99 folded on the 3rd Street (didn't bet)
|
||||
Seat 4: PokerPig55 folded on the 3rd Street (didn't bet)
|
||||
Seat 5: VISTA GIRL folded on the 3rd Street (didn't bet)
|
||||
Seat 6: br1an showed [4c 7d 2d Qh 6d 6h 2h] and lost with HI: two pair, Sixes and Deuces
|
||||
Seat 7: steffen780 folded on the 5th Street
|
||||
Seat 8: willowdale showed [3s 4d 5s 4s Ad 5h 2c] and won ($1.02) with HI: a straight, Ace to Five; LO: 5,4,3,2,A
|
||||
|
||||
|
||||
|
||||
PokerStars Game #20711747191: Razz Limit ($1/$2) - 2008/09/26 14:36:50 ET
|
||||
Table 'Siwa III' 8-max
|
||||
Seat 2: dainmat ($63.15 in chips)
|
||||
Seat 3: fnJ's ($30.75 in chips)
|
||||
Seat 4: ambythegreat ($24.90 in chips)
|
||||
Seat 5: jt studd ($39.90 in chips)
|
||||
Seat 6: KyleHruby ($11.55 in chips)
|
||||
Seat 7: nutOmatic ($71.30 in chips)
|
||||
dainmat: posts the ante $0.10
|
||||
fnJ's: posts the ante $0.10
|
||||
ambythegreat: posts the ante $0.10
|
||||
jt studd: posts the ante $0.10
|
||||
KyleHruby: posts the ante $0.10
|
||||
nutOmatic: posts the ante $0.10
|
||||
*** 3rd STREET ***
|
||||
Dealt to dainmat [Ts]
|
||||
Dealt to fnJ's [3s]
|
||||
Dealt to ambythegreat [5h]
|
||||
Dealt to jt studd [Ad]
|
||||
Dealt to KyleHruby [As]
|
||||
Dealt to nutOmatic [6d Kd Th]
|
||||
dainmat: brings in for $0.50
|
||||
fnJ's: calls $0.50
|
||||
ambythegreat: raises $0.50 to $1
|
||||
garnishgut joins the table at seat #1
|
||||
jt studd: folds
|
||||
KyleHruby: folds
|
||||
nutOmatic: folds
|
||||
dainmat: folds
|
||||
fnJ's: calls $0.50
|
||||
*** 4th STREET ***
|
||||
Dealt to fnJ's [3s] [6h]
|
||||
Dealt to ambythegreat [5h] [4c]
|
||||
ambythegreat: bets $1
|
||||
fnJ's: calls $1
|
||||
*** 5th STREET ***
|
||||
Dealt to fnJ's [3s 6h] [2h]
|
||||
Dealt to ambythegreat [5h 4c] [Kh]
|
||||
fnJ's: bets $2
|
||||
ambythegreat: calls $2
|
||||
*** 6th STREET ***
|
||||
Dealt to fnJ's [3s 6h 2h] [2c]
|
||||
Dealt to ambythegreat [5h 4c Kh] [5s]
|
||||
fnJ's: bets $2
|
||||
ambythegreat: calls $2
|
||||
*** RIVER ***
|
||||
fnJ's: bets $2
|
||||
ambythegreat: calls $2
|
||||
*** SHOW DOWN ***
|
||||
fnJ's: shows [9d 5c 3s 6h 2h 2c 4h] (Lo: 6,5,4,3,2)
|
||||
ambythegreat: mucks hand
|
||||
fnJ's collected $16.35 from pot
|
||||
*** SUMMARY ***
|
||||
Total pot $17.10 | Rake $0.75
|
||||
Seat 2: dainmat folded on the 3rd Street
|
||||
Seat 3: fnJ's showed [9d 5c 3s 6h 2h 2c 4h] and won ($16.35) with Lo: 6,5,4,3,2
|
||||
Seat 4: ambythegreat mucked [6s 7h 5h 4c Kh 5s Jc]
|
||||
Seat 5: jt studd folded on the 3rd Street (didn't bet)
|
||||
Seat 6: KyleHruby folded on the 3rd Street (didn't bet)
|
||||
Seat 7: nutOmatic folded on the 3rd Street (didn't bet)
|
||||
|
||||
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
Connected to MySQL on localhost. Print Hand Utility
|
||||
options.site: PokerStars siteId: 2
|
||||
|
||||
From Table Hands
|
||||
================
|
||||
handId: 1 tableName: Merope siteHandNo: 14519394979 gametypeId: 1 handStart: 2008-01-13 05:22:15 seats: 7 maxSeats: 10
|
||||
|
||||
From Table Gametypes
|
||||
====================
|
||||
type: ring base: hold category: holdem limitType: fl hiLo: h
|
||||
sb: 1 bb: 2 sbet: 2 bbet: 4
|
||||
|
||||
From Table BoardCards
|
||||
=====================
|
||||
Board cards: Qd Th Js 2s 7s
|
||||
|
||||
From Table HandsPlayers
|
||||
=======================
|
||||
playerName:Player_1 playerStartcash:75 position:Btn cards:?? ?? winnings:0 rake:0
|
||||
playerName:Player_2 playerStartcash:59 position:SB cards:?? ?? winnings:0 rake:0
|
||||
playerName:Player_3 playerStartcash:147 position:BB cards:?? ?? winnings:0 rake:0
|
||||
playerName:Player_4 playerStartcash:198 position:4 off Btn cards:?? ?? winnings:31 rake:1
|
||||
playerName:Player_5 playerStartcash:122 position:3 off Btn cards:?? ?? winnings:0 rake:0
|
||||
playerName:Player_6 playerStartcash:48 position:2 off Btn cards:?? ?? winnings:0 rake:0
|
||||
playerName:Player_7 playerStartcash:139 position:1 off Btn cards:Ts Jh winnings:0 rake:0
|
||||
|
||||
From Table HandsActions
|
||||
=======================
|
||||
playerName:Player_1 street:Preflop streetActionNo:6 action:call amount:4
|
||||
playerName:Player_1 street:Flop streetActionNo:2 action:call amount:2
|
||||
playerName:Player_1 street:Turn streetActionNo:2 action:call amount:4
|
||||
playerName:Player_1 street:River streetActionNo:2 action:fold amount:0
|
||||
playerName:Player_2 street:Preflop streetActionNo:0 action:blind amount:1
|
||||
playerName:Player_2 street:Preflop streetActionNo:7 action:call amount:3
|
||||
playerName:Player_2 street:Flop streetActionNo:0 action:check amount:0
|
||||
playerName:Player_2 street:Flop streetActionNo:3 action:call amount:2
|
||||
playerName:Player_2 street:Turn streetActionNo:0 action:check amount:0
|
||||
playerName:Player_2 street:Turn streetActionNo:3 action:call amount:4
|
||||
playerName:Player_2 street:River streetActionNo:0 action:check amount:0
|
||||
playerName:Player_2 street:River streetActionNo:3 action:fold amount:0
|
||||
playerName:Player_3 street:Preflop streetActionNo:1 action:blind amount:2
|
||||
playerName:Player_3 street:Preflop streetActionNo:8 action:fold amount:0
|
||||
playerName:Player_4 street:Preflop streetActionNo:2 action:bet amount:4
|
||||
playerName:Player_4 street:Flop streetActionNo:1 action:bet amount:2
|
||||
playerName:Player_4 street:Turn streetActionNo:1 action:bet amount:4
|
||||
playerName:Player_4 street:River streetActionNo:1 action:bet amount:4
|
||||
playerName:Player_5 street:Preflop streetActionNo:3 action:fold amount:0
|
||||
playerName:Player_6 street:Preflop streetActionNo:4 action:fold amount:0
|
||||
playerName:Player_7 street:Preflop streetActionNo:5 action:fold amount:0
|
|
@ -1,49 +0,0 @@
|
|||
Connected to MySQL on localhost. Print Hand Utility
|
||||
options.site: PokerStars siteId: 2
|
||||
|
||||
From Table Hands
|
||||
================
|
||||
handId: 2 tableName: Merope siteHandNo: 14519420999 gametypeId: 1 handStart: 2008-01-13 05:23:43 seats: 7 maxSeats: 10
|
||||
|
||||
From Table Gametypes
|
||||
====================
|
||||
type: ring base: hold category: holdem limitType: fl hiLo: h
|
||||
sb: 1 bb: 2 sbet: 2 bbet: 4
|
||||
|
||||
From Table BoardCards
|
||||
=====================
|
||||
Board cards: Th Jd 3c 7c 4s
|
||||
|
||||
From Table HandsPlayers
|
||||
=======================
|
||||
playerName:Player_1 playerStartcash:65 position:2 off Btn cards:?? ?? winnings:0 rake:0
|
||||
playerName:Player_2 playerStartcash:49 position:1 off Btn cards:8s 9s winnings:35 rake:1
|
||||
playerName:Player_3 playerStartcash:179 position:Btn cards:?? ?? winnings:0 rake:0
|
||||
playerName:Player_4 playerStartcash:205 position:SB cards:?? ?? winnings:0 rake:0
|
||||
playerName:Player_5 playerStartcash:118 position:BB cards:Qh Js winnings:0 rake:0
|
||||
playerName:Player_6 playerStartcash:34 position:4 off Btn cards:?? ?? winnings:0 rake:0
|
||||
playerName:Player_7 playerStartcash:135 position:3 off Btn cards:8d 5d winnings:0 rake:0
|
||||
|
||||
From Table HandsActions
|
||||
=======================
|
||||
playerName:Player_1 street:Preflop streetActionNo:4 action:fold amount:0
|
||||
playerName:Player_2 street:Preflop streetActionNo:5 action:call amount:2
|
||||
playerName:Player_2 street:Flop streetActionNo:2 action:call amount:2
|
||||
playerName:Player_2 street:Turn streetActionNo:2 action:bet amount:8
|
||||
playerName:Player_2 street:River streetActionNo:1 action:bet amount:4
|
||||
playerName:Player_3 street:Preflop streetActionNo:6 action:fold amount:0
|
||||
playerName:Player_4 street:Preflop streetActionNo:0 action:blind amount:1
|
||||
playerName:Player_4 street:Preflop streetActionNo:7 action:call amount:1
|
||||
playerName:Player_4 street:Flop streetActionNo:0 action:check amount:0
|
||||
playerName:Player_4 street:Flop streetActionNo:3 action:call amount:2
|
||||
playerName:Player_4 street:Turn streetActionNo:0 action:check amount:0
|
||||
playerName:Player_4 street:Turn streetActionNo:3 action:fold amount:0
|
||||
playerName:Player_5 street:Preflop streetActionNo:1 action:blind amount:2
|
||||
playerName:Player_5 street:Preflop streetActionNo:8 action:check amount:0
|
||||
playerName:Player_5 street:Flop streetActionNo:1 action:bet amount:2
|
||||
playerName:Player_5 street:Turn streetActionNo:1 action:bet amount:4
|
||||
playerName:Player_5 street:Turn streetActionNo:4 action:call amount:4
|
||||
playerName:Player_5 street:River streetActionNo:0 action:check amount:0
|
||||
playerName:Player_5 street:River streetActionNo:2 action:call amount:4
|
||||
playerName:Player_6 street:Preflop streetActionNo:2 action:fold amount:0
|
||||
playerName:Player_7 street:Preflop streetActionNo:3 action:fold amount:0
|
|
@ -1,58 +0,0 @@
|
|||
Connected to MySQL on localhost. Print Hand Utility
|
||||
options.site: PokerStars siteId: 2
|
||||
|
||||
From Table Hands
|
||||
================
|
||||
handId: 3 tableName: Merope siteHandNo: 14519433154 gametypeId: 1 handStart: 2008-01-13 05:24:25 seats: 7 maxSeats: 10
|
||||
|
||||
From Table Gametypes
|
||||
====================
|
||||
type: ring base: hold category: holdem limitType: fl hiLo: h
|
||||
sb: 1 bb: 2 sbet: 2 bbet: 4
|
||||
|
||||
From Table BoardCards
|
||||
=====================
|
||||
Board cards: 4h 9s Ad Qc Ks
|
||||
|
||||
From Table HandsPlayers
|
||||
=======================
|
||||
playerName:Player_1 playerStartcash:65 position:3 off Btn cards:?? ?? winnings:0 rake:0
|
||||
playerName:Player_2 playerStartcash:68 position:2 off Btn cards:?? ?? winnings:0 rake:0
|
||||
playerName:Player_3 playerStartcash:179 position:1 off Btn cards:Ah 9d winnings:92 rake:4
|
||||
playerName:Player_4 playerStartcash:201 position:Btn cards:Ac Td winnings:0 rake:0
|
||||
playerName:Player_5 playerStartcash:102 position:SB cards:?? ?? winnings:0 rake:0
|
||||
playerName:Player_6 playerStartcash:34 position:BB cards:?? ?? winnings:0 rake:0
|
||||
playerName:Player_7 playerStartcash:135 position:4 off Btn cards:7c Jh winnings:0 rake:0
|
||||
|
||||
From Table HandsActions
|
||||
=======================
|
||||
playerName:Player_1 street:Preflop streetActionNo:3 action:fold amount:0
|
||||
playerName:Player_2 street:Preflop streetActionNo:4 action:fold amount:0
|
||||
playerName:Player_3 street:Preflop streetActionNo:5 action:call amount:2
|
||||
playerName:Player_3 street:Preflop streetActionNo:9 action:call amount:2
|
||||
playerName:Player_3 street:Flop streetActionNo:2 action:bet amount:2
|
||||
playerName:Player_3 street:Flop streetActionNo:6 action:bet amount:4
|
||||
playerName:Player_3 street:Flop streetActionNo:8 action:call amount:2
|
||||
playerName:Player_3 street:Turn streetActionNo:0 action:bet amount:4
|
||||
playerName:Player_3 street:Turn streetActionNo:2 action:bet amount:8
|
||||
playerName:Player_3 street:Turn streetActionNo:4 action:call amount:4
|
||||
playerName:Player_3 street:River streetActionNo:0 action:bet amount:4
|
||||
playerName:Player_3 street:River streetActionNo:2 action:bet amount:8
|
||||
playerName:Player_3 street:River streetActionNo:4 action:call amount:4
|
||||
playerName:Player_4 street:Preflop streetActionNo:6 action:call amount:2
|
||||
playerName:Player_4 street:Preflop streetActionNo:10 action:call amount:2
|
||||
playerName:Player_4 street:Flop streetActionNo:3 action:bet amount:4
|
||||
playerName:Player_4 street:Flop streetActionNo:7 action:bet amount:4
|
||||
playerName:Player_4 street:Turn streetActionNo:1 action:bet amount:8
|
||||
playerName:Player_4 street:Turn streetActionNo:3 action:bet amount:8
|
||||
playerName:Player_4 street:River streetActionNo:1 action:bet amount:8
|
||||
playerName:Player_4 street:River streetActionNo:3 action:bet amount:8
|
||||
playerName:Player_5 street:Preflop streetActionNo:0 action:blind amount:1
|
||||
playerName:Player_5 street:Preflop streetActionNo:7 action:bet amount:3
|
||||
playerName:Player_5 street:Flop streetActionNo:0 action:check amount:0
|
||||
playerName:Player_5 street:Flop streetActionNo:4 action:fold amount:0
|
||||
playerName:Player_6 street:Preflop streetActionNo:1 action:blind amount:2
|
||||
playerName:Player_6 street:Preflop streetActionNo:8 action:call amount:2
|
||||
playerName:Player_6 street:Flop streetActionNo:1 action:check amount:0
|
||||
playerName:Player_6 street:Flop streetActionNo:5 action:fold amount:0
|
||||
playerName:Player_7 street:Preflop streetActionNo:2 action:fold amount:0
|
|
@ -1,43 +0,0 @@
|
|||
Connected to MySQL on localhost. Print Hand Utility
|
||||
options.site: PokerStars siteId: 2
|
||||
|
||||
From Table Hands
|
||||
================
|
||||
handId: 5 tableName: Lydia siteHandNo: 15043388146 gametypeId: 3 handStart: 2008-02-04 03:04:15 seats: 6 maxSeats: 8
|
||||
|
||||
From Table Gametypes
|
||||
====================
|
||||
type: ring base: stud category: studhilo limitType: fl hiLo: s
|
||||
sbet: 10 bbet: 20
|
||||
|
||||
From Table BoardCards
|
||||
=====================
|
||||
|
||||
From Table HandsPlayers
|
||||
=======================
|
||||
playerName:olimpicon99 playerStartcash:531 ante:2 cards:?? ?? 8c ?? ?? ?? ?? winnings:0 rake:0
|
||||
playerName:PokerPig55 playerStartcash:158 ante:2 cards:?? ?? Kh ?? ?? ?? ?? winnings:0 rake:0
|
||||
playerName:VISTA GIRL playerStartcash:83 ante:2 cards:?? ?? 8h ?? ?? ?? ?? winnings:0 rake:0
|
||||
playerName:br1an playerStartcash:510 ante:2 cards:4c 7d 2d Qh 6d 6h 2h winnings:0 rake:0
|
||||
playerName:steffen780 playerStartcash:400 ante:2 cards:Kc 9h 9c 5c 8s ?? ?? winnings:0 rake:0
|
||||
playerName:willowdale playerStartcash:392 ante:2 cards:3s 4d 5s 4s Ad 5h 2c winnings:102 rake:5
|
||||
|
||||
From Table HandsActions
|
||||
=======================
|
||||
playerName:olimpicon99 street:0 streetActionNo:3 action:fold amount:0
|
||||
playerName:PokerPig55 street:0 streetActionNo:4 action:fold amount:0
|
||||
playerName:VISTA GIRL street:0 streetActionNo:5 action:fold amount:0
|
||||
playerName:br1an street:0 streetActionNo:0 action:blind amount:5
|
||||
playerName:br1an street:1 streetActionNo:0 action:check amount:0
|
||||
playerName:br1an street:2 streetActionNo:1 action:call amount:20
|
||||
playerName:br1an street:3 streetActionNo:0 action:check amount:0
|
||||
playerName:br1an street:4 streetActionNo:0 action:check amount:0
|
||||
playerName:br1an street:4 streetActionNo:2 action:call amount:20
|
||||
playerName:steffen780 street:0 streetActionNo:1 action:call amount:5
|
||||
playerName:steffen780 street:1 streetActionNo:1 action:check amount:0
|
||||
playerName:steffen780 street:2 streetActionNo:2 action:fold amount:0
|
||||
playerName:willowdale street:0 streetActionNo:2 action:call amount:5
|
||||
playerName:willowdale street:1 streetActionNo:2 action:check amount:0
|
||||
playerName:willowdale street:2 streetActionNo:0 action:bet amount:20
|
||||
playerName:willowdale street:3 streetActionNo:1 action:check amount:0
|
||||
playerName:willowdale street:4 streetActionNo:1 action:bet amount:20
|
|
@ -1,44 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
#Copyright 2008-2011 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.
|
||||
|
||||
echo "Please note for this to work you need to work on an empty database, otherwise some info (the id fields) will be off"
|
||||
|
||||
rm *.found.txt
|
||||
../pyfpdb/CliFpdb.py -p$1 --file=ps-lhe-ring-3hands.txt -x
|
||||
../pyfpdb/CliFpdb.py -p$1 --file=ps-lhe-ring-3hands.txt -x
|
||||
|
||||
echo "it should've reported first that it stored 3, then that it had 3 duplicates"
|
||||
|
||||
./PrintHand.py -p$1 --hand=14519394979 > ps.14519394979.found.txt && colordiff ps.14519394979.found.txt ps.14519394979.expected.txt
|
||||
./PrintHand.py -p$1 --hand=14519420999 > ps.14519420999.found.txt && colordiff ps.14519420999.found.txt ps.14519420999.expected.txt
|
||||
./PrintHand.py -p$1 --hand=14519433154 > ps.14519433154.found.txt && colordiff ps.14519433154.found.txt ps.14519433154.expected.txt
|
||||
|
||||
./PrintPlayerHudData.py -p$1 -oM > ps-flags-M-2hands.found.txt && colordiff ps-flags-M-2hands.found.txt ps-flags-M-2hands.expected.txt
|
||||
./PrintPlayerHudData.py -p$1 -nPlayer_5 -oB > ps-flags-B-1hands.found.txt && colordiff ps-flags-B-1hands.found.txt ps-flags-B-1hands.expected.txt
|
||||
|
||||
|
||||
../pyfpdb/CliFpdb.py -p$1 --file=ps-lhe-ring-call-3B-preflop-cb-no2b.txt -x
|
||||
echo "it should've now reported another successful store of 1 hand"
|
||||
./PrintPlayerHudData.py -p$1 -nplayer3 -oE -e10 -b50 > ps-flags-CBflop.found.txt && colordiff ps-flags-CBflop.found.txt ps-flags-CBflop.expected.txt
|
||||
|
||||
|
||||
../pyfpdb/CliFpdb.py -p$1 --file=ps-studhilo-ring-showdown.txt -x
|
||||
echo "it should've now reported another successful store of 1 hand"
|
||||
./PrintHand.py -p$1 --hand=15043388146 > ps.15043388146.found.txt && colordiff ps.15043388146.found.txt ps.15043388146.expected.txt
|
||||
./PrintPlayerHudData.py -p$1 -nbr1an -o0 -e6 -b20 -cstudhilo> ps-flags-studhilo.found.txt && colordiff ps-flags-studhilo.found.txt ps-flags-studhilo.expected.txt
|
||||
|
||||
|
||||
echo "if everything was printed as expected this worked"
|
Loading…
Reference in New Issue
Block a user