feat: add API endpoints

Me: {communityMapDataForMapMode(game, platform, mode, mapID, gamemode), userInfo()};
CDN: {accolades(), allCDNData()}; ModernWarfare: {bundleInfo(game, platform, lookupType, gamertag), matchHeatMap(game, platform, matchID), bpProg(game, platform, lookupType, gamertag)}; ColdWar: {undleInfo(game, platform, lookupType, gamertag), matchHeatMap(game, platform, matchID), bpProg(game, platform, lookupType, gamertag)}; Vanguard: {bundleInfo(game, platform, lookupType, gamertag), matchHeatMap(game, platform, matchID), bpProg(game, platform, lookupType, gamertag)};
This commit is contained in:
Rim 2025-04-19 20:49:58 -04:00
parent a17394fb2b
commit 1ddb12c6e8
7 changed files with 1224 additions and 526 deletions

View File

@ -1,460 +1,460 @@
{ {
"career": "Career", "airdrop_escort": "Overwatch Helo",
"mp_hackney_yard": "Hackney Yard (Night)", "airdrop_multiple": "Emergency Airdrop",
"mp_aniyah": "Aniyah Palace", "airdrop": "Care Package",
"mp_euphrates": "Euphrates Bridge", "arena_osp": "Gunfight O.S.P.",
"mp_raid": "Grazna Raid", "arena": "Gunfight",
"mp_m_pine": "Pine", "arm": "Ground War",
"mp_m_stack": "Stack", "assault_drone": "Bomb Drone",
"mp_deadzone": "Arklov Peak", "assault_suit": "Assault Suit",
"mp_quarry": "Karst River Quarry", "attachments": "Attachments",
"mp_m_overunder": "Docks", "auto_drone": "Stealth Bomber",
"mp_cave_am": "Azhir Cave", "battle": "BattleNET",
"mp_cave": "Azhir Cave (Night)", "br_25": "BR Trios",
"mp_runner": "Gun Runner", "br_71": "BR Solos",
"mp_runner_pm": "Gun Runner (Night)", "br_74": "BR Trios",
"mp_hackney_am": "Hackney Yard", "br_77": "BR Scopes & Scatterguns",
"mp_piccadilly": "Piccadilly", "br_86": "Realism Battle Royale",
"mp_spear": "Rammaza", "br_87": "BR Solos",
"mp_spear_pm": "Rammaza (Night)", "br_88": "BR Duos",
"mp_petrograd": "St. Petrograd", "br_89": "BR Quads",
"mp_m_hill": "Hill", "br_all": "Battle Royale (All)",
"mp_m_king": "King", "br_bodycount_pwergrb": "Power Grab",
"mp_m_speedball": "Speedball", "br_br_real": "Realism Battle Royale",
"mp_m_showers": "Gulag Showers", "br_brbbsolo": "BR Buyback Solos",
"mp_downtown_gw": "Tarvosk District", "br_brduos": "BR Duos",
"mp_m_speed": "Shoot House", "br_brhwntrios": "BR Trick-Or-Trios",
"mp_farms2_gw": "Krovnik Farmland", "br_brquads": "BR Quads",
"mp_port2_gw": "Port", "br_brsolo": "BR Solos",
"mp_crash2": "Crash", "br_brsolohwn": "BR Solo Survivor",
"mp_vacant": "Vacant", "br_brthquad": "BR 200 Quads",
"mp_shipment": "Shipment", "br_brtrios": "BR Trios",
"mp_m_cargo": "Cargo", "br_dbd_dbd": "Iron Trials '84",
"mp_m_cage": "Atrium", "br_dmz_104": "Blood Money",
"mp_m_overwinter": "Docks", "br_dmz_38": "Plunder Quads",
"mp_emporium": "Atlas Superstore", "br_dmz_76": "Plunder Quads",
"mp_rust": "Rust", "br_dmz_85": "Plunder Duos",
"mp_boneyard_gw": "Zhokov Boneyard", "br_dmz_bldmnytrio": "Blood Money Trios",
"mp_m_fork": "Bazaar", "br_dmz_plnbld": "Blood Money",
"mp_donetsk": "Verdansk", "br_dmz_plndcndy": "Plunder: Candy Collector",
"mp_hideout": "Khandor Hideout", "br_dmz_plndtrios": "Plunder Trios",
"loading_mp_hideout": "Khandor Hideout", "br_dmz_plunquad": "Plunder Quads",
"mp_aniyah_tac": "Aniyah Incursion", "br_dmz": "Plunder",
"mp_backlot2": "Talsik Backlot", "br_gxp_gov": "Ghosts of Verdansk",
"mp_village2": "Hovec Sawmill", "br_jugg_brquadjugr": "Juggernaut Royal Quads",
"mp_hardhat": "Hardhat", "br_jugg_brtriojugr": "Juggernaut Royal Trios",
"mp_m_wallco2": "Aisle 9", "br_jugg_jugpmpkn": "Juggourdnaut Royale",
"mp_scrapyard": "Zhokov Scrapyard", "br_kingslayer_kingsltrios": "King Slayer Trios",
"mp_m_trench": "Trench", "br_mini_miniroyale": "Mini Royale",
"mp_promenade_gw": "Barakett Promenade", "br_mini_rebirth_mini_royale_quads": "Rebirth Mini Royale Quads",
"mp_don": "Verdansk", "br_mini_rebirth_mini_royale_trios": "Rebirth Mini Royale Trios",
"mp_garden": "Cheshire Park", "br_payload_payload": "Payload",
"mp_oilrig": "Petrov Oil Rig", "br_rebirth_rbrthduos": "Resurgence Duos",
"mp_harbor": "Suldal Harbor", "br_rebirth_rbrthquad": "Rebirth Resurgance Quads",
"mp_layover_gw": "Verdansk International Airport", "br_rebirth_rbrthtrios": "Resurgence Trio",
"mp_m_cornfield": "Livestock", "br_rebirth_resurgence_mini": "Verdansk Resurgence Mini",
"mp_m_stadium": "Verdansk Stadium", "br_rebirth_resurgence_trios": "Verdansk Resurgence Trios",
"mp_malyshev": "Mialstor Tank Factory", "br_rumble_clash": "Clash",
"mp_malyshev_10v10": "Mialstor Tank Factory", "br_truckwar_trwarsquads": "Armored Royale Quads",
"mp_broadcast2": "Broadcast", "br_x2_br_reveal_x2_event/event_title_x2": "Battle of Verdansk",
"mp_riverside_gw": "Verdansk Riverside", "br_zxp_zmbroy": "Zombie Royale",
"mp_m_train": "Station", "br": "Battle Royale",
"mp_kstenod": "Verdansk (Night)", "bradley": "Infantry Assault Vehicle",
"mp_escape": "Rebirth", "brtdm_113": "Warzone Rumble",
"mp_herat": "Al-Raab Airbase", "brtdm_rmbl": "Warzone Rumble",
"mp_killhouse": "Killhouse", "career": "Career",
"mp_m_drainage": "Drainage", "chopper_gunner": "Chopper Gunner",
"war": "Team Deathmatch", "chopper_support": "Support Helo",
"sd": "Search and Destroy", "cluster_spike": "Cluster Mine",
"dom": "Domination", "conf_hc": "Kill Confirmed Hardcore",
"tdef": "Team Defender", "conf": "Kill Confirmed",
"dm": "Free-for-all", "cruise_predator": "Cruise Missile",
"koth": "Hardpoint", "ctf": "Capture the Flag",
"hq": "Headquarters", "cw": "Cold War",
"arena": "Gunfight", "cyber_hc": "Cyber Attack Hardcore",
"arm": "Ground War", "cyber": "Cyber Attack",
"conf": "Kill Confirmed", "dd_hc": "Demolition Hardcore",
"cyber": "Cyber Attack", "dd": "Demolition",
"hc_war": "Team Deathmatch Hardcore", "directional_uav": "Advanced UAV",
"hc_arena": "Gunfight Hardcore", "dm": "Free-for-all",
"hc_arm": "Ground War Hardcore", "dom_hc": "Domination Hardcore",
"hc_conf": "Kill Confirmed Hardcore", "dom": "Domination",
"hc_cyber": "Cyber Attack Hardcore", "equip_adrenaline": "Stim",
"hc_dm": "Free-for-all Hardcore", "equip_at_mine": "Proximity Mine",
"hc_hq": "Headquarters Hardcore", "equip_bunker_buster": "Drill Charge",
"hc_dom": "Domination Hardcore", "equip_c4": "C4",
"hc_sd": "Search and Destroy Hardcore", "equip_claymore": "Claymore",
"cyber_hc": "Cyber Attack Hardcore", "equip_concussion": "Stun Grenade",
"war_hc": "Team Deathmatch Hardcore", "equip_decoy": "Decoy Grenade",
"dom_hc": "Domination Hardcore", "equip_flash": "Flash Grenade",
"sd_hc": "Search and Destroy Hardcore", "equip_frag": "Frag Grenade",
"conf_hc": "Kill Confirmed Hardcore", "equip_gas_grenade": "Tear Gas",
"gun": "Gun Game", "equip_gas_mask": "Gas Mask",
"gun_hc": "Gun Game Hardcore", "equip_hb_sensor": "Heartbeat Sensor",
"siege": "Reinforce", "equip_molotov": "Molotov Cocktail",
"infect": "Infected", "equip_semtex": "Semtex",
"arena_osp": "Gunfight O.S.P.", "equip_shock_stick": "Shock Stick",
"hq_hc": "Headquarters Hardcore", "equip_shuriken": "Shuriken",
"grnd": "Grind", "equip_smoke": "Smoke Grenade",
"grind": "Grind", "equip_snapshot_grenade": "Snapshot Grenade",
"ctf": "Capture the Flag", "equip_spotter_scope": "Spotter Scope",
"br_all": "Battle Royale (All)", "equip_stim": "Stim",
"br": "Battle Royale", "equip_stun": "Stun Grenade",
"br_dmz": "Plunder", "equip_thermite": "Thermite",
"br_dmz_38": "Plunder Quads", "equip_throwing_knife": "Throwing Knife",
"br_87": "BR Solos", "equipment": "Equipment",
"br_dmz_104": "Blood Money", "fuel_airstrike": "SAE",
"koth_hc": "Hardpoint Hardcore", "gear": "Gear",
"br_25": "BR Trios", "grind": "Grind",
"br_89": "BR Quads", "grnd": "Grind",
"br_dmz_76": "Plunder Quads", "gun_hc": "Gun Game Hardcore",
"br_77": "BR Scopes & Scatterguns", "gun": "Gun Game",
"br_dmz_85": "Plunder Duos", "gunship": "Gunship",
"dd_hc": "Demolition Hardcore", "hc_arena": "Gunfight Hardcore",
"dd": "Demolition", "hc_arm": "Ground War Hardcore",
"br_71": "BR Solos", "hc_conf": "Kill Confirmed Hardcore",
"br_74": "BR Trios", "hc_cyber": "Cyber Attack Hardcore",
"br_88": "BR Duos", "hc_dm": "Free-for-all Hardcore",
"brtdm_113": "Warzone Rumble", "hc_dom": "Domination Hardcore",
"brtdm_rmbl": "Warzone Rumble", "hc_hq": "Headquarters Hardcore",
"br_brsolo": "BR Solos", "hc_sd": "Search and Destroy Hardcore",
"br_brduos": "BR Duos", "hc_war": "Team Deathmatch Hardcore",
"br_brtrios": "BR Trios", "hover_jet": "VTOL Jet",
"br_brquads": "BR Quads", "hq_hc": "Headquarters Hardcore",
"br_dmz_plnbld": "Blood Money", "hq": "Headquarters",
"br_br_real": "Realism Battle Royale", "infect": "Infected",
"br_86": "Realism Battle Royale", "iw8_ar_akilo47": "AK-47",
"br_brthquad": "BR 200 Quads", "iw8_ar_anovember94": "AN-94",
"br_jugg_brtriojugr": "Juggernaut Royal Trios", "iw8_ar_asierra12": "Oden",
"br_dmz_plunquad": "Plunder Quads", "iw8_ar_falima": "FAL",
"br_dmz_bldmnytrio": "Blood Money Trios", "iw8_ar_falpha": "FR 5.56",
"br_mini_miniroyale": "Mini Royale", "iw8_ar_galima": "CR-56 AMAX",
"br_brbbsolo": "BR Buyback Solos", "iw8_ar_kilo433": "Kilo-141",
"br_jugg_brquadjugr": "Juggernaut Royal Quads", "iw8_ar_mcharlie": "M13",
"br_kingslayer_kingsltrios": "King Slayer Trios", "iw8_ar_mike4": "M4A1",
"br_truckwar_trwarsquads": "Armored Royale Quads", "iw8_ar_scharlie": "FN Scar 17",
"br_zxp_zmbroy": "Zombie Royale", "iw8_ar_sierra552": "Grau 5.56",
"br_brhwntrios": "BR Trick-Or-Trios", "iw8_ar_tango21": "RAM-7",
"rugby": "Onslaughter", "iw8_ar_valpha": "AS VAL",
"br_brsolohwn": "BR Solo Survivor", "iw8_knife": "Combat Knife",
"br_dmz_plndcndy": "Plunder: Candy Collector", "iw8_la_gromeo": "PILA",
"br_jugg_jugpmpkn": "Juggourdnaut Royale", "iw8_la_juliet": "JOKR",
"br_rebirth_rbrthtrios": "Resurgence Trio", "iw8_la_kgolf": "Strela-P",
"br_rebirth_rbrthduos": "Resurgence Duos", "iw8_la_rpapa7": "RPG-7",
"br_rebirth_rbrthquad": "Rebirth Resurgance Quads", "iw8_lm_dblmg": "MP Juggernaut",
"br_dmz_plndtrios": "Plunder Trios", "iw8_lm_kilo121": "M91",
"br_rebirth_resurgence_trios": "Verdansk Resurgence Trios", "iw8_lm_lima86": "SA87",
"br_mini_rebirth_mini_royale_quads": "Rebirth Mini Royale Quads", "iw8_lm_mgolf34": "MG34",
"br_bodycount_pwergrb": "Power Grab", "iw8_lm_mgolf36": "Holger-26",
"br_rebirth_resurgence_mini": "Verdansk Resurgence Mini", "iw8_lm_mkilo3": "Bruen MK9",
"br_payload_payload": "Payload", "iw8_lm_pkilo": "PKM",
"br_mini_rebirth_mini_royale_trios": "Rebirth Mini Royale Trios", "iw8_lm_sierrax": "FiNN",
"br_x2_br_reveal_x2_event/event_title_x2": "Battle of Verdansk", "iw8_me_akimboblades": "Dual Kodachis",
"br_rumble_clash": "Clash", "iw8_me_akimboblunt": "Kali Sticks",
"br_dbd_dbd": "Iron Trials '84", "iw8_me_kalistick": "Kali Sticks",
"br_gxp_gov": "Ghosts of Verdansk", "iw8_me_riotshield": "Riot Shield",
"scorestreak": "Scorestreak", "iw8_pi_cpapa": ".357",
"equipment": "Equipment", "iw8_pi_decho": ".50 GS",
"gear": "Gear", "iw8_pi_golf21": "X16",
"weapon_bare_hands": "Bare Hands", "iw8_pi_mike1911": "1911",
"weapon_tactical_rifle": "Tactical Rifle", "iw8_pi_mike9": "Renetti",
"weapon_shotgun": "Shotgun", "iw8_pi_mike9a3": "Renetti",
"weapon_sniper": "Sniper", "iw8_pi_papa320": "M19",
"weapon_lmg": "Light Machine Guns", "iw8_sh_aalpha12": "JAK-12",
"weapon_launcher": "Launcher", "iw8_sh_charlie725": "725",
"weapon_pistol": "Pistol", "iw8_sh_dpapa12": "R9-0",
"weapon_smg": "Submachine Guns", "iw8_sh_mike26": "VLK Rogue",
"weapon_melee": "Melee", "iw8_sh_oscar12": "Origin 12",
"weapon_assault_rifle": "Assault Rifle", "iw8_sh_romeo870": "Model 680",
"attachments": "Attachments", "iw8_sm_augolf": "AUG",
"weapons": "Weapons", "iw8_sm_beta": "PP19 Bizon",
"specialist": "Specialist", "iw8_sm_charlie9": "ISO",
"weapon": "weapon", "iw8_sm_mpapa5": "MP5",
"weapon_special": "special", "iw8_sm_mpapa7": "MP7",
"iw8_ar_akilo47": "AK-47", "iw8_sm_papa90": "P90",
"iw8_ar_kilo433": "Kilo-141", "iw8_sm_smgolf45": "Striker 45",
"iw8_ar_mcharlie": "M13", "iw8_sm_uzulu": "Uzi",
"iw8_ar_falima": "FAL", "iw8_sm_victor": "Fennec Mk9",
"iw8_ar_asierra12": "Oden", "iw8_sn_alpha50": "AX-50",
"iw8_sm_mpapa7": "MP7", "iw8_sn_crossbow": "Crossbow",
"iw8_sm_augolf": "AUG", "iw8_sn_delta": "Dragunov",
"iw8_sm_uzulu": "Uzi", "iw8_sn_hdromeo": "HDR",
"iw8_sh_romeo870": "Model 680", "iw8_sn_kilo98": "Kar98k",
"iw8_sh_charlie725": "725", "iw8_sn_mike14": "EBR-14",
"iw8_sh_aalpha12": "JAK-12", "iw8_sn_romeo700": "SP-R 208",
"iw8_sh_oscar12": "Origin 12", "iw8_sn_sbeta": "Mk2 Carbine",
"iw8_lm_pkilo": "PKM", "iw8_sn_sksierra": "SKS",
"iw8_lm_mgolf34": "MG34", "iw8_sn_xmike109": "Rytec AMR",
"iw8_lm_lima86": "SA87", "iw9_ar_akilo": "Kastov 762",
"iw8_lm_dblmg": "MP Juggernaut", "iw9_ar_akilo105": "Kastov 545",
"iw8_sn_mike14": "EBR-14", "iw9_ar_akilo74": "Kastov-74u",
"iw8_sn_delta": "Dragunov", "iw9_ar_augolf": "STB 556",
"iw8_sn_alpha50": "AX-50", "iw9_ar_golf3": "Lachmann-762",
"iw8_sn_hdromeo": "HDR", "iw9_ar_kilo53": "Lachmann-556",
"iw8_sn_sbeta": "Mk2 Carbine", "iw9_ar_malima": "TR-76 Geist",
"iw8_pi_papa320": "M19", "iw9_ar_mcbravo": "Chimera",
"iw8_pi_cpapa": ".357", "iw9_ar_mcharlie": "M13B",
"iw8_la_rpapa7": "RPG-7", "iw9_ar_mike16": "M16",
"iw8_la_juliet": "JOKR", "iw9_ar_mike4": "M4",
"iw8_la_gromeo": "PILA", "iw9_ar_ralpha": "M13C",
"iw8_la_kgolf": "Strela-P", "iw9_ar_scharlie": "TAQ-56",
"iw8_me_riotshield": "Riot Shield", "iw9_ar_schotel": "TAQ-V",
"equip_gas_grenade": "Tear Gas", "iw9_ar_scsierra": "TAC-PRO",
"equip_snapshot_grenade": "Snapshot Grenade", "iw9_br_msecho": "FTac Recon",
"equip_decoy": "Decoy Grenade", "iw9_br_soscar14": "SO-14",
"equip_smoke": "Smoke Grenade", "iw9_dm_mike14": "EBR-14",
"equip_concussion": "Stun Grenade", "iw9_dm_mike24": "SP-R 208",
"equip_hb_sensor": "Heartbeat Sensor", "iw9_dm_msecho": "FTac Recon",
"equip_flash": "Flash Grenade", "iw9_dm_pgolf1": "LM-S",
"equip_adrenaline": "Stim", "iw9_dm_sa700": "SA-B 50",
"equip_frag": "Frag Grenade", "iw9_dm_sbeta": "Lockwood Mk2",
"equip_thermite": "Thermite", "iw9_dm_scromeo": "TAQ-M",
"equip_semtex": "Semtex", "iw9_la_gromeo": "PILA",
"equip_claymore": "Claymore", "iw9_la_juliet": "JOKR",
"equip_c4": "C4", "iw9_la_kgolf": "STRELA-P",
"equip_at_mine": "Proximity Mine", "IW9_LA_MIKE32_JUP_SP_V1": "RGL-80",
"equip_throwing_knife": "Throwing Knife", "iw9_la_rpapa7": "RPG-7",
"equip_molotov": "Molotov Cocktail", "iw9_lm_ahotel": "HCR 56",
"iw8_knife": "Combat Knife", "iw9_lm_foxtrot": "556 Icarus",
"weapon_other": "Primary Melee", "iw9_lm_kilo21": "RAPP H",
"iw8_ar_tango21": "RAM-7", "iw9_lm_ngolf7": "Sakin MG38",
"iw8_ar_falpha": "FR 5.56", "iw9_lm_rkilo": "RPK",
"iw8_ar_mike4": "M4A1", "iw9_lm_slima": "RAAL MG",
"iw8_sm_papa90": "P90", "iw9_me_fists": "Fists",
"iw8_sm_mpapa5": "MP5", "iw9_me_kamas": "Dual Kamas",
"iw8_sm_beta": "PP19 Bizon", "iw9_me_knife": "Combat Knife",
"iw8_sh_dpapa12": "R9-0", "iw9_ME_PICKAXE_V1": "Ice Axe",
"iw8_lm_mgolf36": "Holger-26", "iw9_me_pickaxe": "Pickaxe",
"iw8_sn_kilo98": "Kar98k", "iw9_me_riotshield": "Riot Shield",
"iw8_pi_mike1911": "1911", "iw9_pi_decho": ".50 GS",
"iw8_pi_golf21": "X16", "iw9_pi_golf17": "X12",
"iw8_pi_decho": ".50 GS", "iw9_pi_golf18": "X13 Auto",
"weapon_marksman": "marksman rifles", "iw9_pi_mike2011": "9mm Daemon",
"iw8_lm_kilo121": "M91", "iw9_pi_papa220": "P890",
"iw8_ar_scharlie": "FN Scar 17", "iw9_pi_swhiskey": "Basilisk",
"iw8_ar_sierra552": "Grau 5.56", "iw9_sh_charlie725": "Lockwood 300",
"iw8_sm_smgolf45": "Striker 45", "iw9_sh_mbravo": "Bryson 800",
"iw8_pi_mike9a3": "Renetti", "iw9_sh_mike1014": "Expedite 12",
"iw8_lm_mkilo3": "Bruen MK9", "iw9_sh_mviktor": "Bryson 890",
"iw8_sh_mike26": "VLK Rogue", "iw9_sm_acharlie9": "ISO 9mm",
"iw8_sn_crossbow": "Crossbow", "iw9_sm_alpha57": "FSS Hurricane",
"iw8_sn_sksierra": "SKS", "iw9_sm_apapa": "MX9",
"iw8_ar_galima": "CR-56 AMAX", "iw9_sm_aviktor": "Vaznev-9K",
"iw8_me_kalistick": "Kali Sticks", "iw9_sm_beta": "Minibak",
"iw8_sm_victor": "Fennec Mk9", "iw9_sm_mpapa5": "Lachmann Sub",
"iw8_sn_xmike109": "Rytec AMR", "iw9_sm_mpapa7": "VEL 46",
"iw8_pi_mike9": "Renetti", "iw9_sm_mpapax": "BAS-P",
"iw8_me_akimboblunt": "Kali Sticks", "iw9_sm_papa90": "PDSW 528",
"iw8_ar_anovember94": "AN-94", "iw9_SM_SDELTA": "Lachmann Shroud",
"iw8_sm_charlie9": "ISO", "iw9_sm_victor": "Fennec 45",
"iw8_me_akimboblades": "Dual Kodachis", "iw9_sn_alpha50": "Victus XMR",
"iw8_lm_sierrax": "FiNN", "iw9_sn_la700": "LA-B 330",
"iw8_ar_valpha": "AS VAL", "iw9_sn_limax": "Signal 50",
"iw8_sn_romeo700": "SP-R 208", "iw9_sn_mromeo": "MCPR-300",
"cruise_predator": "Cruise Missile", "iw9_sn_xmike2010": "SP-X 80",
"manual_turret": "Shield Turret", "juggernaut_recon": "Juggernaut Recon",
"toma_strike": "Cluster Strike", "juggernaut": "Juggernaut",
"sentry_gun": "Sentry Gun", "JUP_CP01_SH_AROMEO410": "Riveter",
"hover_jet": "VTOL Jet", "JUP_CP01_SM_COSCAR635": "AMR9",
"precision_airstrike": "Precision Airstrike", "JUP_CP05_LM_HALPHA": "TAQ Eradicator",
"juggernaut": "Juggernaut", "JUP_CP08_BR_XMIKE5": "BAS-B",
"pac_sentry": "", "JUP_CP24_PI_GLIMA21": "COR-45",
"chopper_gunner": "Chopper Gunner", "JUP_JP01_AR_GOLF36": "Holger 556",
"gunship": "Gunship", "JUP_JP01_DM_SLIMA8": "DM56",
"white_phosphorus": "White Phosphorus", "JUP_JP01_LM_MGOLF36": "Holger 26",
"nuke": "Nuke", "JUP_JP02_AR_BROMEO805": "MTZ-556",
"chopper_support": "Support Helo", "JUP_JP02_BR_BROMEO2": "MTZ-762",
"bradley": "Infantry Assault Vehicle", "JUP_JP02_DM_BROMEOP": "MTZ Interceptor",
"uav": "UAV", "JUP_JP02_SM_SCHARLIE3": "Rival-9",
"directional_uav": "Advanced UAV", "JUP_JP03_AR_AROMEO160": "ISO Hemlock",
"airdrop": "Care Package", "JUP_JP04_SM_LWHISKEY": "Striker 9",
"airdrop_multiple": "Emergency Airdrop", "JUP_JP04_SM_UMIKE": "Striker",
"radar_drone_overwatch": "Personal Radar", "JUP_JP06_LM_PKILOP": "Pulemyot 762",
"scrambler_drone_guard": "Counter UAV", "JUP_JP07_PI_UZULUM": "WSP Stinger",
"super_emp_drone": "EMP Drone", "JUP_JP07_SM_UZULU": "WSP-9",
"super_trophy": "Trophy System", "JUP_JP07_SM_UZULUP": "WSP Swarm",
"super_ammo_drop": "Munitions Box", "JUP_JP08_AR_QBRAVO97": "DG-56",
"super_weapon_drop": "Weapon Drop", "JUP_JP08_LM_QBRAVO95LSW": "DG-58 LSW",
"super_fulton": "Cash Deposit Balloon", "JUP_JP09_SH_OROMEO12": "Haymaker",
"super_armor_drop": "Armor Box", "JUP_JP10_SN_CDELTA50": "XRK Stalker",
"super_select": "Field Upgrade Pro (Any)", "JUP_JP12_PI_MIKE93": "Renetti",
"super_tac_insert": "Tactical Insertion", "JUP_JP13_DM_SVICTORK": "KVD Enforcer",
"super_recon_drone": "Recon Drone", "JUP_JP13_SN_SVICTOR": "KV Inhibitor",
"super_deadsilence": "Dead Silence", "JUP_JP14_PI_RSIERRA12": "TYR",
"super_supply_drop": "Loadout Drop", "JUP_JP16_SH_RECHO870": "Lockwood 680",
"super_tac_cover": "Deployable Cover", "JUP_JP17_SN_HSIERRA": "KATT-AMR",
"super_support_box": "Stopping Power Rounds", "JUP_JP19_AR_ACHARLIE": "MCW",
"mp_stat": "Statistic", "JUP_JP19_BR_ACHARLIE450": "Sidewinder",
"session_start": "Session Start", "JUP_JP19_DM_ACHARLIED": "MCW 6.8",
"uno": "PC", "JUP_JP22_LA_DROMEO": "Stormender",
"psn": "Playstation Network", "JUP_JP23_ME_KALPHA": "Karambit",
"xbl": "Xbox Live", "JUP_JP23_ME_KNIFE": "Gutter Knife",
"steam": "Steam", "JUP_JP25_AR_TALPHA95": "RAM-7",
"battle": "BattleNET", "JUP_JP36_AR_ANOV94": "SVA 545",
"mw": "Modern Warfare", "JUP_JP36_SN_BOSCAR": "Longbow",
"cw": "Cold War", "koth_hc": "Hardpoint Hardcore",
"mp_cartel": "Cartel", "koth": "Hardpoint",
"mp_tank": "Garrison", "LM_MKILO3": "Bruen Mk9",
"mp_miami": "Miami", "loading_mp_hideout": "Khandor Hideout",
"mp_moscow": "Moscow", "manual_turret": "Shield Turret",
"mp_satellite": "Satellite", "MGB": "MGB",
"mp_kgb": "Checkmate", "missile_turret": "SAM Turret",
"wz_forest": "Ruka", "mp_amerika": "Amerika",
"wz_ski_slopes": "Alpine", "mp_aniyah_tac": "Aniyah Incursion",
"mp_nuketown6": "Nuketown '84", "mp_aniyah": "Aniyah Palace",
"mp_tundra": "Crossroads", "mp_apocalypse": "Apocalypse",
"mp_black_sea": "Armada", "mp_backlot2": "Talsik Backlot",
"mp_mall": "The Pines", "mp_black_sea": "Armada",
"mp_raid_rm": "Raid", "mp_boneyard_gw": "Zhokov Boneyard",
"mp_sm_berlin_tunnel": "U-Bahn", "mp_broadcast2": "Broadcast",
"mp_sm_finance": "KGB", "mp_cartel": "Cartel",
"mp_sm_game_show": "Game Show", "mp_cave_am": "Azhir Cave",
"mp_sm_central": "ICBM", "mp_cave": "Azhir Cave (Night)",
"wz_sanatorium": "Sanatorium", "mp_cliffhanger": "Yamantau",
"nuketown6_holiday": "Nuketown '84 Holiday", "mp_crash2": "Crash",
"mp_express_rm": "Express", "mp_deadzone": "Arklov Peak",
"mp_apocalypse": "Apocalypse", "mp_don": "Verdansk",
"mp_sm_market": "Mansion", "mp_don4_pm": "Nuketown '84 Halloween",
"mp_miami_strike": "Miami Strike", "mp_donetsk": "Verdansk",
"wz_golova": "Golova", "mp_downtown_gw": "Tarvosk District",
"mp_cliffhanger": "Yamantau", "mp_drivein_rm": "Drive In",
"mp_sm_gas_station": "Diesel", "mp_dune": "Collateral",
"wz_duga": "Duga", "mp_echelon": "Echelon",
"mp_village_rm": "Standoff", "mp_emporium": "Atlas Superstore",
"mp_sm_amsterdam": "Amsterdam", "mp_escape": "Rebirth",
"mp_dune": "Collateral", "mp_euphrates": "Euphrates Bridge",
"mp_hijacked_rm": "Hijacked", "mp_express_rm": "Express",
"mp_paintball_rm": "Rush", "mp_farms2_gw": "Krovnik Farmland",
"mp_sm_deptstore": "Showroom", "mp_firebase": "Deprogram",
"mp_slums_rm": "Slums", "mp_garden": "Cheshire Park",
"mp_echelon": "Echelon", "mp_hackney_am": "Hackney Yard",
"mp_drivein_rm": "Drive In", "mp_hackney_yard": "Hackney Yard (Night)",
"mp_zoo_rm": "Zoo", "mp_harbor": "Suldal Harbor",
"mp_firebase": "Deprogram", "mp_hardhat": "Hardhat",
"mp_amerika": "Amerika", "mp_herat": "Al-Raab Airbase",
"mp_sm_vault": "Gluboko", "mp_hideout": "Khandor Hideout",
"mp_don4_pm": "Nuketown '84 Halloween", "mp_hijacked_rm": "Hijacked",
"iw9_ar_akilo": "Kastov 762", "mp_kgb": "Checkmate",
"iw9_ar_akilo105": "Kastov 545", "mp_killhouse": "Killhouse",
"iw9_ar_akilo74": "Kastov-74u", "mp_kstenod": "Verdansk (Night)",
"iw9_ar_augolf": "STB 556", "mp_layover_gw": "Verdansk International Airport",
"iw9_ar_golf3": "Lachmann-762", "mp_m_cage": "Atrium",
"iw9_ar_kilo53": "Lachmann-556", "mp_m_cargo": "Cargo",
"iw9_ar_mcbravo": "Chimera", "mp_m_cornfield": "Livestock",
"iw9_ar_mcharlie": "M13B", "mp_m_drainage": "Drainage",
"iw9_ar_mike16": "M16", "mp_m_fork": "Bazaar",
"iw9_ar_mike4": "M4", "mp_m_hill": "Hill",
"iw9_ar_scharlie": "TAQ-56", "mp_m_king": "King",
"iw9_ar_schotel": "TAQ-V", "mp_m_overunder": "Docks",
"iw9_ar_scsierra": "TAC-PRO", "mp_m_overwinter": "Docks",
"iw9_dm_mike14": "EBR-14", "mp_m_pine": "Pine",
"iw9_dm_mike24": "SP-R 208", "mp_m_showers": "Gulag Showers",
"iw9_dm_msecho": "FTac Recon", "mp_m_speed": "Shoot House",
"iw9_dm_pgolf1": "LM-S", "mp_m_speedball": "Speedball",
"iw9_dm_sa700": "SA-B 50", "mp_m_stack": "Stack",
"iw9_dm_sbeta": "Lockwood Mk2", "mp_m_stadium": "Verdansk Stadium",
"iw9_dm_scromeo": "TAQ-M", "mp_m_train": "Station",
"iw9_la_gromeo": "PILA", "mp_m_trench": "Trench",
"iw9_la_juliet": "JOKR", "mp_m_wallco2": "Aisle 9",
"iw9_la_kgolf": "STRELA-P", "mp_mall": "The Pines",
"iw9_la_rpapa7": "RPG-7", "mp_malyshev_10v10": "Mialstor Tank Factory",
"iw9_lm_ahotel": "HCR 56", "mp_malyshev": "Mialstor Tank Factory",
"iw9_lm_foxtrot": "556 Icarus", "mp_miami_strike": "Miami Strike",
"iw9_lm_kilo21": "RAPP H", "mp_miami": "Miami",
"iw9_lm_ngolf7": "Sakin MG38", "mp_moscow": "Moscow",
"iw9_lm_rkilo": "RPK", "mp_nuketown6": "Nuketown '84",
"iw9_lm_slima": "RAAL MG", "mp_oilrig": "Petrov Oil Rig",
"iw9_me_fists": "Fists", "mp_paintball_rm": "Rush",
"iw9_me_knife": "Combat Knife", "mp_petrograd": "St. Petrograd",
"iw9_me_riotshield": "Riot Shield", "mp_piccadilly": "Piccadilly",
"iw9_pi_decho": ".50 GS", "mp_port2_gw": "Port",
"iw9_pi_golf17": "X12", "mp_promenade_gw": "Barakett Promenade",
"iw9_pi_golf18": "X13 Auto", "mp_quarry": "Karst River Quarry",
"iw9_pi_papa220": "P890", "mp_raid_rm": "Raid",
"iw9_pi_swhiskey": "Basilisk", "mp_raid": "Grazna Raid",
"iw9_sh_charlie725": "Lockwood 300", "mp_riverside_gw": "Verdansk Riverside",
"iw9_sh_mbravo": "Bryson 800", "mp_runner_pm": "Gun Runner (Night)",
"iw9_sh_mike1014": "Expedite 12", "mp_runner": "Gun Runner",
"iw9_sh_mviktor": "Bryson 890", "mp_rust": "Rust",
"iw9_sm_alpha57": "FSS Hurricane", "mp_satellite": "Satellite",
"iw9_sm_apapa": "MX9", "mp_scrapyard": "Zhokov Scrapyard",
"iw9_sm_aviktor": "Vaznev-9K", "mp_shipment": "Shipment",
"iw9_sm_beta": "Minibak", "mp_slums_rm": "Slums",
"iw9_sm_mpapa5": "Lachmann Sub", "mp_sm_amsterdam": "Amsterdam",
"iw9_sm_mpapa7": "VEL 46", "mp_sm_berlin_tunnel": "U-Bahn",
"iw9_sm_mpapax": "BAS-P", "mp_sm_central": "ICBM",
"iw9_sm_papa90": "PDSW 528", "mp_sm_deptstore": "Showroom",
"iw9_sm_victor": "Fennec 45", "mp_sm_finance": "KGB",
"iw9_sn_alpha50": "Victus XMR", "mp_sm_game_show": "Game Show",
"iw9_sn_la700": "LA-B 330", "mp_sm_gas_station": "Diesel",
"iw9_sn_limax": "Signal 50", "mp_sm_market": "Mansion",
"iw9_sn_mromeo": "MCPR-300", "mp_sm_vault": "Gluboko",
"iw9_sn_xmike2010": "SP-X 80", "mp_spear_pm": "Rammaza (Night)",
"iw9_br_soscar14": "SO-14", "mp_spear": "Rammaza",
"iw9_ME_PICKAXE_V1": "Ice Axe", "mp_stat": "Statistic",
"iw9_SM_SDELTA": "Lachmann Shroud", "mp_tank": "Garrison",
"iw9_ar_malima": "TR-76 Geist", "mp_tundra": "Crossroads",
"iw9_ar_ralpha": "M13C", "mp_vacant": "Vacant",
"iw9_br_msecho": "FTac Recon", "mp_village_rm": "Standoff",
"iw9_me_kamas": "Dual Kamas", "mp_village2": "Hovec Sawmill",
"iw9_me_pickaxe": "Pickaxe", "mp_zoo_rm": "Zoo",
"iw9_pi_mike2011": "9mm Daemon", "mw": "Modern Warfare",
"iw9_sm_acharlie9": "ISO 9mm", "nuke": "Nuke",
"JUP_JP25_AR_TALPHA95": "RAM-7", "nuketown6_holiday": "Nuketown '84 Holiday",
"JUP_JP22_LA_DROMEO": "Stormender", "pac_sentry": "",
"JUP_JP10_SN_CDELTA50": "XRK Stalker", "precision_airstrike": "Precision Airstrike",
"equip_bunker_buster": "Drill Charge", "psn": "Playstation Network",
"equip_shock_stick": "Shock Stick", "radar_drone_overwatch": "Personal Radar",
"equip_spotter_scope": "Spotter Scope", "remote_turret": "Remote Turret",
"JUP_JP01_AR_GOLF36": "Holger 556", "rugby": "Onslaughter",
"JUP_JP02_AR_BROMEO805": "MTZ-556", "scorestreak": "Scorestreak",
"JUP_JP08_AR_QBRAVO97": "DG-56", "scrambler_drone_guard": "Counter UAV",
"JUP_JP19_AR_ACHARLIE": "MCW", "sd_hc": "Search and Destroy Hardcore",
"JUP_JP36_AR_ANOV94": "SVA 545", "sd": "Search and Destroy",
"JUP_JP03_AR_AROMEO160": "ISO Hemlock", "sentry_gun": "Sentry Gun",
"JUP_CP08_BR_XMIKE5": "BAS-B", "session_start": "Session Start",
"JUP_JP02_BR_BROMEO2": "MTZ-762", "siege": "Reinforce",
"JUP_JP19_BR_ACHARLIE450": "Sidewinder", "specialist": "Specialist",
"JUP_JP01_DM_SLIMA8": "DM56", "steam": "Steam",
"JUP_JP02_DM_BROMEOP": "MTZ Interceptor", "super_ammo_drop": "Munitions Box",
"JUP_JP13_DM_SVICTORK": "KVD Enforcer", "super_armor_drop": "Armor Box",
"JUP_JP19_DM_ACHARLIED": "MCW 6.8", "super_deadsilence": "Dead Silence",
"JUP_JP23_ME_KNIFE": "Gutter Knife", "super_emp_drone": "EMP Drone",
"JUP_JP23_ME_KALPHA": "Karambit", "super_fulton": "Cash Deposit Balloon",
"JUP_JP01_LM_MGOLF36": "Holger 26", "super_recon_drone": "Recon Drone",
"LM_MKILO3": "Bruen Mk9", "super_select": "Field Upgrade Pro (Any)",
"JUP_JP06_LM_PKILOP": "Pulemyot 762", "super_supply_drop": "Loadout Drop",
"JUP_JP08_LM_QBRAVO95LSW": "DG-58 LSW", "super_support_box": "Stopping Power Rounds",
"JUP_CP05_LM_HALPHA": "TAQ Eradicator", "super_tac_cover": "Deployable Cover",
"JUP_CP01_SM_COSCAR635": "AMR9", "super_tac_insert": "Tactical Insertion",
"JUP_JP02_SM_SCHARLIE3": "Rival-9", "super_trophy": "Trophy System",
"JUP_JP04_SM_UMIKE": "Striker", "super_weapon_drop": "Weapon Drop",
"JUP_JP04_SM_LWHISKEY": "Striker 9", "tdef": "Team Defender",
"JUP_JP07_SM_UZULU": "WSP-9", "toma_strike": "Cluster Strike",
"JUP_JP07_SM_UZULUP": "WSP Swarm", "uav": "UAV",
"JUP_CP24_PI_GLIMA21": "COR-45", "uno": "PC",
"JUP_JP07_PI_UZULUM": "WSP Stinger", "war_hc": "Team Deathmatch Hardcore",
"JUP_JP12_PI_MIKE93": "Renetti", "war": "Team Deathmatch",
"JUP_JP14_PI_RSIERRA12": "TYR", "weapon_assault_rifle": "Assault Rifle",
"IW9_LA_MIKE32_JUP_SP_V1": "RGL-80", "weapon_bare_hands": "Bare Hands",
"JUP_JP09_SH_OROMEO12": "Haymaker", "weapon_launcher": "Launcher",
"JUP_JP16_SH_RECHO870": "Lockwood 680", "weapon_lmg": "Light Machine Guns",
"JUP_CP01_SH_AROMEO410": "Riveter", "weapon_marksman": "marksman rifles",
"JUP_JP13_SN_SVICTOR": "KV Inhibitor", "weapon_melee": "Melee",
"JUP_JP17_SN_HSIERRA": "KATT-AMR", "weapon_other": "Primary Melee",
"JUP_JP36_SN_BOSCAR": "Longbow", "weapon_pistol": "Pistol",
"equip_gas_mask": "Gas Mask", "weapon_shotgun": "Shotgun",
"equip_shuriken": "Shuriken", "weapon_smg": "Submachine Guns",
"equip_stim": "Stim", "weapon_sniper": "Sniper",
"equip_stun": "Stun Grenade", "weapon_special": "special",
"fuel_airstrike": "SAE", "weapon_tactical_rifle": "Tactical Rifle",
"cluster_spike": "Cluster Mine", "weapon": "weapon",
"airdrop_escort": "Overwatch Helo", "weapons": "Weapons",
"assault_drone": "Bomb Drone", "white_phosphorus": "White Phosphorus",
"MGB": "MGB", "wz_duga": "Duga",
"assault_suit": "Assault Suit", "wz_forest": "Ruka",
"auto_drone": "Stealth Bomber", "wz_golova": "Golova",
"juggernaut_recon": "Juggernaut Recon", "wz_sanatorium": "Sanatorium",
"missile_turret": "SAM Turret", "wz_ski_slopes": "Alpine",
"remote_turret": "Remote Turret" "xbl": "Xbox Live"
} }

View File

@ -23,7 +23,8 @@ function formatDuration(seconds, isMilliseconds = false) {
if (!seconds || isNaN(seconds)) return seconds; if (!seconds || isNaN(seconds)) return seconds;
// Convert to number in case it's a string // Convert to number in case it's a string
const totalSeconds = isMilliseconds ? parseFloat(seconds) / 1000 : parseFloat(seconds); const totalSeconds =
isMilliseconds ? parseFloat(seconds) / 1000 : parseFloat(seconds);
// Calculate days, hours, minutes, seconds // Calculate days, hours, minutes, seconds
const days = Math.floor(totalSeconds / 86400); const days = Math.floor(totalSeconds / 86400);

77
src/js/data/bpProg.json Normal file
View File

@ -0,0 +1,77 @@
{
"status": "success",
"data": {
"streams": {
"loot_season_3": {
"name": "loot_season_3",
"categoryNameLabel": "Season 3",
"categoryTitleLabel": "Season 3",
"tier": 36,
"streamType": "season",
"rarity": null,
"lootType": null,
"seasonInfoUrlKey": "season-3",
"itemsObtained": null,
"premiumTokenOwnedNotRedeemed": false,
"tierSkipTokensUnredeemed": null,
"premium": false
},
"loot_season_4": {
"name": "loot_season_4",
"categoryNameLabel": "Season 4",
"categoryTitleLabel": "Season 4",
"tier": 46,
"streamType": "season",
"rarity": null,
"lootType": null,
"seasonInfoUrlKey": "season-4",
"itemsObtained": null,
"premiumTokenOwnedNotRedeemed": false,
"tierSkipTokensUnredeemed": null,
"premium": false
},
"loot_season_1": {
"name": "loot_season_1",
"categoryNameLabel": "Season 1",
"categoryTitleLabel": "Season 1",
"tier": 41,
"streamType": "season",
"rarity": null,
"lootType": null,
"seasonInfoUrlKey": "season-1",
"itemsObtained": null,
"premiumTokenOwnedNotRedeemed": false,
"tierSkipTokensUnredeemed": null,
"premium": true
},
"loot_season_2": {
"name": "loot_season_2",
"categoryNameLabel": "Season 2",
"categoryTitleLabel": "Season 2",
"tier": 67,
"streamType": "season",
"rarity": null,
"lootType": null,
"seasonInfoUrlKey": "season-2",
"itemsObtained": null,
"premiumTokenOwnedNotRedeemed": false,
"tierSkipTokensUnredeemed": null,
"premium": false
},
"loot_season_5": {
"name": "loot_season_5",
"categoryNameLabel": "Season 5",
"categoryTitleLabel": "Season 5",
"tier": 93,
"streamType": "season",
"rarity": null,
"lootType": null,
"seasonInfoUrlKey": "season-5",
"itemsObtained": null,
"premiumTokenOwnedNotRedeemed": false,
"tierSkipTokensUnredeemed": null,
"premium": false
}
}
}
}

20
src/js/index.d.ts vendored
View File

@ -66,11 +66,14 @@ declare class MW {
platform: platforms platform: platforms
) => Promise<unknown>; ) => Promise<unknown>;
matchInfo: (matchId: string, platform: platforms) => Promise<unknown>; matchInfo: (matchId: string, platform: platforms) => Promise<unknown>;
matchHeatMap: (matchId: string, platform: platforms) => Promise<unknown>;
seasonloot: (gamertag: string, platform: platforms) => Promise<unknown>; seasonloot: (gamertag: string, platform: platforms) => Promise<unknown>;
bpProg: (gamertag: string, platform: platforms) => Promise<unknown>;
bundleInfo: (gamertag: string, platform: platforms) => Promise<unknown>;
mapList: (platform: platforms) => Promise<unknown>; mapList: (platform: platforms) => Promise<unknown>;
communityMapDataForMapMode: ( communityMapDataForMapMode: (
mapName: string, mapId: string,
gameMode: string, gamemode: string,
platform: platforms platform: platforms
) => Promise<unknown>; ) => Promise<unknown>;
} }
@ -111,8 +114,11 @@ declare class CW {
platform: platforms platform: platforms
) => Promise<unknown>; ) => Promise<unknown>;
seasonloot: (gamertag: string, platform: platforms) => Promise<unknown>; seasonloot: (gamertag: string, platform: platforms) => Promise<unknown>;
bpProg: (gamertag: string, platform: platforms) => Promise<unknown>;
bundleInfo: (gamertag: string, platform: platforms) => Promise<unknown>;
mapList: (platform: platforms) => Promise<unknown>; mapList: (platform: platforms) => Promise<unknown>;
matchInfo: (matchId: string, platform: platforms) => Promise<unknown>; matchInfo: (matchId: string, platform: platforms) => Promise<unknown>;
matchHeatMap: (matchId: string, platform: platforms) => Promise<unknown>;
} }
declare class VG { declare class VG {
fullData: (gamertag: string, platform: platforms) => Promise<unknown>; fullData: (gamertag: string, platform: platforms) => Promise<unknown>;
@ -131,8 +137,11 @@ declare class VG {
platform: platforms platform: platforms
) => Promise<unknown>; ) => Promise<unknown>;
seasonloot: (gamertag: string, platform: platforms) => Promise<unknown>; seasonloot: (gamertag: string, platform: platforms) => Promise<unknown>;
bpProg: (gamertag: string, platform: platforms) => Promise<unknown>;
bundleInfo: (gamertag: string, platform: platforms) => Promise<unknown>;
mapList: (platform: platforms) => Promise<unknown>; mapList: (platform: platforms) => Promise<unknown>;
matchInfo: (matchId: string, platform: platforms) => Promise<unknown>; matchInfo: (matchId: string, platform: platforms) => Promise<unknown>;
matchHeatMap: (matchId: string, platform: platforms) => Promise<unknown>;
} }
declare class SHOP { declare class SHOP {
purchasableItems: (gameId: string) => Promise<unknown>; purchasableItems: (gameId: string) => Promise<unknown>;
@ -158,6 +167,11 @@ declare class USER {
platform: platforms, platform: platforms,
action: friendActions action: friendActions
) => Promise<unknown>; ) => Promise<unknown>;
userInfo: () => Promise<unknown>;
}
declare class DB {
accolades: () => Promise<unknown>;
allCDNData: () => Promise<unknown>;
} }
declare class ALT { declare class ALT {
search: (gamertag: string, platform: platforms) => Promise<unknown>; search: (gamertag: string, platform: platforms) => Promise<unknown>;
@ -173,6 +187,7 @@ declare const ColdWar: CW;
declare const Vanguard: VG; declare const Vanguard: VG;
declare const Store: SHOP; declare const Store: SHOP;
declare const Me: USER; declare const Me: USER;
declare const CDN: DB;
declare const Misc: ALT; declare const Misc: ALT;
export { export {
login, login,
@ -189,6 +204,7 @@ export {
Vanguard, Vanguard,
Store, Store,
Me, Me,
CDN,
Misc, Misc,
enableDebugMode, enableDebugMode,
disableDebugMode, disableDebugMode,

View File

@ -55,7 +55,7 @@ let basePostHeaders = {
'user-agent': userAgent, 'user-agent': userAgent,
}; };
let baseUrl = 'https://profile.callofduty.com'; let baseUrl = 'https://profile.callofduty.com';
let custombaseUrl = 'https://www.callofduty.com'; let baseUrlTrunc = 'https://www.callofduty.com';
let apiPath = '/api/papi-client'; let apiPath = '/api/papi-client';
let baseTelescopeUrl = 'https://telescope.callofduty.com'; let baseTelescopeUrl = 'https://telescope.callofduty.com';
let apiTelescopePath = '/api/ts-api'; let apiTelescopePath = '/api/ts-api';
@ -167,11 +167,11 @@ const sendRequest = (url) =>
throw exception; throw exception;
} }
}); });
const sendRequestCustom = (url) => const sendRequestCDN = (url) =>
tslib_1.__awaiter(void 0, void 0, void 0, function* () { tslib_1.__awaiter(void 0, void 0, void 0, function* () {
try { try {
if (!loggedIn) throw new Error('Not Logged In.'); if (!loggedIn) throw new Error('Not Logged In.');
let requestUrl = `${custombaseUrl}${apiPath}${url}`; let requestUrl = `${baseUrlTrunc}${url}`;
if (debugMode) console.log(`[DEBUG]`, `Request Uri: ${requestUrl}`); if (debugMode) console.log(`[DEBUG]`, `Request Uri: ${requestUrl}`);
if (debugMode) console.time('Round Trip'); if (debugMode) console.time('Round Trip');
const { body, statusCode } = yield (0, undici_1.request)(requestUrl, { const { body, statusCode } = yield (0, undici_1.request)(requestUrl, {
@ -193,6 +193,65 @@ const sendRequestCustom = (url) =>
throw exception; throw exception;
} }
}); });
const sendRequestCustom = (url) =>
tslib_1.__awaiter(void 0, void 0, void 0, function* () {
try {
if (!loggedIn) throw new Error('Not Logged In.');
let requestUrl = `${baseUrlTrunc}${apiPath}${url}`;
if (debugMode) console.log(`[DEBUG]`, `Request Uri: ${requestUrl}`);
if (debugMode) console.time('Round Trip');
const { body, statusCode } = yield (0, undici_1.request)(requestUrl, {
headers: baseHeaders,
});
if (debugMode) console.timeEnd('Round Trip');
if (statusCode >= 500)
throw new Error(
`Received status code: '${statusCode}'. Route may be down or not exist.`
);
let response = yield body.json();
if (debugMode)
console.log(
`[DEBUG]`,
`Body Size: ${JSON.stringify(response).length} bytes.`
);
return response;
} catch (exception) {
throw exception;
}
});
const sendRequestUserInfo = (url) =>
tslib_1.__awaiter(void 0, void 0, void 0, function* () {
try {
if (!loggedIn) throw new Error('Not Logged In.');
let requestUrl = `${baseUrl}${url}`;
if (debugMode) console.log(`[DEBUG]`, `Request Uri: ${requestUrl}`);
if (debugMode) console.time('Round Trip');
const { body, statusCode } = yield (0, undici_1.request)(requestUrl, {
headers: baseHeaders,
});
if (debugMode) console.timeEnd('Round Trip');
if (statusCode >= 500)
throw new Error(
`Received status code: '${statusCode}'. Route may be down or not exist.`
);
// Get the response as text first
let responseText = yield body.text();
// Check if this is a JSONP response (contains function wrapper)
if (responseText.startsWith('userInfo(') && responseText.endsWith(');')) {
// Extract the JSON data from between the parentheses
const jsonData = responseText.replace(/^userInfo\(|\);$/g, '');
return JSON.parse(jsonData);
} else {
// Regular JSON response
return JSON.parse(responseText);
}
} catch (exception) {
throw exception;
}
});
const sendPostRequest = (url, data) => const sendPostRequest = (url, data) =>
tslib_1.__awaiter(void 0, void 0, void 0, function* () { tslib_1.__awaiter(void 0, void 0, void 0, function* () {
try { try {
@ -315,8 +374,14 @@ class Endpoints {
`/crm/cod/v2/title/${this.game}/platform/${this.platform}/${this.lookupType}/${this.gamertag}/matches/${this.mode}/start/${startTime}/end/${endTime}`; `/crm/cod/v2/title/${this.game}/platform/${this.platform}/${this.lookupType}/${this.gamertag}/matches/${this.mode}/start/${startTime}/end/${endTime}`;
this.matchInfo = (matchId) => this.matchInfo = (matchId) =>
`/crm/cod/v2/title/${this.game}/platform/${this.platform}/fullMatch/${this.mode}/${matchId}/en`; `/crm/cod/v2/title/${this.game}/platform/${this.platform}/fullMatch/${this.mode}/${matchId}/en`;
this.matchHeatMap = (matchId) =>
`/ce/v1/title/${this.game}/platform/${this.platform}/match/${matchId}/matchMapEvents`;
this.seasonLoot = () => this.seasonLoot = () =>
`/loot/title/${this.game}/platform/${this.platform}/${this.lookupType}/${this.gamertag}/status/en`; `/loot/title/${this.game}/platform/${this.platform}/${this.lookupType}/${this.gamertag}/status/en`;
this.bpProg = () =>
`/loot/title/${this.game}/platform/${this.platform}/${this.lookupType}/${this.gamertag}/status/en`;
this.bundleInfo = () =>
`/inventory/v1/title/${this.game}/platform/${this.platform}/purchasable/${this.lookupType}/${this.gamertag}/en`;
this.mapList = () => this.mapList = () =>
`/ce/v1/title/${this.game}/platform/${this.platform}/gameType/${this.mode}/communityMapData/availability`; `/ce/v1/title/${this.game}/platform/${this.platform}/gameType/${this.mode}/communityMapData/availability`;
this.purchasableItems = (gameId) => this.purchasableItems = (gameId) =>
@ -341,8 +406,12 @@ class Endpoints {
`/codfriends/v1/${action}/${this.platform}/${this.lookupType}/${this.gamertag}`; `/codfriends/v1/${action}/${this.platform}/${this.lookupType}/${this.gamertag}`;
this.search = () => this.search = () =>
`/crm/cod/v2/platform/${this.platform}/username/${this.gamertag}/search`; `/crm/cod/v2/platform/${this.platform}/username/${this.gamertag}/search`;
this.communityMapDataForMapMode = (mapName, gameMode) => this.communityMapDataForMapMode = (mapId, gamemode) =>
`/ce/v1/title/${this.game}/platform/${this.platform}/gameType/${this.mode}/map/${mapName}/mode/${gameMode}/communityMapData`; `/ce/v1/title/${this.game}/platform/${this.platform}/gameType/${this.mode}/map/${mapId}/mode/${gamemode}/communityMapData`;
this.userInfo = () => `/cod/userInfo/${baseSsoToken}`;
this.accolades = () => `/cdn/app/configs/prod/statnames/mapping.json`;
this.allCDNData = () =>
`/content/atvi/callofduty/mycod/web/en/data/json/iq-content-xweb.js`;
this.game = game; this.game = game;
this.gamertag = gamertag; this.gamertag = gamertag;
this.platform = platform; this.platform = platform;
@ -600,6 +669,24 @@ class MW {
return yield sendRequest(endpoint.matchInfo(matchId)); return yield sendRequest(endpoint.matchInfo(matchId));
}); });
}; };
this.matchHeatMap = (matchId, platform) => {
var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
({
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform('', platform));
const endpoint = new Endpoints(
games.ModernWarfare,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return yield sendRequest(endpoint.matchHeatMap(matchId));
});
};
this.seasonloot = (gamertag, platform) => { this.seasonloot = (gamertag, platform) => {
var gamertag, platform, lookupType; var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () { return tslib_1.__awaiter(this, void 0, void 0, function* () {
@ -618,6 +705,42 @@ class MW {
return yield sendRequest(endpoint.seasonLoot()); return yield sendRequest(endpoint.seasonLoot());
}); });
}; };
this.bpProg = (gamertag, platform) => {
var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
({
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform(gamertag, platform));
const endpoint = new Endpoints(
games.ModernWarfare,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return yield sendRequest(endpoint.bpProg());
});
};
this.bundleInfo = (gamertag, platform) => {
var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
({
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform(gamertag, platform));
const endpoint = new Endpoints(
games.ModernWarfare,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return yield sendRequest(endpoint.bundleInfo());
});
};
this.mapList = (platform) => { this.mapList = (platform) => {
var gamertag, platform, lookupType; var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () { return tslib_1.__awaiter(this, void 0, void 0, function* () {
@ -636,7 +759,7 @@ class MW {
return yield sendRequest(endpoint.mapList()); return yield sendRequest(endpoint.mapList());
}); });
}; };
this.communityMapDataForMapMode = (mapName, gameMode, platform) => { this.communityMapDataForMapMode = (mapId, gamemode, platform) => {
var gamertag, platform, lookupType; var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () { return tslib_1.__awaiter(this, void 0, void 0, function* () {
({ ({
@ -652,7 +775,7 @@ class MW {
lookupType lookupType
); );
return yield sendRequestCustom( return yield sendRequestCustom(
endpoint.communityMapDataForMapMode(mapName, gameMode) endpoint.communityMapDataForMapMode(mapId, gamemode)
); );
}); });
}; };
@ -908,6 +1031,42 @@ class CW {
return yield sendRequest(endpoint.seasonLoot()); return yield sendRequest(endpoint.seasonLoot());
}); });
}; };
this.bpProg = (gamertag, platform) => {
var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
({
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform(gamertag, platform));
const endpoint = new Endpoints(
games.ColdWar,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return yield sendRequest(endpoint.bpProg());
});
};
this.bundleInfo = (gamertag, platform) => {
var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
({
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform(gamertag, platform));
const endpoint = new Endpoints(
games.ColdWar,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return yield sendRequest(endpoint.bundleInfo());
});
};
this.mapList = (platform) => { this.mapList = (platform) => {
var gamertag, platform, lookupType; var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () { return tslib_1.__awaiter(this, void 0, void 0, function* () {
@ -944,6 +1103,24 @@ class CW {
return yield sendRequest(endpoint.matchInfo(matchId)); return yield sendRequest(endpoint.matchInfo(matchId));
}); });
}; };
this.matchHeatMap = (matchId, platform) => {
var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
({
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform('', platform));
const endpoint = new Endpoints(
games.ColdWar,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return yield sendRequest(endpoint.matchHeatMap(matchId));
});
};
} }
} }
class VG { class VG {
@ -1060,6 +1237,42 @@ class VG {
return yield sendRequest(endpoint.seasonLoot()); return yield sendRequest(endpoint.seasonLoot());
}); });
}; };
this.bpProg = (gamertag, platform) => {
var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
({
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform(gamertag, platform));
const endpoint = new Endpoints(
games.Vanguard,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return yield sendRequest(endpoint.bpProg());
});
};
this.bundleInfo = (gamertag, platform) => {
var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
({
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform(gamertag, platform));
const endpoint = new Endpoints(
games.Vanguard,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return yield sendRequest(endpoint.bundleInfo());
});
};
this.mapList = (platform) => { this.mapList = (platform) => {
var gamertag, platform, lookupType; var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () { return tslib_1.__awaiter(this, void 0, void 0, function* () {
@ -1096,6 +1309,24 @@ class VG {
return yield sendRequest(endpoint.matchInfo(matchId)); return yield sendRequest(endpoint.matchInfo(matchId));
}); });
}; };
this.matchHeatMap = (matchId, platform) => {
var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
({
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform('', platform));
const endpoint = new Endpoints(
games.Vanguard,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return yield sendRequest(endpoint.matchHeatMap(matchId));
});
};
} }
} }
class SHOP { class SHOP {
@ -1184,6 +1415,17 @@ class USER {
); );
return yield sendRequest(endpoint.loggedInIdentities()); return yield sendRequest(endpoint.loggedInIdentities());
}); });
this.userInfo = () =>
tslib_1.__awaiter(this, void 0, void 0, function* () {
const endpoint = new Endpoints(
games.NULL,
'',
platforms.NULL,
modes.NULL,
''
);
return yield sendRequestUserInfo(endpoint.userInfo());
});
this.codPoints = (gamertag, platform) => { this.codPoints = (gamertag, platform) => {
var gamertag, platform, lookupType; var gamertag, platform, lookupType;
return tslib_1.__awaiter(this, void 0, void 0, function* () { return tslib_1.__awaiter(this, void 0, void 0, function* () {
@ -1269,6 +1511,34 @@ class USER {
}; };
} }
} }
class DB {
constructor() {
this.accolades = () =>
tslib_1.__awaiter(this, void 0, void 0, function* () {
const endpoint = new Endpoints(
games.NULL,
'',
platforms.NULL,
modes.NULL,
''
);
return yield sendRequestCDN(endpoint.accolades());
});
this.allCDNData = () =>
tslib_1.__awaiter(this, void 0, void 0, function* () {
const endpoint = new Endpoints(
games.NULL,
'',
platforms.NULL,
modes.NULL,
''
);
return yield sendRequestCDN(endpoint.allCDNData());
});
}
}
class ALT { class ALT {
constructor() { constructor() {
this.search = (gamertag, platform) => { this.search = (gamertag, platform) => {
@ -1318,6 +1588,9 @@ const Store = new SHOP();
exports.Store = Store; exports.Store = Store;
const Me = new USER(); const Me = new USER();
exports.Me = Me; exports.Me = Me;
const CDN = new DB();
exports.CDN = CDN;
const Misc = new ALT(); const Misc = new ALT();
exports.Misc = Misc; exports.Misc = Misc;
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

View File

@ -1,7 +1,7 @@
import { IncomingHttpHeaders } from 'http'; import { IncomingHttpHeaders } from 'http';
import { request } from 'undici'; import { request } from 'undici';
import weaponMappings from '../data/weapon-ids.json';
import wzMappings from '../data/game-modes.json'; import wzMappings from '../data/game-modes.json';
import weaponMappings from '../data/weapon-ids.json';
const userAgent: string = const userAgent: string =
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'; 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36';
@ -46,7 +46,7 @@ let basePostHeaders: CustomHeaders = {
}; };
let baseUrl: string = 'https://profile.callofduty.com'; let baseUrl: string = 'https://profile.callofduty.com';
let custombaseUrl = 'https://www.callofduty.com'; let baseUrlTrunc = 'https://www.callofduty.com';
let apiPath: string = '/api/papi-client'; let apiPath: string = '/api/papi-client';
let baseTelescopeUrl: string = 'https://telescope.callofduty.com'; let baseTelescopeUrl: string = 'https://telescope.callofduty.com';
let apiTelescopePath: string = '/api/ts-api'; let apiTelescopePath: string = '/api/ts-api';
@ -184,10 +184,10 @@ const sendRequest = async (url: string) => {
} }
}; };
const sendRequestCustom = async (url: string) => { const sendRequestCDN = async (url: string) => {
try { try {
if (!loggedIn) throw new Error('Not Logged In.'); if (!loggedIn) throw new Error('Not Logged In.');
let requestUrl = `${custombaseUrl}${apiPath}${url}`; let requestUrl = `${baseUrl}${url}`;
if (debugMode) console.log(`[DEBUG]`, `Request Uri: ${requestUrl}`); if (debugMode) console.log(`[DEBUG]`, `Request Uri: ${requestUrl}`);
if (debugMode) console.time('Round Trip'); if (debugMode) console.time('Round Trip');
@ -217,6 +217,75 @@ const sendRequestCustom = async (url: string) => {
} }
}; };
const sendRequestCustom = async (url: string) => {
try {
if (!loggedIn) throw new Error('Not Logged In.');
let requestUrl = `${baseUrlTrunc}${apiPath}${url}`;
if (debugMode) console.log(`[DEBUG]`, `Request Uri: ${requestUrl}`);
if (debugMode) console.time('Round Trip');
const { body, statusCode } = await request(requestUrl, {
headers: baseHeaders,
});
if (debugMode) console.timeEnd('Round Trip');
if (statusCode >= 500)
throw new Error(
`Received status code: '${statusCode}'. Route may be down or not exist.`
);
let response = await body.json();
if (debugMode)
console.log(
`[DEBUG]`,
`Body Size: ${JSON.stringify(response).length} bytes.`
);
return response;
} catch (exception: unknown) {
throw exception;
}
};
const sendRequestUserInfo = async (url: string) => {
try {
if (!loggedIn) throw new Error('Not Logged In.');
let requestUrl = `${baseUrl}${url}`;
if (debugMode) console.log(`[DEBUG]`, `Request Uri: ${requestUrl}`);
if (debugMode) console.time('Round Trip');
const { body, statusCode } = await request(requestUrl, {
headers: baseHeaders,
});
if (debugMode) console.timeEnd('Round Trip');
if (statusCode >= 500)
throw new Error(
`Received status code: '${statusCode}'. Route may be down or not exist.`
);
// Get the response as text first
let responseText = await body.text();
// Check if this is a JSONP response (contains function wrapper)
if (responseText.startsWith('userInfo(') && responseText.endsWith(');')) {
// Extract the JSON data from between the parentheses
const jsonData = responseText.replace(/^userInfo\(|\);$/g, '');
return JSON.parse(jsonData);
} else {
// Regular JSON response
return JSON.parse(responseText);
}
} catch (exception: unknown) {
throw exception;
}
};
const sendPostRequest = async (url: string, data: string) => { const sendPostRequest = async (url: string, data: string) => {
try { try {
if (!loggedIn) throw new Error('Not Logged In.'); if (!loggedIn) throw new Error('Not Logged In.');
@ -377,8 +446,14 @@ class Endpoints {
`/crm/cod/v2/title/${this.game}/platform/${this.platform}/${this.lookupType}/${this.gamertag}/matches/${this.mode}/start/${startTime}/end/${endTime}`; `/crm/cod/v2/title/${this.game}/platform/${this.platform}/${this.lookupType}/${this.gamertag}/matches/${this.mode}/start/${startTime}/end/${endTime}`;
matchInfo = (matchId: string) => matchInfo = (matchId: string) =>
`/crm/cod/v2/title/${this.game}/platform/${this.platform}/fullMatch/wz/${matchId}/en`; `/crm/cod/v2/title/${this.game}/platform/${this.platform}/fullMatch/wz/${matchId}/en`;
matchHeatMap = (matchId) =>
`/ce/v1/title/${this.game}/platform/${this.platform}/match/${matchId}/matchMapEvents`;
seasonLoot = () => seasonLoot = () =>
`/loot/title/${this.game}/platform/${this.platform}/${this.lookupType}/${this.gamertag}/status/en`; `/loot/title/${this.game}/platform/${this.platform}/${this.lookupType}/${this.gamertag}/status/en`;
bpProg = () =>
`/loot/title/${this.game}/platform/${this.platform}/${this.lookupType}/${this.gamertag}/status/en`;
bundleInfo = () =>
`/inventory/v1/title/${this.game}/platform/${this.platform}/purchasable/${this.lookupType}/${this.gamertag}/en`;
mapList = () => mapList = () =>
`/ce/v1/title/${this.game}/platform/${this.platform}/gameType/${this.mode}/communityMapData/availability`; `/ce/v1/title/${this.game}/platform/${this.platform}/gameType/${this.mode}/communityMapData/availability`;
purchasableItems = (gameId: string) => purchasableItems = (gameId: string) =>
@ -401,8 +476,12 @@ class Endpoints {
`/codfriends/v1/${action}/${this.platform}/${this.lookupType}/${this.gamertag}`; `/codfriends/v1/${action}/${this.platform}/${this.lookupType}/${this.gamertag}`;
search = () => search = () =>
`/crm/cod/v2/platform/${this.platform}/username/${this.gamertag}/search`; `/crm/cod/v2/platform/${this.platform}/username/${this.gamertag}/search`;
communityMapDataForMapMode = (mapName: string, gameMode: string) => communityMapDataForMapMode = (mapId: string, gamemode: string) =>
`/ce/v1/title/${this.game}/platform/${this.platform}/gameType/${this.mode}/map/${mapName}/mode/${gameMode}/communityMapData`; `/ce/v1/title/${this.game}/platform/${this.platform}/gameType/${this.mode}/map/${mapId}/mode/${gamemode}/communityMapData`;
userInfo = () => `/cod/userInfo/${baseSsoToken}`;
accolades = () => `/cdn/app/configs/prod/statnames/mapping.json`;
allCDNData = () =>
`/content/atvi/callofduty/mycod/web/en/data/json/iq-content-xweb.js`;
} }
class TelescopeEndpoints { class TelescopeEndpoints {
@ -649,6 +728,22 @@ class MW {
return await sendRequest(endpoint.matchInfo(matchId)); return await sendRequest(endpoint.matchInfo(matchId));
}; };
matchHeatMap = async (matchId: string, platform: platforms) => {
var {
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform('', platform);
const endpoint = new Endpoints(
games.ModernWarfare,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return await sendRequest(endpoint.matchHeatMap(matchId));
};
seasonloot = async (gamertag: string, platform: platforms) => { seasonloot = async (gamertag: string, platform: platforms) => {
var { var {
gamertag, gamertag,
@ -665,6 +760,38 @@ class MW {
return await sendRequest(endpoint.seasonLoot()); return await sendRequest(endpoint.seasonLoot());
}; };
bpProg = async (gamertag: string, platform: platforms) => {
var {
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform(gamertag, platform);
const endpoint = new Endpoints(
games.ModernWarfare,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return await sendRequest(endpoint.bpProg());
};
bundleInfo = async (gamertag: string, platform: platforms) => {
var {
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform(gamertag, platform);
const endpoint = new Endpoints(
games.ModernWarfare,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return await sendRequest(endpoint.bundleInfo());
};
mapList = async (platform: platforms) => { mapList = async (platform: platforms) => {
var { var {
gamertag, gamertag,
@ -680,29 +807,29 @@ class MW {
); );
return await sendRequest(endpoint.mapList()); return await sendRequest(endpoint.mapList());
}; };
}
communityMapDataForMapMode = async ( communityMapDataForMapMode = async (
mapName: string, mapId: string,
gameMode: string, gamemode: string,
platform: platforms platform: platforms
) => { ) => {
var { var {
gamertag, gamertag,
_platform: platform, _platform: platform,
lookupType, lookupType,
} = mapGamertagToPlatform('', platform); } = mapGamertagToPlatform('', platform);
const endpoint = new Endpoints( const endpoint = new Endpoints(
games.ModernWarfare, games.ModernWarfare,
gamertag, gamertag,
platform, platform,
modes.Multiplayer, modes.Multiplayer,
lookupType lookupType
); );
return await sendRequestCustom( return await sendRequestCustom(
endpoint.communityMapDataForMapMode(mapName, gameMode) endpoint.communityMapDataForMapMode(mapId, gamemode)
); );
}; };
}
class MW2 { class MW2 {
fullData = async (unoId: string) => { fullData = async (unoId: string) => {
@ -965,6 +1092,38 @@ class CW {
return await sendRequest(endpoint.seasonLoot()); return await sendRequest(endpoint.seasonLoot());
}; };
bpProg = async (gamertag: string, platform: platforms) => {
var {
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform(gamertag, platform);
const endpoint = new Endpoints(
games.ColdWar,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return await sendRequest(endpoint.bpProg());
};
bundleInfo = async (gamertag: string, platform: platforms) => {
var {
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform(gamertag, platform);
const endpoint = new Endpoints(
games.ColdWar,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return await sendRequest(endpoint.bundleInfo());
};
mapList = async (platform: platforms) => { mapList = async (platform: platforms) => {
var { var {
gamertag, gamertag,
@ -996,6 +1155,22 @@ class CW {
); );
return await sendRequest(endpoint.matchInfo(matchId)); return await sendRequest(endpoint.matchInfo(matchId));
}; };
matchHeatMap = async (matchId: string, platform: platforms) => {
var {
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform('', platform);
const endpoint = new Endpoints(
games.ColdWar,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return await sendRequest(endpoint.matchHeatMap(matchId));
};
} }
class VG { class VG {
@ -1107,6 +1282,38 @@ class VG {
return await sendRequest(endpoint.seasonLoot()); return await sendRequest(endpoint.seasonLoot());
}; };
bpProg = async (gamertag: string, platform: platforms) => {
var {
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform(gamertag, platform);
const endpoint = new Endpoints(
games.Vanguard,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return await sendRequest(endpoint.bpProg());
};
bundleInfo = async (gamertag: string, platform: platforms) => {
var {
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform(gamertag, platform);
const endpoint = new Endpoints(
games.Vanguard,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return await sendRequest(endpoint.bundleInfo());
};
mapList = async (platform: platforms) => { mapList = async (platform: platforms) => {
var { var {
gamertag, gamertag,
@ -1138,6 +1345,22 @@ class VG {
); );
return await sendRequest(endpoint.matchInfo(matchId)); return await sendRequest(endpoint.matchInfo(matchId));
}; };
matchHeatMap = async (matchId: string, platform: platforms) => {
var {
gamertag,
_platform: platform,
lookupType,
} = mapGamertagToPlatform('', platform);
const endpoint = new Endpoints(
games.Vanguard,
gamertag,
platform,
modes.Multiplayer,
lookupType
);
return await sendRequest(endpoint.matchHeatMap(matchId));
};
} }
class SHOP { class SHOP {
@ -1223,6 +1446,17 @@ class USER {
return await sendRequest(endpoint.loggedInIdentities()); return await sendRequest(endpoint.loggedInIdentities());
}; };
userInfo = async () => {
const endpoint = new Endpoints(
games.NULL,
'',
platforms.NULL,
modes.NULL,
''
);
return await sendRequestUserInfo(endpoint.userInfo());
};
codPoints = async (gamertag: string, platform: platforms) => { codPoints = async (gamertag: string, platform: platforms) => {
var { var {
gamertag, gamertag,
@ -1292,6 +1526,30 @@ class USER {
}; };
} }
class DB {
accolades = async () => {
const endpoint = new Endpoints(
games.NULL,
'',
platforms.NULL,
modes.NULL,
''
);
return await sendRequestCDN(endpoint.accolades());
};
allCDNData = async () => {
const endpoint = new Endpoints(
games.NULL,
'',
platforms.NULL,
modes.NULL,
''
);
return await sendRequestCDN(endpoint.allCDNData());
};
}
class ALT { class ALT {
search = async (gamertag: string, platform: platforms) => { search = async (gamertag: string, platform: platforms) => {
var { var {
@ -1327,24 +1585,12 @@ const ColdWar = new CW();
const Vanguard = new VG(); const Vanguard = new VG();
const Store = new SHOP(); const Store = new SHOP();
const Me = new USER(); const Me = new USER();
const CDN = new DB();
const Misc = new ALT(); const Misc = new ALT();
export { export {
login, CDN, ColdWar, disableDebugMode, enableDebugMode, friendActions, login, Me, Misc, ModernWarfare,
telescopeLogin,
platforms,
friendActions,
Warzone,
ModernWarfare,
ModernWarfare2, ModernWarfare2,
ModernWarfare3, ModernWarfare3, platforms, Store, telescopeLogin, Vanguard, Warzone, Warzone2, WarzoneMobile
WarzoneMobile,
Warzone2,
ColdWar,
Vanguard,
Store,
Me,
Misc,
enableDebugMode,
disableDebugMode,
}; };

View File

@ -1,27 +1,40 @@
import { login, ModernWarfare, platforms } from './index.js'; import {
login,
CDN,
ModernWarfare,
ColdWar,
Vanguard,
Me,
platforms,
} from './index.js';
import fs from 'fs'; import fs from 'fs';
// Me { communityMapDataForMapMode(game, platform, mode, mapID, gamemode), userInfo() };
// CDN { accolades(), allCDNData() };
// ModernWarfare: { bundleInfo(game, platform, lookupType, gamertag), matchHeatMap(game, platform, matchID), bpProg(game, platform, lookupType, gamertag) };
// ColdWar: { bundleInfo(game, platform, lookupType, gamertag), matchHeatMap(game, platform, matchID), bpProg(game, platform, lookupType, gamertag) };
// Vanguard: { bundleInfo(game, platform, lookupType, gamertag), matchHeatMap(game, platform, matchID), bpProg(game, platform, lookupType, gamertag) };
// Login using the SSO token // Login using the SSO token
const ssoToken = '<YOUR_SSO_TOKEN>'; const ssoToken = '<YOUR_SSO_TOKEN>';
(async () => { (async () => {
try { try {
await login(ssoToken); // Ensure login is successful before making requests await login(ssoToken); // Ensure login is successful before making requests
// * Fetch player data
/*
let gamertag = 'Ahrimdon';
let platform = platforms.XBOX; // Use predefined constants for platforms
// // Fetch player data let data = await ModernWarfare.fullData(gamertag, platform);
// let gamertag = 'Ahrimdon'; console.log('Fetched data:', data);
// let platform = platforms.XBOX; // Use predefined constants for platforms
// let data = await ModernWarfare.fullData(gamertag, platform); const jsonData = JSON.stringify(data, null, 2);
// console.log('Fetched data:', data);
// // Convert data to a JSON string with formatting fs.writeFileSync('playerData.json', jsonData);
// const jsonData = JSON.stringify(data, null, 2); */
// // Write the JSON data to a file /* Fetch community map data for a specific map and mode
// fs.writeFileSync('playerData.json', jsonData);
// Fetch community map data for a specific map and mode
const mapData = await ModernWarfare.communityMapDataForMapMode( const mapData = await ModernWarfare.communityMapDataForMapMode(
'mp_m_king', 'mp_m_king',
'gun', 'gun',
@ -29,11 +42,83 @@ const ssoToken = '<YOUR_SSO_TOKEN>';
); );
console.log('Map data:', mapData); console.log('Map data:', mapData);
// Save to file if needed
fs.writeFileSync('mapData.json', JSON.stringify(mapData, null, 2)); fs.writeFileSync('mapData.json', JSON.stringify(mapData, null, 2));
console.log('Map data has been saved to mapData.json'); console.log('Map data has been saved to mapData.json');
*/
// console.log('Player data has been saved to playerData.json'); // * User Info
/*
const userInfo = await Me.userInfo();
console.log('User Info:', userInfo);
fs.writeFileSync('data/userInfo.json', JSON.stringify(userInfo, null, 2));
console.log('User Info has been saved to userInfo.json');
console.log('User Info has been saved to data/userInfo.json');
*/
// * Accolades
/*
const accolades = await CDN.accolades();
console.log('Accolades:', accolades);
fs.writeFileSync('data/accolades.json', JSON.stringify(accolades, null, 2));
console.log('Accolades has been saved to accolades.json');
console.log('Accolades has been saved to data/accolades.json');
*/
// * Bundle Info
/*
let gamertag = 'Ahrimdon';
let platform = platforms.XBOX;
const bundleInfo = await ModernWarfare.bundleInfo(
gamertag,
platform,
);
console.log('Bundle Info:', bundleInfo);
// console.log('Bundle Info:', JSON.stringify(bundleInfo, null, 2));
fs.writeFileSync('bundleInfo.json', JSON.stringify(bundleInfo, null, 2));
console.log('Bundle has been saved to data/bundleInfo.json');
*/
// * All CDN Data
/*
const data = await CDN.allCDNData();
console.log('CDN Data:', data);
fs.writeFileSync('data/allCDNData.json', JSON.stringify(data, null, 2));
console.log('All CDN data has been saved to allCDNData.json');
*/
// * Heat Map
/*
let platform = platforms.XBOX;
let matchID = '10011622605675352894';
const heatmap = await Vanguard.matchHeatMap(matchID, platform);
console.log('HeatMap:', heatmap);
// console.log('Bundle Info:', JSON.stringify(bundleInfo, null, 2));
fs.writeFileSync('data/HeatMap.json', JSON.stringify(heatmap, null, 2));
console.log('Heat map has been saved to data/HeatMap.json');
*/
// * Battle Pass Progression
let gamertag = 'Ahrimdon';
let platform = platforms.XBOX;
const bp = await Vanguard.bpProg(gamertag, platform);
console.log('Battle Pass Progression:', bp);
// console.log('Bundle Info:', JSON.stringify(bundleInfo, null, 2));
fs.writeFileSync('data/bpProg.json', JSON.stringify(bp, null, 2));
console.log('Battle Pass Progression has been saved to data/HeatMap.json');
} catch (error) { } catch (error) {
console.error('Error fetching data:', error); console.error('Error fetching data:', error);
} }