From 30e61901d6604c8519a9f1e748e0c879a2452c0a Mon Sep 17 00:00:00 2001 From: sqlcoder Date: Mon, 8 Dec 2008 01:38:06 +0000 Subject: [PATCH] use spaces not tabs and get first part of insert_id() code working again --- pyfpdb/fpdb_parse_logic.py | 274 ++++++++++++++++++------------------- pyfpdb/fpdb_simple.py | 8 +- 2 files changed, 141 insertions(+), 141 deletions(-) diff --git a/pyfpdb/fpdb_parse_logic.py b/pyfpdb/fpdb_parse_logic.py index 8400af31..1d7d54a0 100644 --- a/pyfpdb/fpdb_parse_logic.py +++ b/pyfpdb/fpdb_parse_logic.py @@ -22,154 +22,154 @@ import fpdb_save_to_db #parses a holdem hand def mainParser(db, cursor, site, category, hand): - if (category=="holdem" or category=="omahahi" or category=="omahahilo"): - base="hold" - else: - base="stud" - #part 0: create the empty arrays - lineTypes=[] #char, valid values: header, name, cards, action, win, rake, ignore - lineStreets=[] #char, valid values: (predeal, preflop, flop, turn, river) + if (category=="holdem" or category=="omahahi" or category=="omahahilo"): + base="hold" + else: + base="stud" + #part 0: create the empty arrays + lineTypes=[] #char, valid values: header, name, cards, action, win, rake, ignore + lineStreets=[] #char, valid values: (predeal, preflop, flop, turn, river) - cardValues, cardSuits, boardValues, boardSuits, antes, actionTypes, allIns, actionAmounts, actionNos, actionTypeByNo, seatLines, winnings, rakes=[],[],[],[],[],[],[],[],[],[],[],[],[] + cardValues, cardSuits, boardValues, boardSuits, antes, actionTypes, allIns, actionAmounts, actionNos, actionTypeByNo, seatLines, winnings, rakes=[],[],[],[],[],[],[],[],[],[],[],[],[] - #part 1: read hand no and check for duplicate - siteHandNo=fpdb_simple.parseSiteHandNo(hand[0]) - handStartTime=fpdb_simple.parseHandStartTime(hand[0], site) - siteID=fpdb_simple.recogniseSiteID(cursor, site) - #print "parse logic, siteID:",siteID,"site:",site - - isTourney=fpdb_simple.isTourney(hand[0]) - smallBlindLine=0 - for i in range(len(hand)): - if hand[i].find("posts small blind")!=-1 or hand[i].find("posts the small blind")!=-1: - if hand[i][-2:] == "$0": - continue - smallBlindLine=i - #print "found small blind line:",smallBlindLine - break - #print "small blind line:",smallBlindLine - gametypeID=fpdb_simple.recogniseGametypeID(db, cursor, hand[0], hand[smallBlindLine], siteID, category, isTourney) - if isTourney: - if site!="ps": - raise fpdb_simple.FpdbError("tourneys are only supported on PS right now") - siteTourneyNo=fpdb_simple.parseTourneyNo(hand[0]) - buyin=fpdb_simple.parseBuyin(hand[0]) - fee=fpdb_simple.parseFee(hand[0]) - entries=-1 #todo: parse this - prizepool=-1 #todo: parse this - knockout=0 - tourneyStartTime=handStartTime #todo: read tourney start time - rebuyOrAddon=fpdb_simple.isRebuyOrAddon(hand[0]) + #part 1: read hand no and check for duplicate + siteHandNo=fpdb_simple.parseSiteHandNo(hand[0]) + handStartTime=fpdb_simple.parseHandStartTime(hand[0], site) + siteID=fpdb_simple.recogniseSiteID(cursor, site) + #print "parse logic, siteID:",siteID,"site:",site + + isTourney=fpdb_simple.isTourney(hand[0]) + smallBlindLine=0 + for i in range(len(hand)): + if hand[i].find("posts small blind")!=-1 or hand[i].find("posts the small blind")!=-1: + if hand[i][-2:] == "$0": + continue + smallBlindLine=i + #print "found small blind line:",smallBlindLine + break + #print "small blind line:",smallBlindLine + gametypeID=fpdb_simple.recogniseGametypeID(db, cursor, hand[0], hand[smallBlindLine], siteID, category, isTourney) + if isTourney: + if site!="ps": + raise fpdb_simple.FpdbError("tourneys are only supported on PS right now") + siteTourneyNo=fpdb_simple.parseTourneyNo(hand[0]) + buyin=fpdb_simple.parseBuyin(hand[0]) + fee=fpdb_simple.parseFee(hand[0]) + entries=-1 #todo: parse this + prizepool=-1 #todo: parse this + knockout=0 + tourneyStartTime=handStartTime #todo: read tourney start time + rebuyOrAddon=fpdb_simple.isRebuyOrAddon(hand[0]) - tourneyTypeId=fpdb_simple.recogniseTourneyTypeId(cursor, siteID, buyin, fee, knockout, rebuyOrAddon) - fpdb_simple.isAlreadyInDB(cursor, gametypeID, siteHandNo) - - #part 2: classify lines by type (e.g. cards, action, win, sectionchange) and street - fpdb_simple.classifyLines(hand, category, lineTypes, lineStreets) - - #part 3: read basic player info - #3a read player names, startcashes - for i in range (len(hand)): #todo: use maxseats+1 here. - if (lineTypes[i]=="name"): - seatLines.append(hand[i]) - names=fpdb_simple.parseNames(seatLines) - playerIDs = fpdb_simple.recognisePlayerIDs(cursor, names, siteID) - tmp=fpdb_simple.parseCashesAndSeatNos(seatLines, site) - startCashes=tmp['startCashes'] - seatNos=tmp['seatNos'] - - fpdb_simple.createArrays(category, len(names), cardValues, cardSuits, antes, winnings, rakes, actionTypes, allIns, actionAmounts, actionNos, actionTypeByNo) - - #3b read positions - if base=="hold": - positions = fpdb_simple.parsePositions (hand, names) - - #part 4: take appropriate action for each line based on linetype - for i in range(len(hand)): - if (lineTypes[i]=="cards"): - fpdb_simple.parseCardLine (site, category, lineStreets[i], hand[i], names, cardValues, cardSuits, boardValues, boardSuits) - #if category=="studhilo": - # print "hand[i]:", hand[i] - # print "cardValues:", cardValues - # print "cardSuits:", cardSuits - elif (lineTypes[i]=="action"): - fpdb_simple.parseActionLine (site, base, isTourney, hand[i], lineStreets[i], playerIDs, names, actionTypes, allIns, actionAmounts, actionNos, actionTypeByNo) - elif (lineTypes[i]=="win"): - fpdb_simple.parseWinLine (hand[i], site, names, winnings, isTourney) - elif (lineTypes[i]=="rake"): - if isTourney: - totalRake=0 - else: - totalRake=fpdb_simple.parseRake(hand[i]) - fpdb_simple.splitRake(winnings, rakes, totalRake) - elif (lineTypes[i]=="header" or lineTypes[i]=="rake" or lineTypes[i]=="name" or lineTypes[i]=="ignore"): - pass - elif (lineTypes[i]=="ante"): - fpdb_simple.parseAnteLine(hand[i], site, isTourney, names, antes) - elif (lineTypes[i]=="table"): - tableResult=fpdb_simple.parseTableLine(site, base, hand[i]) - else: - raise fpdb_simple.FpdbError("unrecognised lineType:"+lineTypes[i]) - if site=="ftp": - tableResult=fpdb_simple.parseTableLine(site, base, hand[0]) - maxSeats=tableResult['maxSeats'] - tableName=tableResult['tableName'] - #print "before part5, antes:", antes - - #part 5: final preparations, then call fpdb_save_to_db.* with - # the arrays as they are - that file will fill them. - fpdb_simple.convertCardValues(cardValues) - if base=="hold": - fpdb_simple.convertCardValuesBoard(boardValues) - fpdb_simple.convertBlindBet(actionTypes, actionAmounts) - fpdb_simple.checkPositions(positions) - - cursor.execute("SELECT limitType FROM Gametypes WHERE id=%s",(gametypeID, )) - limit_type=cursor.fetchone()[0] - fpdb_simple.convert3B4B(site, category, limit_type, actionTypes, actionAmounts) - - totalWinnings=0 - for i in range(len(winnings)): - totalWinnings+=winnings[i] - - if base=="hold": - hudImportData=fpdb_simple.generateHudCacheData(playerIDs, base, category, actionTypes + tourneyTypeId=fpdb_simple.recogniseTourneyTypeId(cursor, siteID, buyin, fee, knockout, rebuyOrAddon) + fpdb_simple.isAlreadyInDB(cursor, gametypeID, siteHandNo) + + #part 2: classify lines by type (e.g. cards, action, win, sectionchange) and street + fpdb_simple.classifyLines(hand, category, lineTypes, lineStreets) + + #part 3: read basic player info + #3a read player names, startcashes + for i in range (len(hand)): #todo: use maxseats+1 here. + if (lineTypes[i]=="name"): + seatLines.append(hand[i]) + names=fpdb_simple.parseNames(seatLines) + playerIDs = fpdb_simple.recognisePlayerIDs(cursor, names, siteID) + tmp=fpdb_simple.parseCashesAndSeatNos(seatLines, site) + startCashes=tmp['startCashes'] + seatNos=tmp['seatNos'] + + fpdb_simple.createArrays(category, len(names), cardValues, cardSuits, antes, winnings, rakes, actionTypes, allIns, actionAmounts, actionNos, actionTypeByNo) + + #3b read positions + if base=="hold": + positions = fpdb_simple.parsePositions (hand, names) + + #part 4: take appropriate action for each line based on linetype + for i in range(len(hand)): + if (lineTypes[i]=="cards"): + fpdb_simple.parseCardLine (site, category, lineStreets[i], hand[i], names, cardValues, cardSuits, boardValues, boardSuits) + #if category=="studhilo": + # print "hand[i]:", hand[i] + # print "cardValues:", cardValues + # print "cardSuits:", cardSuits + elif (lineTypes[i]=="action"): + fpdb_simple.parseActionLine (site, base, isTourney, hand[i], lineStreets[i], playerIDs, names, actionTypes, allIns, actionAmounts, actionNos, actionTypeByNo) + elif (lineTypes[i]=="win"): + fpdb_simple.parseWinLine (hand[i], site, names, winnings, isTourney) + elif (lineTypes[i]=="rake"): + if isTourney: + totalRake=0 + else: + totalRake=fpdb_simple.parseRake(hand[i]) + fpdb_simple.splitRake(winnings, rakes, totalRake) + elif (lineTypes[i]=="header" or lineTypes[i]=="rake" or lineTypes[i]=="name" or lineTypes[i]=="ignore"): + pass + elif (lineTypes[i]=="ante"): + fpdb_simple.parseAnteLine(hand[i], site, isTourney, names, antes) + elif (lineTypes[i]=="table"): + tableResult=fpdb_simple.parseTableLine(site, base, hand[i]) + else: + raise fpdb_simple.FpdbError("unrecognised lineType:"+lineTypes[i]) + if site=="ftp": + tableResult=fpdb_simple.parseTableLine(site, base, hand[0]) + maxSeats=tableResult['maxSeats'] + tableName=tableResult['tableName'] + #print "before part5, antes:", antes + + #part 5: final preparations, then call fpdb_save_to_db.* with + # the arrays as they are - that file will fill them. + fpdb_simple.convertCardValues(cardValues) + if base=="hold": + fpdb_simple.convertCardValuesBoard(boardValues) + fpdb_simple.convertBlindBet(actionTypes, actionAmounts) + fpdb_simple.checkPositions(positions) + + cursor.execute("SELECT limitType FROM Gametypes WHERE id=%s",(gametypeID, )) + limit_type=cursor.fetchone()[0] + fpdb_simple.convert3B4B(site, category, limit_type, actionTypes, actionAmounts) + + totalWinnings=0 + for i in range(len(winnings)): + totalWinnings+=winnings[i] + + if base=="hold": + hudImportData=fpdb_simple.generateHudCacheData(playerIDs, base, category, actionTypes , allIns, actionTypeByNo, winnings, totalWinnings, positions , actionTypes, actionAmounts) - else: - hudImportData=fpdb_simple.generateHudCacheData(playerIDs, base, category, actionTypes + else: + hudImportData=fpdb_simple.generateHudCacheData(playerIDs, base, category, actionTypes , allIns, actionTypeByNo, winnings, totalWinnings, None , actionTypes, actionAmounts) - - if isTourney: - ranks=[] - for i in range (len(names)): - ranks.append(0) - payin_amounts=fpdb_simple.calcPayin(len(names), buyin, fee) - - if base=="hold": - result = fpdb_save_to_db.tourney_holdem_omaha(db, cursor, base, category, siteTourneyNo, buyin, fee, knockout, entries, prizepool, tourneyStartTime, payin_amounts, ranks, tourneyTypeId, siteID, - siteHandNo, gametypeID, handStartTime, names, playerIDs, startCashes, positions, cardValues, cardSuits, boardValues, boardSuits, winnings, rakes, actionTypes, allIns, actionAmounts, actionNos, hudImportData, maxSeats, tableName, seatNos) - elif base=="stud": - result = fpdb_save_to_db.tourney_stud(db, cursor, base, category, siteTourneyNo, buyin, fee, knockout, entries, prizepool, tourneyStartTime, payin_amounts, ranks, tourneyTypeId, siteID, - siteHandNo, gametypeID, handStartTime, names, playerIDs, startCashes, antes, cardValues, cardSuits, winnings, rakes, actionTypes, allIns, actionAmounts, actionNos, hudImportData, maxSeats, tableName, seatNos) - else: - raise fpdb_simple.FpdbError ("unrecognised category") - else: - if base=="hold": - result = fpdb_save_to_db.ring_holdem_omaha(db, cursor, base, category, siteHandNo + + if isTourney: + ranks=[] + for i in range (len(names)): + ranks.append(0) + payin_amounts=fpdb_simple.calcPayin(len(names), buyin, fee) + + if base=="hold": + result = fpdb_save_to_db.tourney_holdem_omaha(db, cursor, base, category, siteTourneyNo, buyin, fee, knockout, entries, prizepool, tourneyStartTime, payin_amounts, ranks, tourneyTypeId, siteID, + siteHandNo, gametypeID, handStartTime, names, playerIDs, startCashes, positions, cardValues, cardSuits, boardValues, boardSuits, winnings, rakes, actionTypes, allIns, actionAmounts, actionNos, hudImportData, maxSeats, tableName, seatNos) + elif base=="stud": + result = fpdb_save_to_db.tourney_stud(db, cursor, base, category, siteTourneyNo, buyin, fee, knockout, entries, prizepool, tourneyStartTime, payin_amounts, ranks, tourneyTypeId, siteID, + siteHandNo, gametypeID, handStartTime, names, playerIDs, startCashes, antes, cardValues, cardSuits, winnings, rakes, actionTypes, allIns, actionAmounts, actionNos, hudImportData, maxSeats, tableName, seatNos) + else: + raise fpdb_simple.FpdbError ("unrecognised category") + else: + if base=="hold": + result = fpdb_save_to_db.ring_holdem_omaha(db, cursor, base, category, siteHandNo ,gametypeID, handStartTime, names, playerIDs ,startCashes, positions, cardValues, cardSuits ,boardValues, boardSuits, winnings, rakes ,actionTypes, allIns, actionAmounts, actionNos ,hudImportData, maxSeats, tableName, seatNos) - elif base=="stud": - result = fpdb_save_to_db.ring_stud(db, cursor, base, category, siteHandNo, gametypeID, - handStartTime, names, playerIDs, startCashes, antes, cardValues, - cardSuits, winnings, rakes, actionTypes, allIns, actionAmounts, actionNos, hudImportData, maxSeats, tableName, seatNos) - else: - raise fpdb_simple.FpdbError ("unrecognised category") - db.commit() - return result + elif base=="stud": + result = fpdb_save_to_db.ring_stud(db, cursor, base, category, siteHandNo, gametypeID, + handStartTime, names, playerIDs, startCashes, antes, cardValues, + cardSuits, winnings, rakes, actionTypes, allIns, actionAmounts, actionNos, hudImportData, maxSeats, tableName, seatNos) + else: + raise fpdb_simple.FpdbError ("unrecognised category") + db.commit() + return result #end def mainParser diff --git a/pyfpdb/fpdb_simple.py b/pyfpdb/fpdb_simple.py index 11a2a1ea..c64f0030 100755 --- a/pyfpdb/fpdb_simple.py +++ b/pyfpdb/fpdb_simple.py @@ -1074,9 +1074,9 @@ def recogniseGametypeID(db, cursor, topline, smallBlindLine, site_id, category, cursor.execute ("SELECT id FROM Gametypes WHERE siteId=%s AND type=%s AND category=%s AND limitType=%s AND smallBlind=%s AND bigBlind=%s", (site_id, type, category, limit_type, small_bet, big_bet)) result=cursor.fetchone() #print "recgt1 result=",result - #ret=result[0] - #print "recgt1 ret=",ret - #print "tried SELECTing gametypes.id, result:",result + #ret=result[0] + #print "recgt1 ret=",ret + #print "tried SELECTing gametypes.id, result:",result try: len(result) @@ -1121,7 +1121,7 @@ def recogniseGametypeID(db, cursor, topline, smallBlindLine, site_id, category, #print "created new gametypes.id:",result #print "recgt3: result=", result - return result[0] + return result[0] #end def recogniseGametypeID def recogniseTourneyTypeId(cursor, siteId, buyin, fee, knockout, rebuyOrAddon):