Made gamemode and map filter for /stats

This commit is contained in:
2023-06-30 00:11:45 +02:00
parent 27925b0eb0
commit 1217231a19
5 changed files with 112 additions and 15 deletions
+28
View File
@@ -0,0 +1,28 @@
def getgamemodeid(givengamemode):
gamemode_dict = {
'attrition': 'aitdm',
'bounty hunt': 'at',
'one in the chamber': 'chamber',
'amped hardpoint': 'cp',
'capture the flag': 'ctf',
'frontier defense': 'fd',
'free for all': 'ffa',
'frontier war': 'fw',
'gungame': 'gg',
'infection': 'inf',
'last titan standing': 'lts',
'marked for death': 'mfd',
'pilots vs. pilots': 'ps',
'sticks and stones': 'sns',
'skirmish': 'tdm',
'titan brawl': 'ttdm'
}
gamemodeid = ""
gamemode = ""
for gamemode_in_dict in gamemode_dict:
if(givengamemode.lower().replace(" ", "") in gamemode_in_dict.lower().replace(" ", "")):
gamemodeid = gamemode_dict[gamemode_in_dict]
gamemode = gamemode_in_dict
break
return gamemodeid, gamemode
+34
View File
@@ -0,0 +1,34 @@
def getmapid(givenmap):
map_dict = {"angel city": "angel_city",
"black water canal":"black_water_canal",
"coliseum":"coliseum",
"pillars": "coliseum_column",
"colony":"colony02",
"complex":"complex3",
"crashsite":"crashsite3",
"drydock":"drydock",
"eden":"eden",
"forwardbase kodai":"forwardbase_kodai",
"glitch":"glitch",
"boomtown":"grave",
"homestead":"homestead",
"deck":"lf_deck",
"meadow": "lf_meadow",
"stacks":"lf_stacks",
"township":"lf_township",
"trafic":"lf_traffic",
"uma":"lf_uma",
"relic":"relic02",
"rise":"rise",
"exoplanet":"thaw",
"wargames":"wargames"}
mapid = ""
mapname = ""
for mapname_in_dict in map_dict:
if(givenmap.lower().replace(" ", "") in mapname_in_dict.lower().replace(" ", "")):
mapid = map_dict[mapname_in_dict]
mapname = mapname_in_dict
break
return mapid, mapname
+10 -6
View File
@@ -7,18 +7,22 @@ from Reuse.makePiechart import make_donut_chart
from Reuse.valuesChartGamemode import valueschartgamemode
from Reuse.valuesChartWeapon import valueschartweapon
async def get_allplayer_stats(s, playerids, weaponid = "", weaponname= "",server = ""):
async def get_allplayer_stats(s, playerids, weaponid = "", weaponname= "",server = "", mapid = "" ,mapname = "", gamemodeid = "",gamemode = ""):
tasks = []
for playerid in playerids:
task = asyncio.create_task(getstats(s, playerid, weaponid, server), name=playerid)
task = asyncio.create_task(getstats(s, playerid, weaponid, server, mapid, gamemodeid), name=playerid)
tasks.append(task)
res = await asyncio.gather(*tasks)
if(server == ""):
server = "All"
if(weaponname == ""):
weaponname = "Any"
if(mapname == ""):
mapname = "All"
if(gamemode == ""):
gamemode = "Any"
botmessage = discord.Embed(title="Stats", description=f"**Server:** {server}\n**Weapon:** {weaponname}", colour=discord.Colour.orange())
botmessage = discord.Embed(title="Stats", description=f"**Server:** {server}\n**Weapon:** {weaponname}\n**Gamemode:** {gamemode}\n**Map:** {mapname}", colour=discord.Colour.orange())
if(weaponname != "Any"):
if(requests.head(f"https://toneapi.github.io/ToneAPI_webclient/weapons/{weaponid}.png").status_code == 200):
botmessage.set_thumbnail(url=f"https://toneapi.github.io/ToneAPI_webclient/weapons/{weaponid}.png")
@@ -33,15 +37,15 @@ async def get_allplayer_stats(s, playerids, weaponid = "", weaponname= "",server
if(server == "All" and weaponname != "Any"):
labels, values, colors = valueschartgamemode(playerid, weaponid)
else:
labels, values, colors = valueschartweapon(playerid, server)
labels, values, colors = valueschartweapon(playerid, server, mapid, mapname, gamemodeid, gamemode)
botmessage, img_file = make_donut_chart(botmessage, labels, values, colors)
return botmessage, img_file
else:
img_file = ""
return botmessage, img_file
async def getstats(s, playerid, weaponid = "", server = ""):
payload = {'player': playerid, 'weapon': weaponid, 'server': server}
async def getstats(s, playerid, weaponid = "", server = "", mapid = "" , gamemodeid = ""):
payload = {'player': playerid, 'weapon': weaponid, 'server': server, 'gamemode': gamemodeid, 'map' : mapid}
async with s.get('https://tone.sleepycat.date/v2/client/players', params=payload) as r:
response = await r.json()
if(response == {}):
File diff suppressed because one or more lines are too long