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
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
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
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
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)
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)
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
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)
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"]
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"]
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"]
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
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)
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
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"]