Error reported with the following hand hostory from FTP France:
Full Tilt Poker.fr Game #22632637058: Daily Euro (174599326), Table 3 - 10/20 - No Limit Hold'em - 20:15:39 CET - 2010/07/27
The existing FTP parser crashed on CET times.
1) Fixed parser to accept CET
2) Added timezone offset into HHC
Not happy with TZ1/TZ2 solution.
(Havent checked on ring games... Broke on Full Tilt...)
Current the old an the new is supported:
old: bla bla, Table 800 - 15/30 - No Limit Hold'em - 4:44:59 ET - 2010/07/18
new: bla bla, Table 19 - 15/30 - Pot Limit Omaha Hi - 13:43 ET - Wed, July 21, 2010
- deactivated use of TourneySummary (short: TS) from HHC and subclasses
- menu entry for IMAP import
- converted ImapSummaries (short: IS) to use the config file
- IS now optionally supports non-SSL and can run on folders other than INBOX
- removed gametypes and getGameTypeAsString from TS method as identical one is in Hand
- some other stuff
- moved HH-based tourney handling completely into Hand
- renamed Tourney.py to TourneySummaries
- changed many DB fields to allow NULL and removed defaults
- updated copyright notices
- added copyright notices that were missing
- changed python to python2
- added gpl-2/3 license texts
- removed THANKS.txt file as the wiki version is more up to date
- removed empty fpdb_db.py
- added GPL2 to debian license file
Split hand text for FTP, as the regex matches the player names incorrectly, and differentiating the lines is non-trivial.
The split should ensure that only the first version is available
_mysql_exceptions.IntegrityError: (1062, "Duplicate entry 'romatrifon (small blind) showed -1' for key 'name'")
Previous regex was matching past the name.
From: lucktard <ntogden@gmail.com>
Date: Wed, 30 Sep 2009 12:16:06 -0500
Subject: [PATCH] Detect and import capped 6 max hands on FullTilt
and
From b35d23aba38935406cf1522ae07a49cd441318b3 Mon Sep 17 00:00:00 2001
From: lucktard <ntogden@gmail.com>
Date: Wed, 30 Sep 2009 12:21:34 -0500
Subject: [PATCH] Detect deep 6 max tables for HUD on FT
modified: FulltiltToFpdb.py
* Tourney Summary File parsing : add support for Madness tourneys
* HH file parsing : enhance Tourney topline parsing to retrieve some info (HU, Rebuy, KO, Turbo, ...) and store it into Hand object
modified: Hand.py
* Some attributes added to store tourney specific info
modified: SQL.py
* Add a new request (getTourneyTypeIdByTourneyNo) to help finding a tourney already in db (preparation for Tourney Summary import)
modified: Tourney.py
* Attribute tourneyComment added
modified: fpdb_parse_logic.py
* Change parameters in call of fpdb_simple.recogniseTourneyTypeId
modified: fpdb_simple.py
* recogniseTourneyTypeId : signature changed to allow for the search of a tourney id already in db prior to searching for tourneyTypeId
modified: FulltiltToFpdb.py
* Modified re_HandInfo regex to take into account Matrix Tournament Hands Histories
* Add Regex for Tourney Summaries files parsing
* New methods : readSummaryInfo, determineTourneyType, getPlayersPositionsAndWinnings
modified: HandHistoryConverter.py
* Add a Tourney object in the attributes to allow storing the summary info retrieved and the ability to hand it over after parsing
* Add a new attribut parsedObjectType (string : "HH" or "Summary")
* In follow = False mode : read the first line to swicth between HH & Summary parsing
* TO DO : Deal with parsing summary files in follow = True mode
* New methods added : isSummary, getParsedObjectType (to be called in fpdb_import), readSummaryInfo : abstract (to be implemented in each specific HHC), getTourney (returns the new attribute)
new file: Tourney.py
* New object
* Lots of attributes regarding the tourney info (buy-in, fee, entries, speed, Rebuy/add-on info, starting chips, KnockOut info, isHeadsUp, isShootout, isMatrix, ...
* List of players with finishing positions (when available) and winnings (when available)
* Methods :
** addPlayer(self, rank, name, winnings)
** incrementPlayerWinnings(self, name, additionnalWinnings): used for KO tourneys when KO occured (for Hero only)
** calculatePayinAmount : unused yet, should be necessary for DB storage
** some Hand methods copied that are still to be done including : assemble and insert
** TO DO : write the insert method for the object to be stored in DB. This will have to deal with the fact that the DB write can occur both before (Bulk Import) or after the HH file info has been stored (tourney might or might not already exist)
modified: fpdb_import.py
* import_file_dict modified :
** after the construction of the hhc, it now calls the new getParsedObjectType method of HHC in order to know what has been parsed by the HHC
** If it's a hand history file (actual expected behaviour) : do as before
** If it's a summary file, gets the tourney object that has been built from the hhc and calls the insert method on it (similar to NEWIMPORT=True for HH)
modified: FulltiltToFpdb.py
- Sitting out players are no longer considered out of a hand (in a tourney context, they can act even if out at the beggining of the hand)
- re_CollectPot modified to take into account Tournament context (no $ in the pot)
- Try to read buy-in/fee from topline in Tournament context
- Deal with commas in pot size (readCollectPot)
Better exception handling during parsing
FpdbParseEcxeption takes an optional HID
Stripped pointless __init__s from *ToFpdb subclasses
Logging now has logging.conf config - default is to log only INFO to
file but easily changed to DEBUG for devel work
EverleafToFpdb: remove DEBUG XXXXXXX line
FulltiltToFpdb: pass on converting tournament hands
Hand: add Hand.fee var that Database is looking for
fpdb_import: clean up file update scan code, queue files that have changed in the last 60 seconds for the next importer pass, instead of locking it up reading them now (not that this does anything since FT no longer updates the mtime until it closes the table, but maybe it works with Stars or others)
Make tail work:
-log instead of print inode # change detected,
-make sure splitter regexes have groups around them
-fix a bug
-increase buffering size to something >> a single hand
Conflicts:
pyfpdb/HandHistoryConverter.py
Adds 1 restriction to the HHC sub classes, the classname must be the
same as the filename - ToFpdb.py
FulltiltToFpdb.py must contain a hhc class named Fulltilt
EverleafToFpdb.py must contain a hhc class named Everleaf