コード例 #1
0
def id_to_card(card_id):
    import app.mtga_app as mtga_app
    # TODO: this is silly
    try:
        return all_mtga_cards.find_one(card_id)
    except:
        mtga_app.mtga_logger.error("{}Unknown mtga_id: {}".format(ld(), card_id))
        mtga_app.mtga_watch_app.send_error("Unknown mtga_id: {}".format(card_id))
コード例 #2
0
 def sort_data(self):
     for i in self.wishList:
         card = all_mtga_cards.find_one(i)
         if card.rarity == "Rare":
             self.rares = self.rares + self.wishList[i]
             self.set_arrange(card, self.raresDict, self.wishList[i])
         elif card.rarity == "Mythic Rare":
             self.mythics = self.mythics + self.wishList[i]
             self.set_arrange(card, self.mythicsDict, self.wishList[i])
コード例 #3
0
ファイル: mtga_log.py プロジェクト: Fanta-astic/mtga-utils
    def get_collection(self):
        """Generator for MTGA collection"""
        collection = self.get_last_json_block('<== ' + MTGA_COLLECTION_KEYWORD)
        for (mtga_id, count) in iteritems(collection):
            try:
                card = all_mtga_cards.find_one(mtga_id)
            except ValueError as exception:
                yield [mtga_id, MtgaUnknownCard(exception), count]
                #Card not found, try to get it from scryfall
                card = self._fetch_card_from_scryfall(mtga_id)

            if card is not None:
                yield [mtga_id, card, count]
コード例 #4
0
ファイル: mtga-export.py プロジェクト: eavdagic/mtga-utils
 def get_collection(self):
     collection = self.get_last_json_block('<== ' + MTGA_COLLECTION_KEYWORD)
     for (id, count) in iteritems(collection):
         try:
             card = all_mtga_cards.find_one(id)
             yield [card, count]
         except ValueError as exception:
             yield MtgaUnknownCard(exception)
             #Card not found, try to get it from scryfall
             try:
                 card = scryfall.get_mtga_card(id)
                 yield [card, count]
             except Exception as scryfall_error:
                 yield scryfall.ScryfallError(scryfall_error)
コード例 #5
0
        dictionary[card.set] = [lastValues[0] + 1, lastValues[1] + amount]


def in_booster(card):
    if card.set != "ANA":
        if card.set_number < setMaxNumber[card.set]:
            return True
    return False


playerRares = 0
playerTotalRares = 0
cardList = {}
for key, value in collection.items():
    try:
        tempCard = all_mtga_cards.find_one(key)
        # print(tempCard.card_type)
        if tempCard.rarity != "Basic":
            # print(tempCard.pretty_name + " " + tempCard.set + " x" + str(value) )
            validCards = validCards + 1
            cardCount += value
            set_sort(sets, tempCard, value)
            cardList[key] = value
            if tempCard.rarity == "Rare":
                set_sort(rares, tempCard, value)
                playerRares = playerRares + 1
                playerTotalRares = playerTotalRares + value
    except ValueError as e:
        pass
cards = 0
cardsInSet = {}
コード例 #6
0
def find_one_mtga_card(mtga_id):
    from mtga.set_data import all_mtga_cards
    return all_mtga_cards.find_one(mtga_id)
コード例 #7
0
def card_name(obj):
    oid = obj.grpId
    try:
        return all_mtga_cards.find_one(oid).pretty_name
    except ValueError:
        return "<Unknown card %s>" % oid
コード例 #8
0
 def get_name(self):
     oid = self.grpId
     try:
         return all_mtga_cards.find_one(oid).pretty_name
     except ValueError:
         return "<Unknown card %s>" % oid
コード例 #9
0
    def handle_data(self, data):
        global matchId
        global searchForHands
        global cards
        gameStart = "DuelScene.GameStart"
        possibleStartingHand = '"prevGameStateId":'
        endOfStartingHand = '"turnNumber": 1,'
        zones = "zones"
        gameEnd = "DuelScene.GameStop"

        if data.find(gameStart) >= 0:
            # print("Found DieRoll")

            # remove first two lines of data (html divs)
            postString = data.split("\n", 2)[2]
            data2 = json.loads(postString)
            try:
                matchId = data2["params"]["payloadObject"]["matchId"]
                eventId = data2["params"]["payloadObject"]["eventId"]
            except:
                # print("Error: No matchId data")
                return
            pass
            print("id: " + matchId)
            print("match type: " + eventId)
        elif matchId != "" and data.find(endOfStartingHand) >= 0:
            # print("Found First Turn")
            searchForHands = False
        elif matchId != "" and searchForHands and data.find(
                possibleStartingHand) >= 0 and data.find(zones) >= 0:
            # print("Found Cards in Hand")

            # remove first line of data (html div)
            postString = data.split("\n", 1)[1]
            data2 = json.loads(postString)
            try:
                cards = data2["greToClientEvent"]["greToClientMessages"][0][
                    "gameStateMessage"]["gameObjects"]
            except:
                # gameStateId = data2["greToClientEvent"]["greToClientMessages"][0]["gameStateMessage"]["gameStateId"]
                # print("Error: No card data with id:" + matchId + ", gameStateId: " +str(gameStateId))
                return
        elif matchId != "" and data.find(gameEnd) >= 0:
            # print("Found MatchCompleted")

            # remove first two lines of data (html divs)
            postString = data.split("\n", 2)[2]
            data2 = json.loads(postString)

            # check that GameEnd matchId is same as GameStart
            resultmatchId = data2["params"]["payloadObject"]["matchId"]
            if matchId != resultmatchId:
                print("Error: Could not find winner with id: " + matchId)
                return
            print("Final Hand")

            postCards = []
            # just take the groupId from cards since that's all we need
            for card in cards:
                postCards.append(card['grpId'])
            for card in postCards:
                print(all_mtga_cards.find_one(card))

            owner = data2["params"]["payloadObject"]["seatId"]
            winner = data2["params"]["payloadObject"]["winningTeamId"]
            print("Owner: " + str(owner))
            print("Winner: " + str(winner))

            mulliganedHands = data2["params"]["payloadObject"][
                "mulliganedHands"]
            if len(mulliganedHands) > 0:
                print("Mulliganed Hands: ")
                i = 1
                for hand in mulliganedHands:
                    print("Hand " + str(i) + ":")
                    i = i + 1
                    for card in hand:
                        print(all_mtga_cards.find_one(card['grpId']))
            print()

            # reset globals
            matchId = ""
            searchForHands = True
            cards = []