Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Tarkov-Discord-Chatbot/api_market_handler.py
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
102 lines (80 sloc)
3.75 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
import winsound | |
from urllib.request import urlopen | |
api_key = "x-api-key=9w3MIVAGdu84n6Db" | |
api_url = "https://tarkov-market.com/api/v1/" | |
release_state = False | |
if (release_state): | |
print("Release State = " + str(release_state) + "! API Connected, Market Data Up-To-Date") | |
apiJsonObj = urlopen(api_url + "items/all?&" + api_key) | |
fleaMarketData = json.load(apiJsonObj) | |
else: | |
print("Release State = " + str(release_state) + "!, API Not Connected, Market Data Outdated") | |
for i in range (0 , 3): | |
winsound.Beep(750, 250) | |
i += 1 | |
tempFleaMarketData_Json_File = open("tempFleaMarketData.json", encoding="utf-8") | |
fleaMarketData = json.load(tempFleaMarketData_Json_File) | |
def RefreshFleaMarketData(): | |
if(release_state): | |
json_obj = urlopen(api_url + "items/all?&" + api_key) | |
fleaMarketData = json.load(json_obj) | |
def isWeaponNamePresent(p_userMessage): | |
return ItemNamePresent(p_userMessage, "Weapon") | |
def isAmmoNamePresent(p_userMessage): | |
return ItemNamePresent(p_userMessage, "Ammo") | |
def isArmourNamePresent(p_userMessage): | |
return ItemNamePresent(p_userMessage, "Armor_vests") | |
def getWeaponName(p_userMessage): | |
return ItemName(p_userMessage, "Weapon") | |
def getAmmoName(p_userMessage): | |
return ItemName(p_userMessage, "Ammo") | |
def getArmourName(p_userMessage): | |
return ItemName(p_userMessage, "Armor_vests") | |
def getWeaponTraderPrice(p_weaponName): | |
return ItemPrice(p_weaponName, "Weapon", "tMarket") | |
def getAmmoTraderPrice(p_ammoName): | |
return ItemPrice(p_ammoName, "Ammo", "tMarket") | |
def getWeaponFleaMarketPrice(p_weaponName): | |
return ItemPrice(p_weaponName, "Weapon", "fMarket") | |
def getAmmoFleaMarketPrice(p_ammoName): | |
return ItemPrice(p_ammoName, "Ammo", "fMarket") | |
def getItemTrader(p_itemName): | |
return ItemTrader(p_itemName) | |
def ItemNamePresent(p_userMessage, p_itemType): | |
for marketItem in fleaMarketData: | |
if (p_itemType in marketItem["tags"]): | |
if (marketItem["shortName"].replace("-", "").replace(" ", "").lower() in p_userMessage.replace("-", "").replace(" ", "").lower()): | |
return True | |
return False | |
def ItemName(p_userMessage, p_itemType): | |
for marketItem in fleaMarketData: | |
if (p_userMessage == "debug_PrintAll"): | |
if ("Armor_vests" in marketItem["tags"]): | |
print(str(marketItem["tags"]) + " --- " + str(marketItem["shortName"])) | |
if (p_itemType in marketItem["tags"]): | |
if (marketItem["shortName"].replace("-", "").replace(" ", "").lower() in p_userMessage.replace("-", "").replace(" ", "").lower()): | |
return marketItem["shortName"] | |
return "ERROR! ---Item name not present---" | |
def ItemPrice(p_itemName, p_itemType, p_priceType): | |
RefreshFleaMarketData() | |
for marketItem in fleaMarketData: | |
if (p_itemType in marketItem["tags"][0]): | |
if (p_itemName == marketItem["shortName"]): | |
if (p_priceType == "tMarket"): | |
return marketItem["traderPriceCur"] + str(marketItem["traderPrice"]) | |
elif (p_priceType == "fMarket"): | |
return marketItem["traderPriceCur"] + str(marketItem["avg24hPrice"]) | |
else: | |
return "ERROR! ---Item price type not specified---" | |
return "ERROR! ---Item price not found---" | |
def ItemTrader(p_itemName): | |
for marketItem in fleaMarketData: | |
if (marketItem["shortName"] == p_itemName): | |
return marketItem["traderName"] | |
return "ERROR! ---Item not sold by any trader" | |
def printAllItemName(): | |
if (not release_state): | |
ItemName("debug_PrintAll", " ") | |
printAllItemName() | |
print(getArmourName(isArmourNamePresent("3 m"))) |