re-doing some logic to abstract getting boss info from the API
This commit is contained in:
parent
428d06e727
commit
6f0114e0d2
@ -170,45 +170,14 @@ class Tarkov(commands.Cog):
|
|||||||
embed.set_author(name="Boss Spawn chances by map")
|
embed.set_author(name="Boss Spawn chances by map")
|
||||||
embed.set_thumbnail(url="https://i.ytimg.com/vi/Yis5rmgo_bM/maxresdefault.jpg")
|
embed.set_thumbnail(url="https://i.ytimg.com/vi/Yis5rmgo_bM/maxresdefault.jpg")
|
||||||
|
|
||||||
query = """
|
levels = tarkov.tarkov_boss_info()
|
||||||
{
|
|
||||||
maps(lang: en, gameMode: pve) {
|
|
||||||
name
|
|
||||||
bosses{
|
|
||||||
spawnChance
|
|
||||||
boss{
|
|
||||||
name
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
dont_care = [
|
|
||||||
"assault",
|
|
||||||
"ExUsec",
|
|
||||||
"Infected",
|
|
||||||
"infectedPmc",
|
|
||||||
"BEAR",
|
|
||||||
"USEC",
|
|
||||||
"Rogue",
|
|
||||||
]
|
|
||||||
headers = {"Content-Type": "application/json"}
|
|
||||||
response = tarkov.query_tarkov_api(query)["maps"]
|
|
||||||
|
|
||||||
# Wasteful, but make a new dict to hold the info we care about
|
|
||||||
levels = {}
|
|
||||||
for level in response:
|
|
||||||
levels[level["name"]] = {
|
|
||||||
boss["boss"]["name"]: boss["spawnChance"]
|
|
||||||
for boss in level["bosses"]
|
|
||||||
if boss["boss"]["name"] not in dont_care
|
|
||||||
}
|
|
||||||
|
|
||||||
for key, value in levels.items():
|
for key, value in levels.items():
|
||||||
embed.add_field(
|
embed.add_field(
|
||||||
name=key,
|
name=key,
|
||||||
value="\n".join(
|
value="\n".join(
|
||||||
f"{k}: **{str(round(v*100, 2))}%**" for k, v in value.items()
|
f"{k}: **{str(round(v['spawnChance'],2))}%**"
|
||||||
|
for k, v in value.items()
|
||||||
),
|
),
|
||||||
inline=False,
|
inline=False,
|
||||||
)
|
)
|
||||||
@ -241,6 +210,21 @@ class Tarkov(commands.Cog):
|
|||||||
response = requests.get(wiki_url + boss_name).text
|
response = requests.get(wiki_url + boss_name).text
|
||||||
soup = BeautifulSoup(response, "html.parser")
|
soup = BeautifulSoup(response, "html.parser")
|
||||||
|
|
||||||
|
# boss_info = tarkov.tarkov_boss_info()
|
||||||
|
# for k, v in boss_info.items():
|
||||||
|
# if boss_name in v:
|
||||||
|
# print(k, v)
|
||||||
|
# embed.set_thumbnail(url=v[boss_name]["picture"])
|
||||||
|
# embed.add_field(
|
||||||
|
# name="Followers", value=v[boss_name]["escorts"], inline=False
|
||||||
|
# )
|
||||||
|
# embed.add_field(
|
||||||
|
# name="Spawn Chance",
|
||||||
|
# value=f"{v[boss_name]['spawnChance']}",
|
||||||
|
# inline=False,
|
||||||
|
# )
|
||||||
|
# break
|
||||||
|
|
||||||
portraits = tarkov.query_tarkov_api(
|
portraits = tarkov.query_tarkov_api(
|
||||||
"""{
|
"""{
|
||||||
bosses(lang: en, gameMode:pve) {
|
bosses(lang: en, gameMode:pve) {
|
||||||
|
@ -28,3 +28,58 @@ def query_tarkov_api(query):
|
|||||||
return requests.post(
|
return requests.post(
|
||||||
"https://api.tarkov.dev/graphql", headers=headers, json={"query": query}
|
"https://api.tarkov.dev/graphql", headers=headers, json={"query": query}
|
||||||
).json()["data"]
|
).json()["data"]
|
||||||
|
|
||||||
|
|
||||||
|
def tarkov_boss_info():
|
||||||
|
"""
|
||||||
|
Returns a dict of boss spawn chances per map, and their escorts
|
||||||
|
"""
|
||||||
|
|
||||||
|
query = """{
|
||||||
|
maps {
|
||||||
|
name
|
||||||
|
bosses {
|
||||||
|
name
|
||||||
|
spawnChance
|
||||||
|
escorts {
|
||||||
|
boss {
|
||||||
|
name
|
||||||
|
}
|
||||||
|
amount {
|
||||||
|
count
|
||||||
|
}
|
||||||
|
}
|
||||||
|
boss {
|
||||||
|
name
|
||||||
|
imagePortraitLink
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}"""
|
||||||
|
|
||||||
|
dont_care = [
|
||||||
|
"assault",
|
||||||
|
"Infected",
|
||||||
|
"BEAR",
|
||||||
|
"USEC",
|
||||||
|
"Rogue",
|
||||||
|
]
|
||||||
|
headers = {"Content-Type": "application/json"}
|
||||||
|
response = query_tarkov_api(query)["maps"]
|
||||||
|
|
||||||
|
# Wasteful, but make a new dict to hold the info we care about
|
||||||
|
levels = {}
|
||||||
|
for level in response:
|
||||||
|
levels[level["name"]] = {
|
||||||
|
boss["boss"]["name"]: {
|
||||||
|
"escorts": sum(
|
||||||
|
escort["amount"][0]["count"] for escort in boss["escorts"]
|
||||||
|
),
|
||||||
|
"spawnChance": f"**{str(round(boss['spawnChance'],2))}%**",
|
||||||
|
"picture": boss["boss"]["imagePortraitLink"],
|
||||||
|
}
|
||||||
|
for boss in level["bosses"]
|
||||||
|
if boss["boss"]["name"] not in dont_care
|
||||||
|
}
|
||||||
|
|
||||||
|
return levels
|
||||||
|
Loading…
x
Reference in New Issue
Block a user