diff --git a/curl/curl_links.txt b/curl/curl_links.txt index c13ccab..f01d2c1 100644 --- a/curl/curl_links.txt +++ b/curl/curl_links.txt @@ -13,4 +13,10 @@ https://my.callofduty.com/api/papi-client/stats/cod/v1/title/mw/platform/xbl/gam https://my.callofduty.com/api/papi-client/crm/cod/v2/title/mw/platform/battle/gamer/$PROF/matches/mp/start/0/end/0/details # Get Maps & Game Modes (No $PROF Variable Needed) -https://my.callofduty.com/api/papi-client/ce/v1/title/mw/platform/battle/gameType/mp/communityMapData/availability \ No newline at end of file +https://my.callofduty.com/api/papi-client/ce/v1/title/mw/platform/battle/gameType/mp/communityMapData/availability + +# Get Match Stats +https://www.callofduty.com/api/papi-client/crm/cod/v2/title/mw/platform/battle/fullMatch/mp/matchID/it + +# Leaderboard +https://www.callofduty.com/api/papi-client/leaderboards/v2/title/mw/platform/battle/time/alltime/type/core/mode/career/page/1 \ No newline at end of file diff --git a/get_cod_stats.py b/get_cod_stats.py index bc97451..affc274 100644 --- a/get_cod_stats.py +++ b/get_cod_stats.py @@ -11,90 +11,218 @@ if os.name == 'nt': asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) replacements = { + # Maps + "career": "Career", + "mp_hackney_yard": "Hackney Yard (Night)", + "mp_aniyah": "Aniyah Palace", + "mp_euphrates": "Euphrates Bridge", + "mp_raid": "Grazna Raid", + "mp_m_pine": "Pine", + "mp_m_stack": "Stack", + "mp_deadzone": "Arklov Peak", + "mp_quarry": "Karst River Quarry", + "mp_m_overunder": "Docks", + "mp_cave_am": "Azhir Cave", + "mp_cave": "Azhir Cave (Night)", + "mp_runner": "Gun Runner", + "mp_runner_pm": "Gun Runner (Night)", + "mp_hackney_am": "Hackney Yard", + "mp_piccadilly": "Piccadilly", + "mp_spear": "Rammaza", + "mp_spear_pm": "Rammaza (Night)", + "mp_petrograd": "St. Petrograd", + "mp_m_hill": "Hill", + "mp_m_king": "King", + "mp_m_speedball": "Speedball", + "mp_m_showers": "Gulag Showers", + "mp_downtown_gw": "Tarvosk District", + "mp_m_speed": "Shoot House", + "mp_farms2_gw": "Krovnik Farmland", + "mp_port2_gw": "Port", + "mp_crash": "Crash", + "mp_vacant": "Vacant", + "mp_shipment": "Shipment", + "mp_m_cargo": "Cargo", + "mp_m_cage": "Atrium", + "mp_m_overwinter": "Docks", + "mp_emporium": "Atlas Superstore", + "mp_rust": "Rust", + "mp_boneyard_gw": "Zhokov Boneyard", + "mp_m_fork": "Bazaar", + "mp_donetsk": "Verdansk", + "mp_hideout": "Khandor Hideout", + "loading_mp_hideout": "Khandor Hideout", + "mp_aniyah_tac": "Aniyah Incursion", + "mp_backlot": "Talsik Backlot", + "mp_village": "Hovec Sawmill", + "mp_hardhat": "Hardhat", + "mp_m_wallco": "Aisle 9", + "mp_donetsk": "Verdansk", + "mp_scrapyard": "Zhokov Scrapyard", + "mp_m_trench": "Trench", + "mp_promenade_gw": "Barakett Promenade", + "mp_don": "Verdansk", + "mp_garden": "Cheshire Park", + "mp_oilrig": "Petrov Oil Rig", + "mp_harbor": "Suldal Harbor", + "mp_layover_gw": "Verdansk International Airport", + "mp_m_cornfield": "Livestock", + "mp_m_stadium": "Verdansk Stadium", + "mp_malyshev": "Mialstor Tank Factory", + "mp_malyshev_10v10": "Mialstor Tank Factory", + "mp_broadcast": "Broadcast", + "mp_riverside_gw": "Verdansk Riverside", + "mp_m_train": "Station", + "mp_kstenod": "Verdansk (Night)", + "mp_escape": "Rebirth", + "mp_herat": "Al-Raab Airbase", + "mp_killhouse": "Killhouse", + "mp_m_drainage": "Drainage", # 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", + "dom": "Domination", + "tdef": "Team Defender", + "dm": "Free-for-all", + "koth": "Hardpoint", + "hq": "Headquarters", "arena": "Gunfight", - "br": "Battle Royale (Warzone)", + "arm": "Ground War", + "conf": "Kill Confirmed", + "cyber": "Cyber Attack", + "hc_war": "Team Deathmatch Hardcore", + "hc_arena": "Gunfight Hardcore", + "hc_arm": "Ground War Hardcore", + "hc_conf": "Kill Confirmed Hardcore", + "hc_cyber": "Cyber Attack Hardcore", + "hc_dm": "Free-for-all Hardcore", + "hc_hq": "Headquarters Hardcore", + "hc_dom": "Domination Hardcore", + "hc_sd": "Search and Destroy Hardcore", + "cyber_hc": "Cyber Attack Hardcore", + "war_hc": "Team Deathmatch Hardcore", + "dom_hc": "Domination Hardcore", + "sd_hc": "Search and Destroy Hardcore", + "conf_hc": "Kill Confirmed Hardcore", + "gun": "Gun Game", + "gun_hc": "Gun Game Hardcore", + "siege": "Reinforce", + "infect": "Infected", + "arena_osp": "Gunfight O.S.P.", + "hq_hc": "Headquarters Hardcore", + "grnd": "Grind", + "grind": "Grind", + "ctf": "Capture the Flag", + "br_all": "All", + "br": "Battle Royale", "br_dmz": "Plunder", - "br_all": "Battle Royale (Warzone & Plunder)", + "br_dmz_38": "Plunder Quads", + "br_87": "BR Solos", + "br_dmz_104": "Blood Money", + "koth_hc": "Hardpoint Hardcore", + "br_25": "BR Trios", + "br_89": "BR Quads", + "br_dmz_76": "Plunder Quads", + "br_77": "BR Scopes & Scatterguns", + "br_dmz_85": "Plunder Duos", + "dd_hc": "Demolition Hardcore", + "dd": "Demolition", + "br_71": "BR Solos", + "br_74": "BR Trios", + "br_88": "BR Duos", + "brtdm_113": "Warzone Rumble", + "brtdm_rmbl": "Warzone Rumble", + "br_brsolo": "BR Solos", + "br_brduos": "BR Duos", + "br_brtrios": "BR Trios", + "br_brquads": "BR Quads", + "br_dmz_plnbld": "Blood Money", + "br_br_real": "Realism Battle Royale", + "br_86": "Realism Battle Royale", + "br_brthquad": "BR 200 Quads", + "br_jugg_brtriojugr": "Juggernaut Royal Trios", + "br_dmz_plunquad": "Plunder Quads", + "br_dmz_bldmnytrio": "Blood Money Trios", + "br_mini_miniroyale": "Mini Royale", + "br_brbbsolo": "BR Buyback Solos", + "br_jugg_brquadjugr": "Juggernaut Royal Quads", + "br_kingslayer_kingsltrios": "King Slayer Trios", + "br_truckwar_trwarsquads": "Armored Royale Quads", + "br_zxp_zmbroy": "Zombie Royale", + "br_brhwntrios": "BR Trick-Or-Trios", + "rugby": "Onslaughter", + "br_brsolohwn": "BR Solo Survivor", + "br_dmz_plndcndy": "Plunder: Candy Collector", + "br_jugg_jugpmpkn": "Juggourdnaut Royale", + "br_rebirth_rbrthtrios": "Resurgence Trio", + "br_rebirth_rbrthduos": "Resurgence Duos", + "br_rebirth_rbrthquad": "Rebirth Resurgance Quads", + "br_dmz_plndtrios": "Plunder Trios", + "br_rebirth_resurgence_trios": "Verdansk Resurgence Trios", + "br_mini_rebirth_mini_royale_quads": "Rebirth Mini Royale Quads", + "br_bodycount_pwergrb": "Power Grab", + "br_rebirth_resurgence_mini": "Verdansk Resurgence Mini", + "br_payload_payload": "Payload", + "br_mini_rebirth_mini_royale_trios": "Rebirth Mini Royale Trios", + "br_x2_br_reveal_x2_event/event_title_x2": "Battle of Verdansk", + "br_rumble_clash": "Clash", + "br_dbd_dbd": "Iron Trials '84", + "br_gxp_gov": "Ghosts of Verdansk", # 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", + "scorestreak": "Scorestreak", + "equipment": "Equipment", + "gear": "Gear", + "weapon_bare_hands": "Bare Hands", + "weapon_tactical_rifle": "Tactical Rifle", + "weapon_shotgun": "Shotgun", + "weapon_sniper": "Sniper", + "weapon_lmg": "Light Machine Guns", + "weapon_launcher": "Launcher", + "weapon_pistol": "Pistol", + "weapon_smg": "Submachine Guns", "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", + "weapon_assault_rifle": "Assault Rifle", + "attachments": "Attachments", + "weapons": "Weapons", + "specialist": "Specialist", + "weapon": "Weapon", + "weapon_special": "Special", "iw8_ar_akilo47": "AK-47", - "iw8_ar_asierra12": "Oden", - "iw8_ar_galima": "CR-56 AMAX", - "iw8_ar_sierra552": "Grau 5.56", + "iw8_ar_kilo433": "Kilo-141", + "iw8_ar_mcharlie": "M13", "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_ar_asierra12": "Oden", + "iw8_sm_mpapa7": "MP7", + "iw8_sm_augolf": "AUG", + "iw8_sm_uzulu": "Uzi", "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_sh_charlie725": "725", + "iw8_sh_aalpha12": "JAK-12", + "iw8_sh_oscar12": "Origin 12", + "iw8_lm_pkilo": "PKM", + "iw8_lm_mgolf34": "MG34", + "iw8_lm_lima86": "SA87", + "iw8_lm_dblmg": "MP Juggernaut", "iw8_sn_mike14": "EBR-14", - "iw8_sn_sksierra": "SKS", - ## Sniper Rifles + "iw8_sn_delta": "Dragunov", "iw8_sn_alpha50": "AX-50", "iw8_sn_hdromeo": "HDR", - "iw8_sn_delta": "Dragunov", - "iw8_sn_xmike109": "Rytec AMR", - ## Tactical Equipment + "iw8_sn_sbeta": "Mk2 Carbine", + "iw8_pi_papa320": "M19", + "iw8_pi_cpapa": ".357", + "iw8_la_rpapa7": "RPG-7", + "iw8_la_juliet": "JOKR", + "iw8_la_gromeo": "PILA", + "iw8_la_kgolf": "Strela-P", + "iw8_me_riotshield": "Riot Shield", "equip_gas_grenade": "Gas Grenade", "equip_snapshot_grenade": "Snapshot Grenade", "equip_decoy": "Decoy Grenade", "equip_smoke": "Smoke Grenade", - "equip_concussion": "Concussion Grenade", + "equip_concussion": "Stun 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", @@ -102,23 +230,63 @@ replacements = { "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", + "equip_molotov": "Molotov Cocktail", + "iw8_knife": "Combat Knife", + "weapon_other": "Primary Melee", + "iw8_ar_tango21": "RAM-7", + "iw8_ar_falpha": "FR 5.56", + "iw8_ar_mike4": "M4A1", + "iw8_sm_papa90": "P90", + "iw8_sm_mpapa5": "MP5", + "iw8_sm_beta": "PP19 Bizon", + "iw8_sh_dpapa12": "R9-0", "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 + "iw8_sn_kilo98": "Kar98k", + "iw8_pi_mike1911": "1911", + "iw8_pi_golf21": "X16", + "iw8_pi_decho": ".50 GS", + "weapon_marksman": "Marksman Rifles", + "iw8_lm_kilo121": "M91", + "iw8_ar_scharlie": "FN Scar 17", + "iw8_ar_sierra552": "Grau 5.56", + "iw8_sm_smgolf45": "Striker 45", + "iw8_pi_mike9a3": "Renetti", + "iw8_lm_mkilo3": "Bruen MK9", + "iw8_sh_mike26": "VLK Rogue", + "iw8_sn_crossbow": "Crossbow", + "iw8_sn_sksierra": "SKS", + "iw8_ar_galima": "CR-56 AMAX", + "iw8_me_kalistick": "Kali Sticks", + "iw8_sm_victor": "Fennec Mk9", + "iw8_sn_xmike109": "Rytec AMR", + "iw8_pi_mike9": "Renetti", + "iw8_me_akimboblunt": "Kali Sticks", + "iw8_ar_anovember94": "AN-94", + "iw8_sm_charlie9": "ISO", + "iw8_me_akimboblades": "Dual Kodachis", + "iw8_lm_sierrax": "FiNN", + "iw8_ar_valpha": "AS VAL", + "iw8_sn_romeo700": "SP-R 208", + "cruise_predator": "Cruise Missile", + "manual_turret": "Shield Turret", + "toma_strike": "Cluster Strike", + "sentry_gun": "Sentry Gun", + "hover_jet": "VTOL Jet", + "precision_airstrike": "Precision Airstrike", + "juggernaut": "Juggernaut", + "pac_sentry": "", + "chopper_gunner": "Chopper Gunner", + "gunship": "Gunship", + "white_phosphorus": "White Phosphorus", + "nuke": "Nuke", + "chopper_support": "Support Helo", + "bradley": "Infantry Assault Vehicle", + "uav": "UAV", + "directional_uav": "Advanced UAV", + "airdrop": "Care Package", + "airdrop_multiple": "Emergency Airdrop", + "radar_drone_overwatch": "Personal Radar", + "scrambler_drone_guard": "Counter UAV", "super_emp_drone": "EMP Drone", "super_trophy": "Trophy System", "super_ammo_drop": "Munitions Box", @@ -132,52 +300,6 @@ replacements = { "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)",