Example #1
0
 def __prime_databases(self) -> None:
     """
     Prime price databases before multiprocessing iterations
     This adds values from _now_ to the database
     """
     tcgplayer.generate_and_store_tcgplayer_prices(self.all_printings_path)
     cardhoader.get_card_data("")
Example #2
0
def add_price_data(cards: List[MTGJSONCard]) -> List[MTGJSONCard]:
    """
    Add the MTGStocks and CardHoarder content to the card
    :param cards: Output cards
    :return: Enriched output
    """
    for card in cards:
        if not card.get("tcgplayerProductId"):
            LOGGER.warning(f"No TCGPlayer ID Found for {card.get('name')}")
            continue

        stocks_data = mtgstocks.get_card_data(card.get("tcgplayerProductId"))
        ch_data = cardhoader.get_card_data(card.get("uuid"))

        if stocks_data or ch_data:
            card.set_all({
                "mtgstocksId": stocks_data.get("id"),
                "prices": {
                    "paper": stocks_data.get("paper"),
                    "paperFoil": stocks_data.get("foil"),
                    "mtgo": ch_data.get("mtgo"),
                    "mtgoFoil": ch_data.get("mtgoFoil"),
                },
            })

    return cards
Example #3
0
def build_price_data(
        card: Dict[str, Any]) -> Tuple[str, Dict[str, Dict[str, str]]]:
    """
    Build up price info for a single card and add it to global index
    :param card: Card to get price data of
    :return Card object
    """
    LOGGER.info(f"Building price for {card['name']}")
    return card["uuid"], {"prices": cardhoader.get_card_data(card["uuid"])}
Example #4
0
def add_price_data(cards: List[MTGJSONCard]) -> List[MTGJSONCard]:
    """
    Add the CardHoarder content to the card
    :param cards: Output cards
    :return: Enriched output
    """
    for card in cards:
        if not card.get("tcgplayerProductId"):
            LOGGER.warning(f"No TCGPlayer ID Found for {card.get('name')}")
            continue

        card.set_all({
            "prices":
            cardhoader.get_card_data(card.get("uuid"), limited=True)
        })

    return cards