diff --git a/Reuse/getStats.py b/Reuse/getStats.py index 05195a5..27d9bc8 100644 --- a/Reuse/getStats.py +++ b/Reuse/getStats.py @@ -4,6 +4,8 @@ import discord import requests 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 = ""): tasks = [] @@ -28,7 +30,11 @@ async def get_allplayer_stats(s, playerids, weaponid = "", weaponname= "",server img_file = "" if(len(res) == 1): - botmessage, img_file = make_donut_chart(botmessage, playerids, server) + if(server == "All" and weaponname != "Any"): + labels, values, colors = valueschartgamemode(playerid, weaponid) + else: + labels, values, colors = valueschartweapon(playerid, server) + botmessage, img_file = make_donut_chart(botmessage, labels, values, colors) return botmessage, img_file else: img_file = "" diff --git a/Reuse/makePiechart.py b/Reuse/makePiechart.py index d044bf6..36b3e44 100644 --- a/Reuse/makePiechart.py +++ b/Reuse/makePiechart.py @@ -4,94 +4,8 @@ import matplotlib.pyplot as plt import numpy as np import requests -def make_donut_chart(botmessage, playerid, server=""): +def make_donut_chart(botmessage, labels, values, colors): plt.figure().clear() - weapon_color = {'auto_titan_melee': (1, 0.05084745762711862, 0.0), 'bubble_shield': (1, 0.10169491525423724, 0.0), 'burn': (1, 0.15254237288135597, 0.0), 'crushed': (1, 0.2033898305084746, 0.0), 'damagedef_crush': (1, 0.2542372881355932, 0.0), 'damagedef_fd_explosive_barrel': (1, 0.30508474576271194, 0.0), 'damagedef_fd_tether_trap': (1, 0.35593220338983045, 0.0), 'damagedef_frag_drone_throwable_PLAYER': (1, 0.4067796610169492, 0.0), 'damagedef_nuclear_core': (1, 0.4576271186440678, 0.0), 'damagedef_suicide': (1, 0.5084745762711864, 0.0), 'damagedef_titan_fall': (1, 0.5593220338983051, 0.0), 'damagedef_titan_hotdrop': (1, 0.6101694915254238, 0.0), 'damagedef_titan_step': (1, 0.6610169491525424, 0.0), 'damagedef_unknown': (1, 0.711864406779661, 0.0), 'fall': (1, 0.7627118644067796, 0.0), 'human_execution': (1, 0.8135593220338984, 0.0), 'invalid': (1, 0.864406779661017, 0.0), 'melee_pilot_arena': (1, 0.9152542372881356, 0.0), 'melee_pilot_emptyhanded': (1, 0.9661016949152541, 0.0), 'melee_pilot_kunai': (0.9830508474576272, 1, 0.0), 'melee_pilot_sword': (0.9322033898305084, 1, 0.0), 'melee_titan_punch_ion': (0.8813559322033897, 1, 0.0), 'melee_titan_punch_legion': (0.8305084745762712, 1, 0.0), 'melee_titan_punch_northstar': (0.7796610169491525, 1, 0.0), 'melee_titan_punch_scorch': (0.728813559322034, 1, 0.0), 'melee_titan_punch_tone': (0.6779661016949152, 1, 0.0), 'melee_titan_punch_vanguard': (0.6271186440677967, 1, 0.0), 'melee_titan_sword': (0.576271186440678, 1, 0.0), 'mind_crime': (0.5254237288135593, 1, 0.0), 'mp_titanability_laser_trip': (0.47457627118644075, 1, 0.0), 'mp_titanability_slow_trap': (0.4237288135593218, 1, 0.0), 'mp_titanability_smoke': (0.3728813559322033, 1, 0.0), 'mp_titancore_amp_core': (0.3220338983050848, 1, 0.0), 'mp_titancore_flame_wave': (0.27118644067796605, 1, 0.0), 'mp_titancore_flame_wave_secondary': (0.22033898305084754, 1, 0.0), 'mp_titancore_laser_cannon': (0.1694915254237288, 1, 0.0), 'mp_titancore_nuke_missile': (0.1186440677966103, 1, 0.0), 'mp_titancore_salvo_core': (0.06779661016949179, 1, 0.0), 'mp_titancore_shift_core': (0.016949152542372836, 1, 0.0), 'mp_titanweapon_arc_cannon': (0.0, 1, 0.03389830508474567), 'mp_titanweapon_arc_wave': (0.0, 1, 0.08474576271186463), 'mp_titanweapon_barrage_core_launcher': (0.0, 1, 0.13559322033898313), 'mp_titanweapon_brute4_quad_rocket': (0.0, 1, 0.18644067796610164), 'mp_titanweapon_dumbfire_rockets': (0.0, 1, 0.2372881355932206), 'mp_titanweapon_flame_wall': (0.0, 1, 0.2881355932203391), 'mp_titanweapon_flightcore_rockets': (0.0, 1, 0.3389830508474576), 'mp_titanweapon_heat_shield': (0.0, 1, 0.3898305084745761), 'mp_titanweapon_laser_lite': (0.0, 1, 0.4406779661016951), 'mp_titanweapon_leadwall': (0.0, 1, 0.4915254237288136), 'mp_titanweapon_meteor': (0.0, 1, 0.5423728813559321), 'mp_titanweapon_meteor_thermite': (0.0, 1, 0.593220338983051), 'mp_titanweapon_particle_accelerator': (0.0, 1, 0.6440677966101696), 'mp_titanweapon_predator_cannon': (0.0, 1, 0.6949152542372881), 'mp_titanweapon_rocketeer_rocketstream': (0.0, 1, 0.7457627118644066), 'mp_titanweapon_salvo_rockets': (0.0, 1, 0.7966101694915251), 'mp_titanweapon_shoulder_rockets': (0.0, 1, 0.847457627118644), 'mp_titanweapon_sniper': (0.0, 1, 0.8983050847457625), 'mp_titanweapon_sticky_40mm': (0.0, 1, 0.9491525423728815), 'mp_titanweapon_stun_laser': (0.0, 1.0, 1), 'mp_titanweapon_tracker_rockets': (0.0, 0.9491525423728815, 1), 'mp_titanweapon_vortex_shield': (0.0, 0.898305084745763, 1), 'mp_titanweapon_vortex_shield_ion': (0.0, 0.8474576271186436, 1), 'mp_titanweapon_xo16_shorty': (0.0, 0.7966101694915251, 1), 'mp_titanweapon_xo16_vanguard': (0.0, 0.7457627118644066, 1), 'mp_weapon_alternator_smg': (0.0, 0.6949152542372881, 1), 'mp_weapon_arc_launcher': (0.0, 0.6440677966101696, 1), 'mp_weapon_arena3': (0.0, 0.5932203389830506, 1), 'mp_weapon_autopistol': (0.0, 0.5423728813559321, 1), 'mp_weapon_car': (0.0, 0.4915254237288136, 1), 'mp_weapon_defender': (0.0, 0.4406779661016951, 1), 'mp_weapon_dmr': (0.0, 0.38983050847457656, 1), 'mp_weapon_doubletake': (0.0, 0.3389830508474576, 1), 'mp_weapon_epg': (0.0, 0.2881355932203391, 1), 'mp_weapon_esaw': (0.0, 0.2372881355932206, 1), 'mp_weapon_frag_grenade': (0.0, 0.1864406779661021, 1), 'mp_weapon_g2': (0.0, 0.13559322033898358, 1), 'mp_weapon_grenade_electric_smoke': (0.0, 0.08474576271186418, 1), 'mp_weapon_grenade_emp': (0.0, 0.03389830508474567, 1), 'mp_weapon_grenade_gravity': (0.016949152542372836, 0.0, 1), 'mp_weapon_grenade_sonar': (0.06779661016949134, 0.0, 1), 'mp_weapon_gunship_turret': (0.11864406779660985, 0.0, 1), 'mp_weapon_hemlok': (0.16949152542372925, 0.0, 1), 'mp_weapon_hemlok_smg': (0.22033898305084776, 0.0, 1), 'mp_weapon_lmg': (0.27118644067796627, 0.0, 1), 'mp_weapon_lstar': (0.3220338983050848, 0.0, 1), 'mp_weapon_mastiff': (0.3728813559322033, 0.0, 1), 'mp_weapon_mgl': (0.4237288135593218, 0.0, 1), 'mp_weapon_peacekraber': (0.4745762711864412, 0.0, 1), 'mp_weapon_pulse_lmg': (0.5254237288135588, 0.0, 1), 'mp_weapon_r97': (0.5762711864406782, 0.0, 1), 'mp_weapon_rocket_launcher': (0.6271186440677958, 0.0, 1), 'mp_weapon_rspn101': (0.6779661016949152, 0.0, 1), 'mp_weapon_rspn101_og': (0.7288135593220337, 0.0, 1), 'mp_weapon_satchel': (0.7796610169491522, 0.0, 1), 'mp_weapon_semipistol': (0.8305084745762707, 0.0, 1), 'mp_weapon_shotgun': (0.8813559322033901, 0.0, 1), 'mp_weapon_shotgun_pistol': (0.9322033898305087, 0.0, 1), 'mp_weapon_smart_pistol': (0.9830508474576272, 0.0, 1), 'mp_weapon_smr': (1, 0.0, 0.9661016949152543), 'mp_weapon_sniper': (1, 0.0, 0.9152542372881358), 'mp_weapon_softball': (1, 0.0, 0.8644067796610164), 'mp_weapon_super_spectre': (1, 0.0, 0.8135593220338979), 'mp_weapon_thermite_grenade': (1, 0.0, 0.7627118644067794), 'mp_weapon_turretplasma': (1, 0.0, 0.7118644067796609), 'mp_weapon_vinson': (1, 0.0, 0.6610169491525424), 'mp_weapon_wingman': (1, 0.0, 0.6101694915254239), 'mp_weapon_wingman_n': (1, 0.0, 0.5593220338983045), 'mp_weapon_yh803_bullet': (1, 0.0, 0.5084745762711869), 'null': (1, 0.0, 0.45762711864406747), 'outOfBounds': (1, 0.0, 0.40677966101694985), 'phase_shift': (1, 0.0, 0.35593220338983045), 'pilot_emptyhanded': (1, 0.0, 0.30508474576271194), 'rodeo_battery_removal': (1, 0.0, 0.25423728813559343), 'spectre_melee': (1, 0.0, 0.20338983050847492), 'titan_execution': (1, 0.0, 0.15254237288135641), 'titan_explosion': (1, 0.0, 0.10169491525423702), 'titan_grapple': (1, 0.0, 0.05084745762711851), 'mp_weapon_shotgun_doublebarrel' : (1, 0.0, 0.05084745762711852), 'mp_weapon_arena2': (1, 0.0, 0.05084745762711853), 'mp_titanweapon_triplethreat':(1, 0.0, 0.05084745762711854) ,'other': (1, 0.0, 0.0)} - - weapon = { - "human_execution": "execution", - "mp_weapon_car": "car", - "mp_weapon_defender": "charge rifle", - "mp_weapon_doubletake": "double take", - "mp_weapon_epg": "epg", - "mp_weapon_hemlok_smg": "volt", - "mp_weapon_lstar": "lstar", - "mp_weapon_r97": "r97", - "mp_weapon_rspn101": "r-201", - "mp_weapon_smart_pistol": "smart pistol", - "mp_weapon_sniper": "kraber", - "mp_weapon_vinson": "flatline", - "mp_weapon_autopistol": "re-45 auto", - "mp_weapon_alternator_smg": "alternator", - "mp_weapon_frag_grenade": "frag grenade", - "mp_weapon_g2": "g2", - "mp_weapon_lmg": "spitfire", - "mp_weapon_smr": "smr", - "mp_weapon_softball": "softball", - "mp_weapon_thermite_grenade": "firestar", - "melee_pilot_emptyhanded": "melee", - "mp_weapon_mastiff": "mastiff", - "mp_weapon_mgl": "mgl", - "mp_weapon_rspn101_og": "r-101", - "mp_weapon_wingman": "wingman", - "invalid": "invalid", - "mp_weapon_arc_launcher": "thunderbolt", - "mp_weapon_dmr": "dmr", - "mp_weapon_grenade_electric_smoke": "electric smoke", - "mp_weapon_pulse_lmg": "cold war", - "mp_weapon_satchel": "satchel", - "mp_weapon_shotgun": "eva-8 auto", - "mp_weapon_shotgun_pistol": "mozambique", - "mp_weapon_wingman_n": "wingman elite", - "mp_weapon_grenade_gravity": "gravity star", - "mp_weapon_grenade_sonar": "pulse blade", - "mp_weapon_rocket_launcher": "archer", - "outOfBounds": "outOfBounds", - "mind_crime": "mind crime", - "mp_weapon_esaw": "devotion", - "fall": "fall", - "mp_weapon_semipistol": "p2016", - "mp_weapon_grenade_emp": "arc grenade", - "mp_weapon_hemlok": "hemlok", - "phase_shift": "phase shift" - } - - if(server != "All"): - payload = {'player': playerid, 'server': server} - else: - payload = {'player': playerid} - - response = requests.get('https://tone.sleepycat.date/v2/client/weapons', params=payload).json() - - labels = [] - values = [] - colors = [] - total = 0 - dict_weapon_with_kills = {} - for i in response.keys(): - weaponstats = response[i] - dict_weapon_with_kills[i] = weaponstats['kills'] - total += weaponstats['kills'] - - handler = lambda p : response[p]['kills'] - result = sorted(dict_weapon_with_kills, key=handler, reverse=True) - - other = 0 - for j in result: - if(dict_weapon_with_kills[j] > total/34): - try: - labels.append(weapon[j]) - except KeyError: - labels.append(j) - - colors.append(weapon_color[j]) - values.append(dict_weapon_with_kills[j]) - else: - other += dict_weapon_with_kills[j] - if(other > 0): - labels.append("other") - values.append(other) - colors.append(weapon_color['other']) plt.style.use('ggplot') explode = [0.02] * len(values) @@ -108,7 +22,6 @@ def make_donut_chart(botmessage, playerid, server=""): pct.set_path_effects([patheffects.Stroke(linewidth=1, foreground='black'), patheffects.Normal()]) - plt.axis('equal') legend = plt.legend(labels=labels, loc='center', bbox_to_anchor=(0.5,-0.05,0,0), ncol=5, frameon=True) export_legend(legend) diff --git a/Reuse/valuesChartGamemode.py b/Reuse/valuesChartGamemode.py new file mode 100644 index 0000000..9a1ac6c --- /dev/null +++ b/Reuse/valuesChartGamemode.py @@ -0,0 +1,35 @@ +import requests + +def valueschartgamemode(playerid, weaponid): + + payload = {'player': playerid, 'weapon': weaponid} + response = requests.get('https://tone.sleepycat.date/v2/client/gamemodes', params=payload).json() + + gamemode_color = {'aitdm':(1, 0.0, 0.0),'at':(1, 0.375, 0.0),'chamber':(1, 0.75, 0.0),'cp':(0.875, 1, 0.0),'ctf':(0.5, 1, 0.0),'fd':(0.125, 1, 0.0),'ffa':(0.0, 1, 0.25),'fw':(0.0, 1, 0.625),'gg':(0.0, 1.0, 1),'inf':(0.0, 0.625, 1),'lts':(0.0, 0.25, 1),'mfd':(0.125, 0.0, 1),'ps':(0.5, 0.0, 1),'sns':(0.875, 0.0, 1), 'tdm':(1, 0.0, 0.75),'ttdm':(1, 0.0, 0.375), 'other': (1, 0.0, 1)} + gamemode_dict = {'aitdm':'Attrition','at':'Bounty Hunt','chamber':'One in the Chamber','cp':'Amped Hardpoint','ctf':'Capture the Flag','fd':'Frontier Defense','ffa':'Free for All','fw':'Frontier War','gg':'GunGame','inf':'Infection','lts':'Last Titan Standing','mfd':'Marked for Death','ps':'Pilots Vs. Pilots','sns':'Sticks and Stones','tdm':'Skirmish','ttdm':'Titan Brawl'} + + labels = [] + values = [] + colors = [] + total = 0 + dict_gamemodes_with_kills = {} + for i in response.keys(): + gamemodestats = response[i] + dict_gamemodes_with_kills[i] = gamemodestats['kills'] + total += gamemodestats['kills'] + + handler = lambda p : response[p]['kills'] + result = sorted(dict_gamemodes_with_kills, key=handler, reverse=True) + + other = 0 + for j in result: + try: + labels.append(gamemode_dict[j]) + except KeyError: + labels.append(j) + + colors.append(gamemode_color[j]) + values.append(dict_gamemodes_with_kills[j]) + + return labels, values, colors + diff --git a/Reuse/valuesChartWeapon.py b/Reuse/valuesChartWeapon.py new file mode 100644 index 0000000..989b59a --- /dev/null +++ b/Reuse/valuesChartWeapon.py @@ -0,0 +1,92 @@ +import requests + + +def valueschartweapon(playerid, server = ""): + weapon_color = {'auto_titan_melee': (1, 0.05084745762711862, 0.0), 'bubble_shield': (1, 0.10169491525423724, 0.0), 'burn': (1, 0.15254237288135597, 0.0), 'crushed': (1, 0.2033898305084746, 0.0), 'damagedef_crush': (1, 0.2542372881355932, 0.0), 'damagedef_fd_explosive_barrel': (1, 0.30508474576271194, 0.0), 'damagedef_fd_tether_trap': (1, 0.35593220338983045, 0.0), 'damagedef_frag_drone_throwable_PLAYER': (1, 0.4067796610169492, 0.0), 'damagedef_nuclear_core': (1, 0.4576271186440678, 0.0), 'damagedef_suicide': (1, 0.5084745762711864, 0.0), 'damagedef_titan_fall': (1, 0.5593220338983051, 0.0), 'damagedef_titan_hotdrop': (1, 0.6101694915254238, 0.0), 'damagedef_titan_step': (1, 0.6610169491525424, 0.0), 'damagedef_unknown': (1, 0.711864406779661, 0.0), 'fall': (1, 0.7627118644067796, 0.0), 'human_execution': (1, 0.8135593220338984, 0.0), 'invalid': (1, 0.864406779661017, 0.0), 'melee_pilot_arena': (1, 0.9152542372881356, 0.0), 'melee_pilot_emptyhanded': (1, 0.9661016949152541, 0.0), 'melee_pilot_kunai': (0.9830508474576272, 1, 0.0), 'melee_pilot_sword': (0.9322033898305084, 1, 0.0), 'melee_titan_punch_ion': (0.8813559322033897, 1, 0.0), 'melee_titan_punch_legion': (0.8305084745762712, 1, 0.0), 'melee_titan_punch_northstar': (0.7796610169491525, 1, 0.0), 'melee_titan_punch_scorch': (0.728813559322034, 1, 0.0), 'melee_titan_punch_tone': (0.6779661016949152, 1, 0.0), 'melee_titan_punch_vanguard': (0.6271186440677967, 1, 0.0), 'melee_titan_sword': (0.576271186440678, 1, 0.0), 'mind_crime': (0.5254237288135593, 1, 0.0), 'mp_titanability_laser_trip': (0.47457627118644075, 1, 0.0), 'mp_titanability_slow_trap': (0.4237288135593218, 1, 0.0), 'mp_titanability_smoke': (0.3728813559322033, 1, 0.0), 'mp_titancore_amp_core': (0.3220338983050848, 1, 0.0), 'mp_titancore_flame_wave': (0.27118644067796605, 1, 0.0), 'mp_titancore_flame_wave_secondary': (0.22033898305084754, 1, 0.0), 'mp_titancore_laser_cannon': (0.1694915254237288, 1, 0.0), 'mp_titancore_nuke_missile': (0.1186440677966103, 1, 0.0), 'mp_titancore_salvo_core': (0.06779661016949179, 1, 0.0), 'mp_titancore_shift_core': (0.016949152542372836, 1, 0.0), 'mp_titanweapon_arc_cannon': (0.0, 1, 0.03389830508474567), 'mp_titanweapon_arc_wave': (0.0, 1, 0.08474576271186463), 'mp_titanweapon_barrage_core_launcher': (0.0, 1, 0.13559322033898313), 'mp_titanweapon_brute4_quad_rocket': (0.0, 1, 0.18644067796610164), 'mp_titanweapon_dumbfire_rockets': (0.0, 1, 0.2372881355932206), 'mp_titanweapon_flame_wall': (0.0, 1, 0.2881355932203391), 'mp_titanweapon_flightcore_rockets': (0.0, 1, 0.3389830508474576), 'mp_titanweapon_heat_shield': (0.0, 1, 0.3898305084745761), 'mp_titanweapon_laser_lite': (0.0, 1, 0.4406779661016951), 'mp_titanweapon_leadwall': (0.0, 1, 0.4915254237288136), 'mp_titanweapon_meteor': (0.0, 1, 0.5423728813559321), 'mp_titanweapon_meteor_thermite': (0.0, 1, 0.593220338983051), 'mp_titanweapon_particle_accelerator': (0.0, 1, 0.6440677966101696), 'mp_titanweapon_predator_cannon': (0.0, 1, 0.6949152542372881), 'mp_titanweapon_rocketeer_rocketstream': (0.0, 1, 0.7457627118644066), 'mp_titanweapon_salvo_rockets': (0.0, 1, 0.7966101694915251), 'mp_titanweapon_shoulder_rockets': (0.0, 1, 0.847457627118644), 'mp_titanweapon_sniper': (0.0, 1, 0.8983050847457625), 'mp_titanweapon_sticky_40mm': (0.0, 1, 0.9491525423728815), 'mp_titanweapon_stun_laser': (0.0, 1.0, 1), 'mp_titanweapon_tracker_rockets': (0.0, 0.9491525423728815, 1), 'mp_titanweapon_vortex_shield': (0.0, 0.898305084745763, 1), 'mp_titanweapon_vortex_shield_ion': (0.0, 0.8474576271186436, 1), 'mp_titanweapon_xo16_shorty': (0.0, 0.7966101694915251, 1), 'mp_titanweapon_xo16_vanguard': (0.0, 0.7457627118644066, 1), 'mp_weapon_alternator_smg': (0.0, 0.6949152542372881, 1), 'mp_weapon_arc_launcher': (0.0, 0.6440677966101696, 1), 'mp_weapon_arena3': (0.0, 0.5932203389830506, 1), 'mp_weapon_autopistol': (0.0, 0.5423728813559321, 1), 'mp_weapon_car': (0.0, 0.4915254237288136, 1), 'mp_weapon_defender': (0.0, 0.4406779661016951, 1), 'mp_weapon_dmr': (0.0, 0.38983050847457656, 1), 'mp_weapon_doubletake': (0.0, 0.3389830508474576, 1), 'mp_weapon_epg': (0.0, 0.2881355932203391, 1), 'mp_weapon_esaw': (0.0, 0.2372881355932206, 1), 'mp_weapon_frag_grenade': (0.0, 0.1864406779661021, 1), 'mp_weapon_g2': (0.0, 0.13559322033898358, 1), 'mp_weapon_grenade_electric_smoke': (0.0, 0.08474576271186418, 1), 'mp_weapon_grenade_emp': (0.0, 0.03389830508474567, 1), 'mp_weapon_grenade_gravity': (0.016949152542372836, 0.0, 1), 'mp_weapon_grenade_sonar': (0.06779661016949134, 0.0, 1), 'mp_weapon_gunship_turret': (0.11864406779660985, 0.0, 1), 'mp_weapon_hemlok': (0.16949152542372925, 0.0, 1), 'mp_weapon_hemlok_smg': (0.22033898305084776, 0.0, 1), 'mp_weapon_lmg': (0.27118644067796627, 0.0, 1), 'mp_weapon_lstar': (0.3220338983050848, 0.0, 1), 'mp_weapon_mastiff': (0.3728813559322033, 0.0, 1), 'mp_weapon_mgl': (0.4237288135593218, 0.0, 1), 'mp_weapon_peacekraber': (0.4745762711864412, 0.0, 1), 'mp_weapon_pulse_lmg': (0.5254237288135588, 0.0, 1), 'mp_weapon_r97': (0.5762711864406782, 0.0, 1), 'mp_weapon_rocket_launcher': (0.6271186440677958, 0.0, 1), 'mp_weapon_rspn101': (0.6779661016949152, 0.0, 1), 'mp_weapon_rspn101_og': (0.7288135593220337, 0.0, 1), 'mp_weapon_satchel': (0.7796610169491522, 0.0, 1), 'mp_weapon_semipistol': (0.8305084745762707, 0.0, 1), 'mp_weapon_shotgun': (0.8813559322033901, 0.0, 1), 'mp_weapon_shotgun_pistol': (0.9322033898305087, 0.0, 1), 'mp_weapon_smart_pistol': (0.9830508474576272, 0.0, 1), 'mp_weapon_smr': (1, 0.0, 0.9661016949152543), 'mp_weapon_sniper': (1, 0.0, 0.9152542372881358), 'mp_weapon_softball': (1, 0.0, 0.8644067796610164), 'mp_weapon_super_spectre': (1, 0.0, 0.8135593220338979), 'mp_weapon_thermite_grenade': (1, 0.0, 0.7627118644067794), 'mp_weapon_turretplasma': (1, 0.0, 0.7118644067796609), 'mp_weapon_vinson': (1, 0.0, 0.6610169491525424), 'mp_weapon_wingman': (1, 0.0, 0.6101694915254239), 'mp_weapon_wingman_n': (1, 0.0, 0.5593220338983045), 'mp_weapon_yh803_bullet': (1, 0.0, 0.5084745762711869), 'null': (1, 0.0, 0.45762711864406747), 'outOfBounds': (1, 0.0, 0.40677966101694985), 'phase_shift': (1, 0.0, 0.35593220338983045), 'pilot_emptyhanded': (1, 0.0, 0.30508474576271194), 'rodeo_battery_removal': (1, 0.0, 0.25423728813559343), 'spectre_melee': (1, 0.0, 0.20338983050847492), 'titan_execution': (1, 0.0, 0.15254237288135641), 'titan_explosion': (1, 0.0, 0.10169491525423702), 'titan_grapple': (1, 0.0, 0.05084745762711851), 'mp_weapon_shotgun_doublebarrel' : (1, 0.0, 0.05084745762711852), 'mp_weapon_arena2': (1, 0.0, 0.05084745762711853), 'mp_titanweapon_triplethreat':(1, 0.0, 0.05084745762711854) ,'other': (1, 0.0, 0.0)} + + weapon = { + "human_execution": "execution", + "mp_weapon_car": "car", + "mp_weapon_defender": "charge rifle", + "mp_weapon_doubletake": "double take", + "mp_weapon_epg": "epg", + "mp_weapon_hemlok_smg": "volt", + "mp_weapon_lstar": "lstar", + "mp_weapon_r97": "r97", + "mp_weapon_rspn101": "r-201", + "mp_weapon_smart_pistol": "smart pistol", + "mp_weapon_sniper": "kraber", + "mp_weapon_vinson": "flatline", + "mp_weapon_autopistol": "re-45 auto", + "mp_weapon_alternator_smg": "alternator", + "mp_weapon_frag_grenade": "frag grenade", + "mp_weapon_g2": "g2", + "mp_weapon_lmg": "spitfire", + "mp_weapon_smr": "smr", + "mp_weapon_softball": "softball", + "mp_weapon_thermite_grenade": "firestar", + "melee_pilot_emptyhanded": "melee", + "mp_weapon_mastiff": "mastiff", + "mp_weapon_mgl": "mgl", + "mp_weapon_rspn101_og": "r-101", + "mp_weapon_wingman": "wingman", + "invalid": "invalid", + "mp_weapon_arc_launcher": "thunderbolt", + "mp_weapon_dmr": "dmr", + "mp_weapon_grenade_electric_smoke": "electric smoke", + "mp_weapon_pulse_lmg": "cold war", + "mp_weapon_satchel": "satchel", + "mp_weapon_shotgun": "eva-8 auto", + "mp_weapon_shotgun_pistol": "mozambique", + "mp_weapon_wingman_n": "wingman elite", + "mp_weapon_grenade_gravity": "gravity star", + "mp_weapon_grenade_sonar": "pulse blade", + "mp_weapon_rocket_launcher": "archer", + "outOfBounds": "outOfBounds", + "mind_crime": "mind crime", + "mp_weapon_esaw": "devotion", + "fall": "fall", + "mp_weapon_semipistol": "p2016", + "mp_weapon_grenade_emp": "arc grenade", + "mp_weapon_hemlok": "hemlok", + "phase_shift": "phase shift" + } + + if(server != "All"): + payload = {'player': playerid, 'server': server} + else: + payload = {'player': playerid} + + response = requests.get('https://tone.sleepycat.date/v2/client/weapons', params=payload).json() + + labels = [] + values = [] + colors = [] + total = 0 + dict_weapon_with_kills = {} + for i in response.keys(): + weaponstats = response[i] + dict_weapon_with_kills[i] = weaponstats['kills'] + total += weaponstats['kills'] + + handler = lambda p : response[p]['kills'] + result = sorted(dict_weapon_with_kills, key=handler, reverse=True) + + other = 0 + for j in result: + if(dict_weapon_with_kills[j] > total/34): + try: + labels.append(weapon[j]) + except KeyError: + labels.append(j) + + colors.append(weapon_color[j]) + values.append(dict_weapon_with_kills[j]) + else: + other += dict_weapon_with_kills[j] + if(other > 0): + labels.append("other") + values.append(other) + colors.append(weapon_color['other']) + + return labels, values, colors \ No newline at end of file