diff --git a/create-release.sh b/create-release.sh index bdc4333a..9f28a7ac 100755 --- a/create-release.sh +++ b/create-release.sh @@ -29,8 +29,8 @@ cp -R regression-test fpdb-$1/ cp -R utils fpdb-$1/ cd fpdb-$1 -zip -r ../../fpdb-1.0_$1.zip * -tar -cf - * | bzip2 >> ../../fpdb-1.0_$1.tar.bz2 +zip -r releases/fpdb-1.0_$1.zip * +tar -cf - * | bzip2 >> releases/fpdb-1.0_$1.tar.bz2 cd .. rm -r fpdb-$1 diff --git a/docs/tabledesign.html b/docs/tabledesign.html index ce39d4bc..e148b9cf 100644 --- a/docs/tabledesign.html +++ b/docs/tabledesign.html @@ -312,11 +312,10 @@ The program itself is licensed under AGPLv3, see agpl-3.0.txt


Table HandsPlayers

-

cardX: can be 1 through 20, one for each card. In holdem only 1-2 of these are used, in omaha 1-4, in stud/razz 1-7, in single draw games 1-10 is used and in badugi 1-16 (4*4) is used.

-

For the draw games: the first 5 (badugi: 4) cards are the initial cards, the next 5 (badugi: 4) are after the first draw. If a player keeps some cards then those cards' spaces are filled with "k", short for "kept".
-Example 1: If a player gets 2-6 spades for his first five cards and decides to throw away the 4 and then gets a 7 of spades then the first 10 fields of cardXValue would be as follows: 2, 3, 4, 5, 6, k, k, 7, k, k
-Example 2: If a player gets 2, 3, 5, 8, J of spades for his first five cards and decides to throw away the 2 and the 3 and then gets a Q and K of spades then the first 10 fields of cardXValue would be as follows: 2, 3, 5, 8, J, Q, K, k, k, k
-Note that it will k in the space of which card was there previously, so in example 2 where the player kept the last 3 cards, the last 3 fields of the first draw (ie. card8-10Value) are replaced with k.

+

cardX: can be 1 through 20, one for each card. In holdem only 1-2 of these are used, in omaha 1-4, in stud/razz 1-7, in single draw 1-10, in tripple draw all 20 and in badugi 1-16 (4*4).

+

For the draw games: the first 5 (badugi: 4) cards are the initial cards, the next 5 (badugi: 4) are after the first draw, etc.
+Example 1: If a player gets 2-6 spades for his first five cards and decides to throw away the 4 and then gets a 7 of spades then the first 10 fields of cardXValue would be as follows: 2, 3, 4, 5, 6, 2, 3, 5, 6, 7
+Example 2: If a player gets 2, 3, 5, 8, J of spades for his first five cards and decides to throw away the 2 and the 3 and then gets a Q and K of spades then the first 10 fields of cardXValue would be as follows: 2, 3, 5, 8, J, 5, 8, J, Q, K.

I did not separate this into an extra table because I felt the lost space is not sufficiently large. Also the benefit for searching is far less relevant.

@@ -370,6 +369,17 @@ Note that it will k in the space of which card was there previously, so in examp + + + + + + + + + + diff --git a/pyfpdb/CliFpdb.py b/pyfpdb/CliFpdb.py old mode 100644 new mode 100755 diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py old mode 100644 new mode 100755 diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 95abdd71..154edec5 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -151,7 +151,16 @@ class Database: act = row[1:] action[street].append(act) return action - + + def get_winners_from_hand(self, hand): + """Returns a hash of winners:amount won, given a hand number.""" + winners = {} + c = self.connection.cursor() + c.execute(self.sql.query['get_winners_from_hand'], (hand)) + for row in c.fetchall(): + winners[row[0]] = row[1] + return winners + def get_stats_from_hand(self, hand, aggregate = False): c = self.connection.cursor() diff --git a/pyfpdb/EverleafToFpdb.py b/pyfpdb/EverleafToFpdb.py index 1a1196c5..68e4ce5b 100755 --- a/pyfpdb/EverleafToFpdb.py +++ b/pyfpdb/EverleafToFpdb.py @@ -68,17 +68,18 @@ class Everleaf(HandHistoryConverter): print "Initialising Everleaf converter class" HandHistoryConverter.__init__(self, config, file, sitename="Everleaf") # Call super class init. self.sitename = "Everleaf" - self.setFileType("text") + self.setFileType("text", "cp1252") self.rexx.setGameInfoRegex('.*Blinds \$?(?P[.0-9]+)/\$?(?P[.0-9]+)') - self.rexx.setSplitHandRegex('\n\n\n\n') + self.rexx.setSplitHandRegex('\n\n+') self.rexx.setHandInfoRegex('.*#(?P[0-9]+)\n.*\nBlinds \$?(?P[.0-9]+)/\$?(?P[.0-9]+) (?P.*) - (?P[0-9]+)/(?P[0-9]+)/(?P[0-9]+) - (?P
[0-9]+):(?P[0-9]+):(?P[0-9]+)\nTable (?P

char(1)

h=hearts, s=spades, d=diamonds, c=clubs, unknown/no card=x

cardXDiscarded

boolean

Whether the card was discarded (this only applies to draw games, X can be 1 through 15 since the final cards can obviously not be discarded).

DrawnX

smallint

X can be 1 through 3.
+ This field denotes how many cards the player has drawn on each draw.

winnings

int

[ a-zA-Z]+)\nSeat (?P