Esempio n. 1
0
    def search(self, name):
        url = "https://search.nintendo-europe.com/" + country + "/select?q=" + urllib.parse.quote(name) + "&fq=type%3A*%20AND%20*%3A*&start=0&rows=24&wt=json&group=true&group.field=pg_s&group.limit=" + \
            str(limit) + "&group.sort=score%20desc,%20date_from%20desc&sort=score%20desc,%20date_from%20desc"

        payload = utils.get_json_response(url)

        return_offers = []

        for group in payload['grouped']['pg_s']['groups']:
            if group['groupValue'] == "GAME":
                for game in group['doclist']['docs']:
                    price = game['price_lowest_f']
                    return_offers.append(
                        GameOffer(
                            id=game["fs_id"],
                            cid=self._encode_id(id=game["fs_id"],
                                                name=game["title"]),
                            url=game["url"],
                            name=game["title"],
                            type=game["type"],
                            prices=[
                                Price(
                                    value=price if price > 0 else None,
                                    # TODO add currency
                                    currency="",
                                    offer_type="LOWEST"),
                            ],
                            platforms=game['system_names_txt'],
                            picture_url=game['image_url']
                            if 'image_url' in game else None))

        return return_offers
Esempio n. 2
0
    def _item_to_game_offer(self, game):
        if not game:
            raise Exception("Item is empty")

        return GameOffer(
            id=game["id"],
            cid=game["id"],
            url=game["url"],
            type=game['gameContentTypesList'][0][
                'key'] if 'gameContentTypesList' in game else None,
            name=game["name"],
            # prices=[game['default_sku']['price']/100],
            prices=[
                Price(
                    value=_get_normal_price(game),
                    currency=_get_currency_symbol(self.country),
                    offer_type="NORMAL"
                ),
                Price(
                    value=_get_playstation_plus_price(game),
                    currency=_get_currency_symbol(self.country),
                    offer_type="PS+"
                ),
            ],
            platforms=game['playable_platform'] if 'playable_platform' in game else "",
            picture_url=_get_image(game)
        )
Esempio n. 3
0
    def test_format_items_as_text(self):
        prices = []

        prices.append(Price(
            value=20.0,
            offer_type="NORMAL",
        ))

        prices.append(Price(
            value=10.5,
            offer_type="PS+",
        ))

        game_offer = GameOffer(
            id="id",
            cid="cid",
            url="url",
            type="FULL_GAME",
            name="NAME",
            prices=prices,
            platforms=["PS4", "PS Vita"],
            picture_url="http://picture.jpg",
        )

        formatted_items = format_items_as_text([game_offer])
        self.assertEqual("cid\tNAME\tPS4,PS Vita\t10.50\tFULL_GAME",
                         formatted_items[0])
Esempio n. 4
0
    def _item_to_game_offer(self, game):
        if not game:
            raise Exception("Item is empty")

        normal_price = _get_normal_price(game)
        plus_price = _get_playstation_plus_price_reduction(game)
        non_plus_price = _get_non_playstation_plus_price_reduction(game)

        prices = []

        if normal_price != None:
            prices.append(Price(
                value=normal_price,
                offer_type="NORMAL",
            ))

        if plus_price != None:
            prices.append(Price(
                value=plus_price,
                offer_type="PS+",
            ))

        if non_plus_price != None:
            prices.append(
                Price(
                    value=non_plus_price,
                    offer_type="Without PS+",
                ))

        # Make lowest price first in list
        prices.sort(key=lambda x: x.value)

        return GameOffer(
            id=game["id"],
            cid=game["id"],
            url=game["url"],
            type=game["gameContentTypesList"][0]["key"]
            if "gameContentTypesList" in game else None,
            name=game["name"],
            prices=prices,
            platforms=game["playable_platform"]
            if "playable_platform" in game else "",
            picture_url=_get_image(game),
        )
Esempio n. 5
0
    def search(self, name):
        url = "https://search.nintendo-europe.com/" + country + "/select?q=" + urllib.parse.quote(
            name
        ) + "&fq=type%3A*%20AND%20*%3A*&start=0&rows=24&wt=json&group=true&group.field=pg_s&group.limit=" + str(
            limit
        ) + "&group.sort=score%20desc,%20date_from%20desc&sort=score%20desc,%20date_from%20desc"

        payload = utils.get_json_response(url)

        return_offers = []

        for group in payload["grouped"]["pg_s"]["groups"]:
            if group["groupValue"] == "GAME":
                for game in group["doclist"]["docs"]:
                    price = game["price_lowest_f"]
                    return_offers.append(
                        GameOffer(
                            id=game["fs_id"],
                            cid=self._encode_id(encode_id=game["fs_id"],
                                                name=game["title"]),
                            url=game["url"],
                            name=game["title"],
                            type=game["type"],
                            prices=[
                                Price(
                                    value=price,
                                    offer_type="OFFER",
                                ) if price > 0 else Price(value=-1,
                                                          offer_type="NONE"),
                            ],
                            platforms=game["system_names_txt"],
                            picture_url=game["image_url"]
                            if "image_url" in game else None,
                        ))

        return return_offers