diff --git a/beautify_data.exe b/beautify_data.exe deleted file mode 100644 index 0e4ab0c..0000000 Binary files a/beautify_data.exe and /dev/null differ diff --git a/beautify_data.py b/beautify_data.py deleted file mode 100644 index 7eb834f..0000000 --- a/beautify_data.py +++ /dev/null @@ -1,298 +0,0 @@ -import json - -def replace_and_sort_keys_in_json(file_path, replacements): - """Replace keys in the JSON file based on the replacements dictionary and sort Accolades.""" - - with open(file_path, 'r') as file: - data = json.load(file) - - def recursive_key_replace(obj, replacements): - if isinstance(obj, dict): - new_obj = {} - for key, value in obj.items(): - new_key = replacements.get(key, key) - new_obj[new_key] = recursive_key_replace(value, replacements) - - if new_key == "mode": # Sort Game Modes by 'timePlayed' in descending order - sorted_modes = dict(sorted(new_obj[new_key].items(), key=lambda item: item[1]['properties']['timePlayed'], reverse=True)) - new_obj[new_key] = sorted_modes - - if new_key in ["Assault Rifles", "Shotguns", "Marksman Rifles", "Snipers", "LMGs", "Launchers", "Pistols", "SMGs", "Melee"]: # Sort Weapons by 'kills' in descending order - sorted_weapons = dict(sorted(new_obj[new_key].items(), key=lambda item: item[1]['properties']['kills'], reverse=True)) - new_obj[new_key] = sorted_weapons - - if new_key in ["Field Upgrades"]: # Sort Field Upgrades by 'uses' in descending order - sorted_fieldupgrades = dict(sorted(new_obj[new_key].items(), key=lambda item: item[1]['properties']['uses'], reverse=True)) - new_obj[new_key] = sorted_fieldupgrades - - if new_key in ["Tactical Equipment", "Lethal Equipment"]: # Sort Lethal and Tactical equipment by 'uses' in descending order - sorted_equipment = dict(sorted(new_obj[new_key].items(), key=lambda item: item[1]['properties']['uses'], reverse=True)) - new_obj[new_key] = sorted_equipment - - if new_key == "Scorestreaks": # Sort Lethal and Support Scorestreaks by 'awardedCount' in descending order - for subcategory, scorestreaks in new_obj[new_key].items(): - sorted_scorestreaks = dict(sorted(scorestreaks.items(), key=lambda item: item[1]['properties']['awardedCount'], reverse=True)) - new_obj[new_key][subcategory] = sorted_scorestreaks - - # Sort Accolades in descending order - if new_key == "Accolades": - sorted_accolades = dict(sorted(new_obj[new_key]['properties'].items(), key=lambda item: item[1], reverse=True)) - new_obj[new_key]['properties'] = sorted_accolades - - return new_obj - elif isinstance(obj, list): - for index, value in enumerate(obj): - obj[index] = recursive_key_replace(value, replacements) - return obj - - data = recursive_key_replace(data, replacements) - - with open(file_path, 'w') as file: - json.dump(data, file, indent=4) - -if __name__ == "__main__": - # Define the keys to be replaced and their replacements - replacements = { - # Gamemodes - "dom": "Domination", - "hc_dom": "Hardcore Domination", - "war": "Team Deathmatch", - "hc_war": "Hardcore Team Deathmatch", - "hq": "Headquarters", - "hc_hq": "Hardcore Headquarters", - "conf": "Kill Confirmed", - "hc_conf": "Hardcore Kill Confirmed", - "koth": "Hardpoint", - "koth_hc": "Hardcore Hardpoint", - "sd": "Search and Destroy", - "hc_sd": "Hardcore Search and Destroy", - "cyber": "Cyber Attack", - "hc_cyber": "Hardcore Cyber Attack", - "grnd": "Grind", - "arm": "Ground War", - "infect": "Infected", - "gun": "Gun Game", - "arena": "Gunfight", - "br": "Battle Royale (Warzone)", - "br_dmz": "Plunder", - "br_all": "Battle Royale (Warzone & Plunder)", - # Weapons - "weapon_assault_rifle": "Assault Rifles", - "weapon_shotgun": "Shotguns", - "weapon_marksman": "Marksman Rifles", - "weapon_sniper": "Snipers", - "tacticals": "Tactical Equipment", - "lethals": "Lethal Equipment", - "weapon_lmg": "LMGs", - "weapon_launcher": "Launchers", - "supers": "Field Upgrades", - "weapon_pistol": "Pistols", - "weapon_other": "Primary Melee", - "weapon_smg": "SMGs", - "weapon_melee": "Melee", - "scorestreakData": "Scorestreaks", - "lethalScorestreakData": "Lethal Scorestreaks", - "supportScorestreakData": "Support Scorestreaks", - # Guns - ## Assault Rifles - "iw8_ar_tango21": "RAM-7", - "iw8_ar_mike4": "M4A1", - "iw8_ar_valpha": "AS VAL", - "iw8_ar_falpha": "FR 5.56", - "iw8_ar_mcharlie": "M13", - "iw8_ar_akilo47": "AK-47", - "iw8_ar_asierra12": "Oden", - "iw8_ar_galima": "CR-56 AMAX", - "iw8_ar_sierra552": "Grau 5.56", - "iw8_ar_falima": "FAL", - "iw8_ar_anovember94": "AN-94", - "iw8_ar_kilo433": "Kilo 141", - "iw8_ar_scharlie": "FN Scar 17", - "iw8_sh_mike26": "VLK Rogue", - ## Shotguns - "iw8_sh_charlie725": "725", - "iw8_sh_oscar12": "Origin 12 Shotgun", - "iw8_sh_aalpha12": "JAK-12", - "iw8_sh_romeo870": "Model 680", - "iw8_sh_dpapa12": "R9-0 Shotgun", - ## Marksman Rifles - "iw8_sn_sbeta": "MK2 Carbine", - "iw8_sn_crossbow": "Crossbow", - "iw8_sn_romeo700": "SP-R 208", - "iw8_sn_kilo98": "Kar98k", - "iw8_sn_mike14": "EBR-14", - "iw8_sn_sksierra": "SKS", - ## Sniper Rifles - "iw8_sn_alpha50": "AX-50", - "iw8_sn_hdromeo": "HDR", - "iw8_sn_delta": "Dragunov", - "iw8_sn_xmike109": "Rytec AMR", - ## Tactical Equipment - "equip_gas_grenade": "Gas Grenade", - "equip_snapshot_grenade": "Snapshot Grenade", - "equip_decoy": "Decoy Grenade", - "equip_smoke": "Smoke Grenade", - "equip_concussion": "Concussion Grenade", - "equip_hb_sensor": "Heartbeat Sensor", - "equip_flash": "Flash Grenade", - "equip_adrenaline": "Stim", - ## Lethal Equipment - "equip_frag": "Frag Grenade", - "equip_thermite": "Thermite", - "equip_semtex": "Semtex", - "equip_claymore": "Claymore", - "equip_c4": "C4", - "equip_at_mine": "Proximity Mine", - "equip_throwing_knife": "Throwing Knife", - "equip_molotov": "Mototov Cocktail", - ## LMGs - "iw8_lm_kilo121": "M91", - "iw8_lm_mkilo3": "Bruen Mk9", - "iw8_lm_mgolf34": "MG34", - "iw8_lm_lima86": "SA87", - "iw8_lm_pkilo": "PKM", - "iw8_lm_sierrax": "FiNN LMG", - "iw8_lm_mgolf36": "Holger-26", - # "": "", ### RAAL LMG not implemented - ## Launchers - "iw8_la_gromeo": "PILA", - "iw8_la_rpapa7": "RPG-7", - "iw8_la_juliet": "JOKR", - "iw8_la_kgolf": "Strela-P", - # "": "", ### Unknown Launcher - ## Field Upgrades - "super_emp_drone": "EMP Drone", - "super_trophy": "Trophy System", - "super_ammo_drop": "Munitions Box", - "super_weapon_drop": "Weapon Drop", - "super_fulton": "Cash Deposit Balloon", - "super_armor_drop": "Armor Box", - "super_select": "Field Upgrade Pro (Any)", - "super_tac_insert": "Tactical Insertion", - "super_recon_drone": "Recon Drone", - "super_deadsilence": "Dead Silence", - "super_supply_drop": "Loadout Drop", ### Unsure if this is Loadout Drop - "super_tac_cover": "Deployable Cover", - "super_support_box": "Stopping Power Rounds", - ## Pistols - "iw8_pi_cpapa": ".357", - "iw8_pi_mike9": "Renetti", - "iw8_pi_mike1911": "1911", - "iw8_pi_golf21": "X16", - "iw8_pi_decho": ".50 GS", - "iw8_pi_papa320": "M19", - # "": "", ### Sykov not implemented - ## Primary Melee - "iw8_me_riotshield": "Riot Shield", - ## SMGs - "iw8_sm_mpapa7": "MP7", - "iw8_sm_augolf": "AUG", - "iw8_sm_papa90": "P90", - "iw8_sm_charlie9": "ISO", - "iw8_sm_mpapa5": "MP5", - "iw8_sm_smgolf45": "Striker 45", - "iw8_sm_beta": "PP19 Bizon", - "iw8_sm_victor": "Fennec", - "iw8_sm_uzulu": "Uzi", - # "": "", ### CX9 not implemented - ## Melee - "iw8_me_akimboblunt": "Kali Sticks", - "iw8_me_akimboblades": "Dual Kodachis", - "iw8_knife": "Knife", - # Scorestreaks - "precision_airstrike": "Precision Airstrike", - "cruise_predator": "Cruise Missile", - "manual_turret": "Shield Turret", - "white_phosphorus": "White Phosphorus", - "hover_jet": "VTOL Jet", - "chopper_gunner": "Chopper Gunner", - "gunship": "Gunship", - "sentry_gun": "Sentry Gun", - "toma_strike": "Cluster Strike", - "nuke": "Nuke", - "juggernaut": "Juggernaut", - "pac_sentry": "Wheelson", - "chopper_support": "Support Helo", - "bradley": "Infantry Assault Vehicle", - "airdrop": "Care Package", - "radar_drone_overwatch": "Personal Radar", - "scrambler_drone_guard": "Counter UAV", - "uav": "UAV", - "airdrop_multiple": "Emergency Airdrop", - "directional_uav": "Advanced UAV", - # Accolades - "accoladeData": "Accolades", - "classChanges": "Most classes changed (Evolver)", - "highestAvgAltitude": "Highest average altitude (High Command)", - "killsFromBehind": "Most kills from behind (Flanker)", - "lmgDeaths": "Most LMG deaths (Target Practice)", - "riotShieldDamageAbsorbed": "Most damage absorbed with Riot Shield (Guardian)", - "flashbangHits": "Most Flashbang hits (Blinder)", - "meleeKills": "Most Melee kills (Brawler)", - "tagsLargestBank": "Largest bank (Bank Account)", - "shotgunKills": "Most Shotgun kills (Buckshot)", - "sniperDeaths": "Most Sniper deaths (Zeroed In)", - "timeProne": "Most time spent Prone (Grassy Knoll)", - "killstreakWhitePhosphorousKillsAssists": "Most kills and assists with White Phosphorus (Burnout)", - "shortestLife": "Shortest life (Terminal)", - "deathsFromBehind": "Most deaths from behind (Blindsided)", - "higherRankedKills": "Most kills on higher ranked scoreboard players (Upriser)", - "mostAssists": "Most assists (Wingman)", - "leastKills": "Fewest kills (The Fearful)", - "tagsDenied": "Denied the most tags (Denied)", - "killstreakWheelsonKills": "Most Wheelson kills", - "sniperHeadshots": "Most Sniper headshots (Dead Aim)", - "killstreakJuggernautKills": "Most Juggernaut kills (Heavy Metal)", - "smokesUsed": "Most Smoke Grenades used (Chimney)", - "avengerKills": "Most avenger kills (Avenger)", - "decoyHits": "Most Decoy Grenade hits (Made You Look)", - "killstreakCarePackageUsed": "Most Care Packages called in (Helping Hand)", - "molotovKills": "Most Molotov kills (Arsonist)", - "gasHits": "Most Gas Grenade hits (Gaseous)", - "comebackKills": "Most comebacks (Rally)", - "lmgHeadshots": "Most LMG headshots (LMG Expert)", - "smgDeaths": "Most SMG deaths (Run and Gunned)", - "carrierKills": "Most kills as carrier (Carrier)", - "deployableCoverUsed": "Most Deployable Covers used (Combat Engineer)", - "thermiteKills": "Most Thermite kills (Red Iron)", - "arKills": "Most assault rifle kills (AR Specialist)", - "c4Kills": "Most C4 kills (Handle With Care)", - "suicides": "Most suicides (Accident Prone)", - "clutch": "Most kills as the last alive (Clutched)", - "survivorKills": "Most kills as survivor (Survivalist)", - "killstreakGunshipKills": "Most Gunship kills (Death From Above)", - "timeSpentAsPassenger": "Most time spent as a passenger (Navigator)", - "returns": "Most flags returned (Flag Returner)", - "smgHeadshots": "Most SMG headshots (SMG Expert)", - "launcherDeaths": "Most launcher deaths (Fubar)", - "oneShotOneKills": "Most one shot kills (One Shot Kill)", - "ammoBoxUsed": "Most Munitions Boxes used (Provider)", - #"spawnSelectSquad": "", - "weaponPickups": "Most picked up weapons (Loaner)", - "pointBlankKills": "Most point blank kills (Personal Space)", - "tagsCaptured": "Collected the most tags (Confirmed Kills)", - "killstreakGroundKills": "Most ground based killstreak kills (Ground Control)", - "distanceTraveledInVehicle": "Longest distance travelled in a vehicle (Cross Country)", - "longestLife": "Longest life (Lifer)", - "stunHits": "Most Stun Grenade hits (Stunner)", - "spawnSelectFlag": "Most FOB Spawns (Objective Focused)", # Unsure - "shotgunHeadshots": "Most Shotgun headshots (Boomstick)", - "bombDefused": "Most defuses (Defuser)", - "snapshotHits": "Most Snapshot Grenade hits (Photographer)", - "noKillsWithDeath": "No kills with at least 1 death (Participant)", - "killstreakAUAVAssists": "Most Advanced UAV assists (Target Rich Environment)", - "killstreakPersonalUAVKills": "Most kills with a Personal Radar active (Nothing Personal)", - "tacticalInsertionSpawns": "Most Tactical Insertions used (Revenant)", - "launcherKills": "Most Launcher kills (Explosive)", - "spawnSelectVehicle": "Most vehicle spawns (Oscar Mike)", - "mostKillsLeastDeaths": "Most kills and fewest deaths (MVP)", - "mostKills": "Most kills (The Feared)", - "defends": "Most defend kills (Defense)", - "timeSpentAsDriver": "Most time spent driving (Driver)", - "": "" # WIP - Still adding more - } - - file_path = "stats.json" - - replace_and_sort_keys_in_json(file_path, replacements) - print(f"Keys sorted and replaced in {file_path}!") \ No newline at end of file diff --git a/beautify_json.exe b/beautify_json.exe deleted file mode 100644 index 6df9a91..0000000 Binary files a/beautify_json.exe and /dev/null differ diff --git a/beautify_json.py b/beautify_json.py deleted file mode 100644 index 1b13f56..0000000 --- a/beautify_json.py +++ /dev/null @@ -1,23 +0,0 @@ -import json -import os -from json.decoder import JSONDecodeError - -def pretty_print_json_file(input_file, output_file): - try: - with open(input_file, 'r', encoding='utf-8') as infile: - content = infile.read() - data = json.loads(content) - with open(output_file, 'w', encoding='utf-8') as outfile: - json.dump(data, outfile, indent=4) - except JSONDecodeError as e: - print(f"Error decoding JSON in {input_file}: {e}") - -# Hardcoding the input and output file paths -input_file = 'stats.json' -output_file = 'stats_temp.json' - -pretty_print_json_file(input_file, output_file) - -# Remove the original file and rename the beautified file -os.remove(input_file) -os.rename(output_file, input_file) \ No newline at end of file diff --git a/get_stats.bat b/get_stats.bat deleted file mode 100644 index 0a91663..0000000 --- a/get_stats.bat +++ /dev/null @@ -1,11 +0,0 @@ -@echo off -:: Set your default values here -set "PROF=Ahrimdon%%231597" -:: The %% replaces the # for the Activision ID -set "COOKIE_VALUE=INSERT ACT_SSO_COOKIE COOKIE HERE FOR AUTHENTICATION" - -set "URL=https://my.callofduty.com/api/papi-client/stats/cod/v1/title/mw/platform/battle/gamer/%PROF%/profile/type/mp" -set "USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" -set "OUTPUT_FILE=stats.json" - -curl -v "%URL%" -H "Cookie: ACT_SSO_COOKIE=%COOKIE_VALUE%" -H "User-Agent: %USER_AGENT%" -o %OUTPUT_FILE% \ No newline at end of file diff --git a/get_stats.ps1 b/get_stats.ps1 deleted file mode 100644 index 2294cc4..0000000 --- a/get_stats.ps1 +++ /dev/null @@ -1,9 +0,0 @@ -# Set your default values here -$PROF = "Ahrimdon%231597" # The % replaces the # for the Activision ID -$COOKIE_VALUE = "INSERT ACT_SSO_COOKIE COOKIE HERE FOR AUTHENTICATION" - -$URL = "https://my.callofduty.com/api/papi-client/stats/cod/v1/title/mw/platform/battle/gamer/$PROF/profile/type/mp" -$USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" -$OUTPUT_FILE = "stats.json" - -curl -v $URL -H "Cookie: ACT_SSO_COOKIE=$COOKIE_VALUE" -H "User-Agent: $USER_AGENT" -o $OUTPUT_FILE \ No newline at end of file