예제 #1
0
    async def mp_dashboard_items(self, parse: bool = True):
        if not self.mp_api_key:
            raise exceptions.KeyNotSetError("mp_api_key")

        data = {"key": self.mp_api_key}

        response = await self.request(
            "GET",
            "https://marketplace.tf/api/Seller/GetDashboardItems/v2",
            params=data)

        if not response["success"]:
            raise exceptions.BadResponseError(
                "https://marketplace.tf/api/Seller/GetDashboardItems/v2",
                response)

        if not parse:
            return response

        to_return = {
            "num_item_groups": response["num_item_groups"],
            "total_items": response["total_items"],
            "items": []
        }

        for item in response["items"]:
            to_return["items"].append(mp_item.Item(item))

        return to_return
예제 #2
0
    async def mp_sales(self,
                       num: int = 100,
                       start_before: int = time(),
                       parse: bool = True):
        if not self.mp_api_key:
            raise exceptions.KeyNotSetError("mp_api_key")

        data = {
            "key": self.mp_api_key,
            "num": num,
            "start_before": start_before
        }

        response = await self.request(
            "GET",
            "https://marketplace.tf/api/Seller/GetSales/v2",
            params=data)

        if not response["success"]:
            raise exceptions.BadResponseError(
                "https://marketplace.tf/api/Seller/GetSales/v2", response)

        if not parse:
            return response

        to_return = []
        for sale in response["sales"]:
            to_return.append(mp_sale.Sale(sale))

        return to_return
예제 #3
0
    async def bp_create_listing(self, listings: list, parse: bool = True):
        if not self.bp_user_token:
            raise exceptions.KeyNotSetError("bp_user_token")

        data = {"token": self.bp_user_token, "listings": listings}

        response = await self.request(
            "POST", "https://backpack.tf/api/classifieds/list/v1", params=data)

        if "message" in response:
            raise exceptions.ResponseMessage(response["message"])

        if not parse:
            return response

        to_return = {"successful": [], "unsuccessful": {}}
        if not response["listings"]:
            return to_return

        for item, success in response["listings"].items():
            if "created" in success:
                to_return["successful"].append(item)
            else:
                to_return["unsuccessful"][item] = success["error"]

        return to_return
예제 #4
0
    async def mp_deals(self,
                       num: int = 100,
                       skip: int = 0,
                       parse: bool = True):
        if not self.mp_api_key:
            raise exceptions.KeyNotSetError("mp_api_key")

        data = {"key": self.mp_api_key, "num": num, "skip": skip}

        response = await self.request(
            "POST",
            "https://marketplace.tf/api/Deals/GetDeals/v2",
            params=data)

        if not response["success"]:
            raise exceptions.BadResponseError(
                "https://marketplace.tf/api/Deals/GetDeals/v2", response)

        if not parse:
            return response

        to_return = {"num_items": response["num_items"], "items": []}

        for item in response["items"]:
            to_return["items"].append(mp_deal.Deal(item))

        return to_return
예제 #5
0
    async def bp_get_special_items(self, appid: int = 440):
        if not self.bp_api_key:
            raise exceptions.KeyNotSetError("bp_api_key")

        data = {"key": self.bp_api_key, "appid": appid}
        return await self.request(
            "GET", "https://backpack.tf/api/IGetSpecialItems/v1", params=data)
예제 #6
0
    async def bp_my_listings(self,
                             item_names: bool = False,
                             intent=None,
                             inactive: int = 1,
                             parse: bool = True):
        if not self.bp_user_token:
            raise exceptions.KeyNotSetError("bp_user_token")

        data = {"token": self.bp_user_token, "inactive": inactive}

        if item_names:
            data["item_names"] = True
        if type(intent) == int:
            data["intent"] = intent

        response = await self.request(
            "GET",
            "https://backpack.tf/api/classifieds/listings/v1",
            params=data)

        if "message" in response:
            raise exceptions.ResponseMessage(response["message"])

        if not parse:
            return response

        return bp_classifieds.MyListings(response)
예제 #7
0
    async def bp_get_currencies(self, raw: int = 0, parse: bool = True):
        # backpack.tf docs - https://backpack.tf/api/docs/IGetCurrencies

        if not self.bp_api_key:
            raise exceptions.KeyNotSetError("bp_api_key")

        data = {"key": self.bp_api_key}
        if raw:
            data["raw"] = raw

        response = await self.request(
            "GET", "https://backpack.tf/api/IGetCurrencies/v1", params=data)

        if not response["response"]["success"]:
            raise exceptions.BadResponseError(
                "https://backpack.tf/api/IGetCurrencies/v1",
                response["response"]["message"])

        if not parse:
            return response

        to_return = {}

        for item in response["response"]["currencies"]:
            to_return[item] = bp_currency.Currency(
                response["response"]["currencies"][item])

        return to_return
예제 #8
0
파일: __init__.py 프로젝트: Mrmatiiii/pytf
    def bp_get_prices(self, raw: bool = 0, since: int = 0, parse: bool = True):
        # backpack.tf docs - https://backpack.tf/api/docs/IGetPrices

        if not self.bp_api_key:
            raise exceptions.KeyNotSetError("bp_api_key")

        data = {"key": self.bp_api_key}
        if raw:
            data["raw"] = raw
        if since:
            data["since"] = since

        response = self.request("GET",
                                "https://backpack.tf/api/IGetPrices/v4",
                                params=data)

        if not response["response"]["success"]:
            raise exceptions.BadResponseError(
                "https://backpack.tf/api/IGetPrices/v4",
                response["response"]["message"])

        if not parse:
            return response

        return bp_prices.Prices(response)
예제 #9
0
    async def bp_send_heartbeat(self, automatic: str = "all"):
        if not self.bp_user_token:
            raise exceptions.KeyNotSetError("bp_user_token")

        data = {"token": self.bp_user_token, "automatic": automatic}

        response = await self.request(
            "POST", "https://backpack.tf/api/aux/heartbeat/v1", params=data)

        if "message" in response:
            raise exceptions.ResponseMessage(response["message"])

        return response["bumped"]
예제 #10
0
    async def bp_get_user_token(self):
        if not self.bp_api_key:
            raise exceptions.KeyNotSetError("bp_api_key")

        data = {"key": self.bp_api_key}

        response = await self.request("GET",
                                      "https://backpack.tf/api/aux/token/v1",
                                      params=data)

        if "message" in response:
            raise exceptions.ResponseMessage(response["message"])

        return response["token"]
예제 #11
0
    async def bp_delete_listings(self, listing_ids, parse: bool = True):
        if not self.bp_user_token:
            raise exceptions.KeyNotSetError("bp_user_token")

        data = {"token": self.bp_user_token, "listing_ids": listing_ids}

        response = await self.request(
            "DELETE",
            "https://backpack.tf/api/classifieds/delete/v1",
            params=data)

        if "message" in response:
            raise exceptions.ResponseMessage(response["message"])

        if not parse:
            return response

        return response["deleted"], response["errors"]
예제 #12
0
파일: __init__.py 프로젝트: Mrmatiiii/pytf
    def bp_get_price_history(self,
                             item,
                             quality=None,
                             tradable=1,
                             craftable=1,
                             priceindex: int = 0,
                             appid: int = 440,
                             parse: bool = True):
        # backpack.tf docs - https://backpack.tf/api/docs/IGetPriceHistory

        if not self.bp_api_key:
            raise exceptions.KeyNotSetError("bp_api_key")

        data = {
            "key": self.bp_api_key,
            "item": item,
            "tradable": tradable,
            "craftable": craftable,
            "priceindex": priceindex,
            "appid": appid
        }

        if quality:
            data["quality"] = quality

        response = self.request("GET",
                                "https://backpack.tf/api/IGetPriceHistory/v1",
                                params=data)

        if not response["response"]["success"]:
            raise exceptions.BadResponseError(
                "https://backpack.tf/api/IGetPriceHistory/v1",
                response["response"]["message"])

        if not parse:
            return response

        to_return = []
        for history in response["response"]["history"]:
            to_return.append(bp_price_history.PriceHistory(history))

        return to_return
예제 #13
0
    async def bp_classifieds_search(self, data: dict, parse: bool = True):
        # backpack.tf docs - https://backpack.tf/api/docs/classifieds_search

        if not self.bp_api_key:
            raise exceptions.KeyNotSetError("bp_api_key")

        data["key"] = self.bp_api_key

        response = await self.request(
            "GET",
            "https://backpack.tf/api/classifieds/search/v1",
            params=data)

        if "response" in response:
            raise exceptions.ResponseMessage(response["response"])

        if not parse:
            return response

        return bp_classifieds.Classifieds(response)
예제 #14
0
    async def bp_user_info(self, steamids: list, parse: bool = True):
        # backpack.tf docs - https://backpack.tf/api/docs/user_info

        to_return = {}

        if not self.bp_api_key:
            raise exceptions.KeyNotSetError("bp_api_key")

        steamids_str = []
        for steamid in steamids:
            steamids_str.append(str(steamid))

        for steamid in steamids_str:
            if steamid in self.bp_user_cache and parse:
                steamids_str.remove(steamid)
                to_return[steamid] = self.bp_user_cache[steamid]

        if not steamids_str:
            return to_return

        data = {"key": self.bp_api_key, "steamids": ",".join(steamids_str)}

        response = await self.request("GET",
                                      "https://backpack.tf/api/users/info/v1",
                                      params=data)

        if "message" in response:
            raise exceptions.BadResponseError(
                "https://backpack.tf/api/users/info/v1", response["message"])

        if not parse:
            return response

        for steamid, data in response["users"].items():
            to_return[steamid] = bp_user.BackpackUser(data)

        if self.cache:
            for steamid, info in to_return.items():
                self.bp_user_cache[steamid] = info

        return to_return
예제 #15
0
    async def mp_user_is_banned(self, steamid):
        if not self.mp_api_key:
            raise exceptions.KeyNotSetError("mp_api_key")

        steamid = str(steamid)

        data = {"key": self.mp_api_key, "steamid": steamid}

        response = await self.request(
            "GET",
            "https://marketplace.tf/api/Bans/GetUserBan/v1",
            params=data)

        if not response["success"]:
            raise exceptions.BadResponseError(
                "https://marketplace.tf/api/Bans/GetUserBan/v1", response)

        if not response["is_banned"]:
            return False, None

        return True, response["ban_type"]