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:
parent
a17394fb2b
commit
1ddb12c6e8
@ -1,460 +1,460 @@
|
||||
{
|
||||
"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_crash2": "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_backlot2": "Talsik Backlot",
|
||||
"mp_village2": "Hovec Sawmill",
|
||||
"mp_hardhat": "Hardhat",
|
||||
"mp_m_wallco2": "Aisle 9",
|
||||
"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_broadcast2": "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",
|
||||
"war": "Team Deathmatch",
|
||||
"sd": "Search and Destroy",
|
||||
"dom": "Domination",
|
||||
"tdef": "Team Defender",
|
||||
"dm": "Free-for-all",
|
||||
"koth": "Hardpoint",
|
||||
"hq": "Headquarters",
|
||||
"arena": "Gunfight",
|
||||
"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": "Battle Royale (All)",
|
||||
"br": "Battle Royale",
|
||||
"br_dmz": "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",
|
||||
"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",
|
||||
"weapon_assault_rifle": "Assault Rifle",
|
||||
"attachments": "Attachments",
|
||||
"weapons": "Weapons",
|
||||
"specialist": "Specialist",
|
||||
"weapon": "weapon",
|
||||
"weapon_special": "special",
|
||||
"iw8_ar_akilo47": "AK-47",
|
||||
"iw8_ar_kilo433": "Kilo-141",
|
||||
"iw8_ar_mcharlie": "M13",
|
||||
"iw8_ar_falima": "FAL",
|
||||
"iw8_ar_asierra12": "Oden",
|
||||
"iw8_sm_mpapa7": "MP7",
|
||||
"iw8_sm_augolf": "AUG",
|
||||
"iw8_sm_uzulu": "Uzi",
|
||||
"iw8_sh_romeo870": "Model 680",
|
||||
"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_delta": "Dragunov",
|
||||
"iw8_sn_alpha50": "AX-50",
|
||||
"iw8_sn_hdromeo": "HDR",
|
||||
"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": "Tear Gas",
|
||||
"equip_snapshot_grenade": "Snapshot Grenade",
|
||||
"equip_decoy": "Decoy Grenade",
|
||||
"equip_smoke": "Smoke Grenade",
|
||||
"equip_concussion": "Stun Grenade",
|
||||
"equip_hb_sensor": "Heartbeat Sensor",
|
||||
"equip_flash": "Flash Grenade",
|
||||
"equip_adrenaline": "Stim",
|
||||
"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": "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",
|
||||
"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",
|
||||
"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",
|
||||
"super_tac_cover": "Deployable Cover",
|
||||
"super_support_box": "Stopping Power Rounds",
|
||||
"mp_stat": "Statistic",
|
||||
"session_start": "Session Start",
|
||||
"uno": "PC",
|
||||
"psn": "Playstation Network",
|
||||
"xbl": "Xbox Live",
|
||||
"steam": "Steam",
|
||||
"battle": "BattleNET",
|
||||
"mw": "Modern Warfare",
|
||||
"cw": "Cold War",
|
||||
"mp_cartel": "Cartel",
|
||||
"mp_tank": "Garrison",
|
||||
"mp_miami": "Miami",
|
||||
"mp_moscow": "Moscow",
|
||||
"mp_satellite": "Satellite",
|
||||
"mp_kgb": "Checkmate",
|
||||
"wz_forest": "Ruka",
|
||||
"wz_ski_slopes": "Alpine",
|
||||
"mp_nuketown6": "Nuketown '84",
|
||||
"mp_tundra": "Crossroads",
|
||||
"mp_black_sea": "Armada",
|
||||
"mp_mall": "The Pines",
|
||||
"mp_raid_rm": "Raid",
|
||||
"mp_sm_berlin_tunnel": "U-Bahn",
|
||||
"mp_sm_finance": "KGB",
|
||||
"mp_sm_game_show": "Game Show",
|
||||
"mp_sm_central": "ICBM",
|
||||
"wz_sanatorium": "Sanatorium",
|
||||
"nuketown6_holiday": "Nuketown '84 Holiday",
|
||||
"mp_express_rm": "Express",
|
||||
"mp_apocalypse": "Apocalypse",
|
||||
"mp_sm_market": "Mansion",
|
||||
"mp_miami_strike": "Miami Strike",
|
||||
"wz_golova": "Golova",
|
||||
"mp_cliffhanger": "Yamantau",
|
||||
"mp_sm_gas_station": "Diesel",
|
||||
"wz_duga": "Duga",
|
||||
"mp_village_rm": "Standoff",
|
||||
"mp_sm_amsterdam": "Amsterdam",
|
||||
"mp_dune": "Collateral",
|
||||
"mp_hijacked_rm": "Hijacked",
|
||||
"mp_paintball_rm": "Rush",
|
||||
"mp_sm_deptstore": "Showroom",
|
||||
"mp_slums_rm": "Slums",
|
||||
"mp_echelon": "Echelon",
|
||||
"mp_drivein_rm": "Drive In",
|
||||
"mp_zoo_rm": "Zoo",
|
||||
"mp_firebase": "Deprogram",
|
||||
"mp_amerika": "Amerika",
|
||||
"mp_sm_vault": "Gluboko",
|
||||
"mp_don4_pm": "Nuketown '84 Halloween",
|
||||
"iw9_ar_akilo": "Kastov 762",
|
||||
"iw9_ar_akilo105": "Kastov 545",
|
||||
"iw9_ar_akilo74": "Kastov-74u",
|
||||
"iw9_ar_augolf": "STB 556",
|
||||
"iw9_ar_golf3": "Lachmann-762",
|
||||
"iw9_ar_kilo53": "Lachmann-556",
|
||||
"iw9_ar_mcbravo": "Chimera",
|
||||
"iw9_ar_mcharlie": "M13B",
|
||||
"iw9_ar_mike16": "M16",
|
||||
"iw9_ar_mike4": "M4",
|
||||
"iw9_ar_scharlie": "TAQ-56",
|
||||
"iw9_ar_schotel": "TAQ-V",
|
||||
"iw9_ar_scsierra": "TAC-PRO",
|
||||
"iw9_dm_mike14": "EBR-14",
|
||||
"iw9_dm_mike24": "SP-R 208",
|
||||
"iw9_dm_msecho": "FTac Recon",
|
||||
"iw9_dm_pgolf1": "LM-S",
|
||||
"iw9_dm_sa700": "SA-B 50",
|
||||
"iw9_dm_sbeta": "Lockwood Mk2",
|
||||
"iw9_dm_scromeo": "TAQ-M",
|
||||
"iw9_la_gromeo": "PILA",
|
||||
"iw9_la_juliet": "JOKR",
|
||||
"iw9_la_kgolf": "STRELA-P",
|
||||
"iw9_la_rpapa7": "RPG-7",
|
||||
"iw9_lm_ahotel": "HCR 56",
|
||||
"iw9_lm_foxtrot": "556 Icarus",
|
||||
"iw9_lm_kilo21": "RAPP H",
|
||||
"iw9_lm_ngolf7": "Sakin MG38",
|
||||
"iw9_lm_rkilo": "RPK",
|
||||
"iw9_lm_slima": "RAAL MG",
|
||||
"iw9_me_fists": "Fists",
|
||||
"iw9_me_knife": "Combat Knife",
|
||||
"iw9_me_riotshield": "Riot Shield",
|
||||
"iw9_pi_decho": ".50 GS",
|
||||
"iw9_pi_golf17": "X12",
|
||||
"iw9_pi_golf18": "X13 Auto",
|
||||
"iw9_pi_papa220": "P890",
|
||||
"iw9_pi_swhiskey": "Basilisk",
|
||||
"iw9_sh_charlie725": "Lockwood 300",
|
||||
"iw9_sh_mbravo": "Bryson 800",
|
||||
"iw9_sh_mike1014": "Expedite 12",
|
||||
"iw9_sh_mviktor": "Bryson 890",
|
||||
"iw9_sm_alpha57": "FSS Hurricane",
|
||||
"iw9_sm_apapa": "MX9",
|
||||
"iw9_sm_aviktor": "Vaznev-9K",
|
||||
"iw9_sm_beta": "Minibak",
|
||||
"iw9_sm_mpapa5": "Lachmann Sub",
|
||||
"iw9_sm_mpapa7": "VEL 46",
|
||||
"iw9_sm_mpapax": "BAS-P",
|
||||
"iw9_sm_papa90": "PDSW 528",
|
||||
"iw9_sm_victor": "Fennec 45",
|
||||
"iw9_sn_alpha50": "Victus XMR",
|
||||
"iw9_sn_la700": "LA-B 330",
|
||||
"iw9_sn_limax": "Signal 50",
|
||||
"iw9_sn_mromeo": "MCPR-300",
|
||||
"iw9_sn_xmike2010": "SP-X 80",
|
||||
"iw9_br_soscar14": "SO-14",
|
||||
"iw9_ME_PICKAXE_V1": "Ice Axe",
|
||||
"iw9_SM_SDELTA": "Lachmann Shroud",
|
||||
"iw9_ar_malima": "TR-76 Geist",
|
||||
"iw9_ar_ralpha": "M13C",
|
||||
"iw9_br_msecho": "FTac Recon",
|
||||
"iw9_me_kamas": "Dual Kamas",
|
||||
"iw9_me_pickaxe": "Pickaxe",
|
||||
"iw9_pi_mike2011": "9mm Daemon",
|
||||
"iw9_sm_acharlie9": "ISO 9mm",
|
||||
"JUP_JP25_AR_TALPHA95": "RAM-7",
|
||||
"JUP_JP22_LA_DROMEO": "Stormender",
|
||||
"JUP_JP10_SN_CDELTA50": "XRK Stalker",
|
||||
"equip_bunker_buster": "Drill Charge",
|
||||
"equip_shock_stick": "Shock Stick",
|
||||
"equip_spotter_scope": "Spotter Scope",
|
||||
"JUP_JP01_AR_GOLF36": "Holger 556",
|
||||
"JUP_JP02_AR_BROMEO805": "MTZ-556",
|
||||
"JUP_JP08_AR_QBRAVO97": "DG-56",
|
||||
"JUP_JP19_AR_ACHARLIE": "MCW",
|
||||
"JUP_JP36_AR_ANOV94": "SVA 545",
|
||||
"JUP_JP03_AR_AROMEO160": "ISO Hemlock",
|
||||
"JUP_CP08_BR_XMIKE5": "BAS-B",
|
||||
"JUP_JP02_BR_BROMEO2": "MTZ-762",
|
||||
"JUP_JP19_BR_ACHARLIE450": "Sidewinder",
|
||||
"JUP_JP01_DM_SLIMA8": "DM56",
|
||||
"JUP_JP02_DM_BROMEOP": "MTZ Interceptor",
|
||||
"JUP_JP13_DM_SVICTORK": "KVD Enforcer",
|
||||
"JUP_JP19_DM_ACHARLIED": "MCW 6.8",
|
||||
"JUP_JP23_ME_KNIFE": "Gutter Knife",
|
||||
"JUP_JP23_ME_KALPHA": "Karambit",
|
||||
"JUP_JP01_LM_MGOLF36": "Holger 26",
|
||||
"LM_MKILO3": "Bruen Mk9",
|
||||
"JUP_JP06_LM_PKILOP": "Pulemyot 762",
|
||||
"JUP_JP08_LM_QBRAVO95LSW": "DG-58 LSW",
|
||||
"JUP_CP05_LM_HALPHA": "TAQ Eradicator",
|
||||
"JUP_CP01_SM_COSCAR635": "AMR9",
|
||||
"JUP_JP02_SM_SCHARLIE3": "Rival-9",
|
||||
"JUP_JP04_SM_UMIKE": "Striker",
|
||||
"JUP_JP04_SM_LWHISKEY": "Striker 9",
|
||||
"JUP_JP07_SM_UZULU": "WSP-9",
|
||||
"JUP_JP07_SM_UZULUP": "WSP Swarm",
|
||||
"JUP_CP24_PI_GLIMA21": "COR-45",
|
||||
"JUP_JP07_PI_UZULUM": "WSP Stinger",
|
||||
"JUP_JP12_PI_MIKE93": "Renetti",
|
||||
"JUP_JP14_PI_RSIERRA12": "TYR",
|
||||
"IW9_LA_MIKE32_JUP_SP_V1": "RGL-80",
|
||||
"JUP_JP09_SH_OROMEO12": "Haymaker",
|
||||
"JUP_JP16_SH_RECHO870": "Lockwood 680",
|
||||
"JUP_CP01_SH_AROMEO410": "Riveter",
|
||||
"JUP_JP13_SN_SVICTOR": "KV Inhibitor",
|
||||
"JUP_JP17_SN_HSIERRA": "KATT-AMR",
|
||||
"JUP_JP36_SN_BOSCAR": "Longbow",
|
||||
"equip_gas_mask": "Gas Mask",
|
||||
"equip_shuriken": "Shuriken",
|
||||
"equip_stim": "Stim",
|
||||
"equip_stun": "Stun Grenade",
|
||||
"fuel_airstrike": "SAE",
|
||||
"cluster_spike": "Cluster Mine",
|
||||
"airdrop_escort": "Overwatch Helo",
|
||||
"assault_drone": "Bomb Drone",
|
||||
"MGB": "MGB",
|
||||
"assault_suit": "Assault Suit",
|
||||
"auto_drone": "Stealth Bomber",
|
||||
"juggernaut_recon": "Juggernaut Recon",
|
||||
"missile_turret": "SAM Turret",
|
||||
"remote_turret": "Remote Turret"
|
||||
"airdrop_escort": "Overwatch Helo",
|
||||
"airdrop_multiple": "Emergency Airdrop",
|
||||
"airdrop": "Care Package",
|
||||
"arena_osp": "Gunfight O.S.P.",
|
||||
"arena": "Gunfight",
|
||||
"arm": "Ground War",
|
||||
"assault_drone": "Bomb Drone",
|
||||
"assault_suit": "Assault Suit",
|
||||
"attachments": "Attachments",
|
||||
"auto_drone": "Stealth Bomber",
|
||||
"battle": "BattleNET",
|
||||
"br_25": "BR Trios",
|
||||
"br_71": "BR Solos",
|
||||
"br_74": "BR Trios",
|
||||
"br_77": "BR Scopes & Scatterguns",
|
||||
"br_86": "Realism Battle Royale",
|
||||
"br_87": "BR Solos",
|
||||
"br_88": "BR Duos",
|
||||
"br_89": "BR Quads",
|
||||
"br_all": "Battle Royale (All)",
|
||||
"br_bodycount_pwergrb": "Power Grab",
|
||||
"br_br_real": "Realism Battle Royale",
|
||||
"br_brbbsolo": "BR Buyback Solos",
|
||||
"br_brduos": "BR Duos",
|
||||
"br_brhwntrios": "BR Trick-Or-Trios",
|
||||
"br_brquads": "BR Quads",
|
||||
"br_brsolo": "BR Solos",
|
||||
"br_brsolohwn": "BR Solo Survivor",
|
||||
"br_brthquad": "BR 200 Quads",
|
||||
"br_brtrios": "BR Trios",
|
||||
"br_dbd_dbd": "Iron Trials '84",
|
||||
"br_dmz_104": "Blood Money",
|
||||
"br_dmz_38": "Plunder Quads",
|
||||
"br_dmz_76": "Plunder Quads",
|
||||
"br_dmz_85": "Plunder Duos",
|
||||
"br_dmz_bldmnytrio": "Blood Money Trios",
|
||||
"br_dmz_plnbld": "Blood Money",
|
||||
"br_dmz_plndcndy": "Plunder: Candy Collector",
|
||||
"br_dmz_plndtrios": "Plunder Trios",
|
||||
"br_dmz_plunquad": "Plunder Quads",
|
||||
"br_dmz": "Plunder",
|
||||
"br_gxp_gov": "Ghosts of Verdansk",
|
||||
"br_jugg_brquadjugr": "Juggernaut Royal Quads",
|
||||
"br_jugg_brtriojugr": "Juggernaut Royal Trios",
|
||||
"br_jugg_jugpmpkn": "Juggourdnaut Royale",
|
||||
"br_kingslayer_kingsltrios": "King Slayer Trios",
|
||||
"br_mini_miniroyale": "Mini Royale",
|
||||
"br_mini_rebirth_mini_royale_quads": "Rebirth Mini Royale Quads",
|
||||
"br_mini_rebirth_mini_royale_trios": "Rebirth Mini Royale Trios",
|
||||
"br_payload_payload": "Payload",
|
||||
"br_rebirth_rbrthduos": "Resurgence Duos",
|
||||
"br_rebirth_rbrthquad": "Rebirth Resurgance Quads",
|
||||
"br_rebirth_rbrthtrios": "Resurgence Trio",
|
||||
"br_rebirth_resurgence_mini": "Verdansk Resurgence Mini",
|
||||
"br_rebirth_resurgence_trios": "Verdansk Resurgence Trios",
|
||||
"br_rumble_clash": "Clash",
|
||||
"br_truckwar_trwarsquads": "Armored Royale Quads",
|
||||
"br_x2_br_reveal_x2_event/event_title_x2": "Battle of Verdansk",
|
||||
"br_zxp_zmbroy": "Zombie Royale",
|
||||
"br": "Battle Royale",
|
||||
"bradley": "Infantry Assault Vehicle",
|
||||
"brtdm_113": "Warzone Rumble",
|
||||
"brtdm_rmbl": "Warzone Rumble",
|
||||
"career": "Career",
|
||||
"chopper_gunner": "Chopper Gunner",
|
||||
"chopper_support": "Support Helo",
|
||||
"cluster_spike": "Cluster Mine",
|
||||
"conf_hc": "Kill Confirmed Hardcore",
|
||||
"conf": "Kill Confirmed",
|
||||
"cruise_predator": "Cruise Missile",
|
||||
"ctf": "Capture the Flag",
|
||||
"cw": "Cold War",
|
||||
"cyber_hc": "Cyber Attack Hardcore",
|
||||
"cyber": "Cyber Attack",
|
||||
"dd_hc": "Demolition Hardcore",
|
||||
"dd": "Demolition",
|
||||
"directional_uav": "Advanced UAV",
|
||||
"dm": "Free-for-all",
|
||||
"dom_hc": "Domination Hardcore",
|
||||
"dom": "Domination",
|
||||
"equip_adrenaline": "Stim",
|
||||
"equip_at_mine": "Proximity Mine",
|
||||
"equip_bunker_buster": "Drill Charge",
|
||||
"equip_c4": "C4",
|
||||
"equip_claymore": "Claymore",
|
||||
"equip_concussion": "Stun Grenade",
|
||||
"equip_decoy": "Decoy Grenade",
|
||||
"equip_flash": "Flash Grenade",
|
||||
"equip_frag": "Frag Grenade",
|
||||
"equip_gas_grenade": "Tear Gas",
|
||||
"equip_gas_mask": "Gas Mask",
|
||||
"equip_hb_sensor": "Heartbeat Sensor",
|
||||
"equip_molotov": "Molotov Cocktail",
|
||||
"equip_semtex": "Semtex",
|
||||
"equip_shock_stick": "Shock Stick",
|
||||
"equip_shuriken": "Shuriken",
|
||||
"equip_smoke": "Smoke Grenade",
|
||||
"equip_snapshot_grenade": "Snapshot Grenade",
|
||||
"equip_spotter_scope": "Spotter Scope",
|
||||
"equip_stim": "Stim",
|
||||
"equip_stun": "Stun Grenade",
|
||||
"equip_thermite": "Thermite",
|
||||
"equip_throwing_knife": "Throwing Knife",
|
||||
"equipment": "Equipment",
|
||||
"fuel_airstrike": "SAE",
|
||||
"gear": "Gear",
|
||||
"grind": "Grind",
|
||||
"grnd": "Grind",
|
||||
"gun_hc": "Gun Game Hardcore",
|
||||
"gun": "Gun Game",
|
||||
"gunship": "Gunship",
|
||||
"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_dom": "Domination Hardcore",
|
||||
"hc_hq": "Headquarters Hardcore",
|
||||
"hc_sd": "Search and Destroy Hardcore",
|
||||
"hc_war": "Team Deathmatch Hardcore",
|
||||
"hover_jet": "VTOL Jet",
|
||||
"hq_hc": "Headquarters Hardcore",
|
||||
"hq": "Headquarters",
|
||||
"infect": "Infected",
|
||||
"iw8_ar_akilo47": "AK-47",
|
||||
"iw8_ar_anovember94": "AN-94",
|
||||
"iw8_ar_asierra12": "Oden",
|
||||
"iw8_ar_falima": "FAL",
|
||||
"iw8_ar_falpha": "FR 5.56",
|
||||
"iw8_ar_galima": "CR-56 AMAX",
|
||||
"iw8_ar_kilo433": "Kilo-141",
|
||||
"iw8_ar_mcharlie": "M13",
|
||||
"iw8_ar_mike4": "M4A1",
|
||||
"iw8_ar_scharlie": "FN Scar 17",
|
||||
"iw8_ar_sierra552": "Grau 5.56",
|
||||
"iw8_ar_tango21": "RAM-7",
|
||||
"iw8_ar_valpha": "AS VAL",
|
||||
"iw8_knife": "Combat Knife",
|
||||
"iw8_la_gromeo": "PILA",
|
||||
"iw8_la_juliet": "JOKR",
|
||||
"iw8_la_kgolf": "Strela-P",
|
||||
"iw8_la_rpapa7": "RPG-7",
|
||||
"iw8_lm_dblmg": "MP Juggernaut",
|
||||
"iw8_lm_kilo121": "M91",
|
||||
"iw8_lm_lima86": "SA87",
|
||||
"iw8_lm_mgolf34": "MG34",
|
||||
"iw8_lm_mgolf36": "Holger-26",
|
||||
"iw8_lm_mkilo3": "Bruen MK9",
|
||||
"iw8_lm_pkilo": "PKM",
|
||||
"iw8_lm_sierrax": "FiNN",
|
||||
"iw8_me_akimboblades": "Dual Kodachis",
|
||||
"iw8_me_akimboblunt": "Kali Sticks",
|
||||
"iw8_me_kalistick": "Kali Sticks",
|
||||
"iw8_me_riotshield": "Riot Shield",
|
||||
"iw8_pi_cpapa": ".357",
|
||||
"iw8_pi_decho": ".50 GS",
|
||||
"iw8_pi_golf21": "X16",
|
||||
"iw8_pi_mike1911": "1911",
|
||||
"iw8_pi_mike9": "Renetti",
|
||||
"iw8_pi_mike9a3": "Renetti",
|
||||
"iw8_pi_papa320": "M19",
|
||||
"iw8_sh_aalpha12": "JAK-12",
|
||||
"iw8_sh_charlie725": "725",
|
||||
"iw8_sh_dpapa12": "R9-0",
|
||||
"iw8_sh_mike26": "VLK Rogue",
|
||||
"iw8_sh_oscar12": "Origin 12",
|
||||
"iw8_sh_romeo870": "Model 680",
|
||||
"iw8_sm_augolf": "AUG",
|
||||
"iw8_sm_beta": "PP19 Bizon",
|
||||
"iw8_sm_charlie9": "ISO",
|
||||
"iw8_sm_mpapa5": "MP5",
|
||||
"iw8_sm_mpapa7": "MP7",
|
||||
"iw8_sm_papa90": "P90",
|
||||
"iw8_sm_smgolf45": "Striker 45",
|
||||
"iw8_sm_uzulu": "Uzi",
|
||||
"iw8_sm_victor": "Fennec Mk9",
|
||||
"iw8_sn_alpha50": "AX-50",
|
||||
"iw8_sn_crossbow": "Crossbow",
|
||||
"iw8_sn_delta": "Dragunov",
|
||||
"iw8_sn_hdromeo": "HDR",
|
||||
"iw8_sn_kilo98": "Kar98k",
|
||||
"iw8_sn_mike14": "EBR-14",
|
||||
"iw8_sn_romeo700": "SP-R 208",
|
||||
"iw8_sn_sbeta": "Mk2 Carbine",
|
||||
"iw8_sn_sksierra": "SKS",
|
||||
"iw8_sn_xmike109": "Rytec AMR",
|
||||
"iw9_ar_akilo": "Kastov 762",
|
||||
"iw9_ar_akilo105": "Kastov 545",
|
||||
"iw9_ar_akilo74": "Kastov-74u",
|
||||
"iw9_ar_augolf": "STB 556",
|
||||
"iw9_ar_golf3": "Lachmann-762",
|
||||
"iw9_ar_kilo53": "Lachmann-556",
|
||||
"iw9_ar_malima": "TR-76 Geist",
|
||||
"iw9_ar_mcbravo": "Chimera",
|
||||
"iw9_ar_mcharlie": "M13B",
|
||||
"iw9_ar_mike16": "M16",
|
||||
"iw9_ar_mike4": "M4",
|
||||
"iw9_ar_ralpha": "M13C",
|
||||
"iw9_ar_scharlie": "TAQ-56",
|
||||
"iw9_ar_schotel": "TAQ-V",
|
||||
"iw9_ar_scsierra": "TAC-PRO",
|
||||
"iw9_br_msecho": "FTac Recon",
|
||||
"iw9_br_soscar14": "SO-14",
|
||||
"iw9_dm_mike14": "EBR-14",
|
||||
"iw9_dm_mike24": "SP-R 208",
|
||||
"iw9_dm_msecho": "FTac Recon",
|
||||
"iw9_dm_pgolf1": "LM-S",
|
||||
"iw9_dm_sa700": "SA-B 50",
|
||||
"iw9_dm_sbeta": "Lockwood Mk2",
|
||||
"iw9_dm_scromeo": "TAQ-M",
|
||||
"iw9_la_gromeo": "PILA",
|
||||
"iw9_la_juliet": "JOKR",
|
||||
"iw9_la_kgolf": "STRELA-P",
|
||||
"IW9_LA_MIKE32_JUP_SP_V1": "RGL-80",
|
||||
"iw9_la_rpapa7": "RPG-7",
|
||||
"iw9_lm_ahotel": "HCR 56",
|
||||
"iw9_lm_foxtrot": "556 Icarus",
|
||||
"iw9_lm_kilo21": "RAPP H",
|
||||
"iw9_lm_ngolf7": "Sakin MG38",
|
||||
"iw9_lm_rkilo": "RPK",
|
||||
"iw9_lm_slima": "RAAL MG",
|
||||
"iw9_me_fists": "Fists",
|
||||
"iw9_me_kamas": "Dual Kamas",
|
||||
"iw9_me_knife": "Combat Knife",
|
||||
"iw9_ME_PICKAXE_V1": "Ice Axe",
|
||||
"iw9_me_pickaxe": "Pickaxe",
|
||||
"iw9_me_riotshield": "Riot Shield",
|
||||
"iw9_pi_decho": ".50 GS",
|
||||
"iw9_pi_golf17": "X12",
|
||||
"iw9_pi_golf18": "X13 Auto",
|
||||
"iw9_pi_mike2011": "9mm Daemon",
|
||||
"iw9_pi_papa220": "P890",
|
||||
"iw9_pi_swhiskey": "Basilisk",
|
||||
"iw9_sh_charlie725": "Lockwood 300",
|
||||
"iw9_sh_mbravo": "Bryson 800",
|
||||
"iw9_sh_mike1014": "Expedite 12",
|
||||
"iw9_sh_mviktor": "Bryson 890",
|
||||
"iw9_sm_acharlie9": "ISO 9mm",
|
||||
"iw9_sm_alpha57": "FSS Hurricane",
|
||||
"iw9_sm_apapa": "MX9",
|
||||
"iw9_sm_aviktor": "Vaznev-9K",
|
||||
"iw9_sm_beta": "Minibak",
|
||||
"iw9_sm_mpapa5": "Lachmann Sub",
|
||||
"iw9_sm_mpapa7": "VEL 46",
|
||||
"iw9_sm_mpapax": "BAS-P",
|
||||
"iw9_sm_papa90": "PDSW 528",
|
||||
"iw9_SM_SDELTA": "Lachmann Shroud",
|
||||
"iw9_sm_victor": "Fennec 45",
|
||||
"iw9_sn_alpha50": "Victus XMR",
|
||||
"iw9_sn_la700": "LA-B 330",
|
||||
"iw9_sn_limax": "Signal 50",
|
||||
"iw9_sn_mromeo": "MCPR-300",
|
||||
"iw9_sn_xmike2010": "SP-X 80",
|
||||
"juggernaut_recon": "Juggernaut Recon",
|
||||
"juggernaut": "Juggernaut",
|
||||
"JUP_CP01_SH_AROMEO410": "Riveter",
|
||||
"JUP_CP01_SM_COSCAR635": "AMR9",
|
||||
"JUP_CP05_LM_HALPHA": "TAQ Eradicator",
|
||||
"JUP_CP08_BR_XMIKE5": "BAS-B",
|
||||
"JUP_CP24_PI_GLIMA21": "COR-45",
|
||||
"JUP_JP01_AR_GOLF36": "Holger 556",
|
||||
"JUP_JP01_DM_SLIMA8": "DM56",
|
||||
"JUP_JP01_LM_MGOLF36": "Holger 26",
|
||||
"JUP_JP02_AR_BROMEO805": "MTZ-556",
|
||||
"JUP_JP02_BR_BROMEO2": "MTZ-762",
|
||||
"JUP_JP02_DM_BROMEOP": "MTZ Interceptor",
|
||||
"JUP_JP02_SM_SCHARLIE3": "Rival-9",
|
||||
"JUP_JP03_AR_AROMEO160": "ISO Hemlock",
|
||||
"JUP_JP04_SM_LWHISKEY": "Striker 9",
|
||||
"JUP_JP04_SM_UMIKE": "Striker",
|
||||
"JUP_JP06_LM_PKILOP": "Pulemyot 762",
|
||||
"JUP_JP07_PI_UZULUM": "WSP Stinger",
|
||||
"JUP_JP07_SM_UZULU": "WSP-9",
|
||||
"JUP_JP07_SM_UZULUP": "WSP Swarm",
|
||||
"JUP_JP08_AR_QBRAVO97": "DG-56",
|
||||
"JUP_JP08_LM_QBRAVO95LSW": "DG-58 LSW",
|
||||
"JUP_JP09_SH_OROMEO12": "Haymaker",
|
||||
"JUP_JP10_SN_CDELTA50": "XRK Stalker",
|
||||
"JUP_JP12_PI_MIKE93": "Renetti",
|
||||
"JUP_JP13_DM_SVICTORK": "KVD Enforcer",
|
||||
"JUP_JP13_SN_SVICTOR": "KV Inhibitor",
|
||||
"JUP_JP14_PI_RSIERRA12": "TYR",
|
||||
"JUP_JP16_SH_RECHO870": "Lockwood 680",
|
||||
"JUP_JP17_SN_HSIERRA": "KATT-AMR",
|
||||
"JUP_JP19_AR_ACHARLIE": "MCW",
|
||||
"JUP_JP19_BR_ACHARLIE450": "Sidewinder",
|
||||
"JUP_JP19_DM_ACHARLIED": "MCW 6.8",
|
||||
"JUP_JP22_LA_DROMEO": "Stormender",
|
||||
"JUP_JP23_ME_KALPHA": "Karambit",
|
||||
"JUP_JP23_ME_KNIFE": "Gutter Knife",
|
||||
"JUP_JP25_AR_TALPHA95": "RAM-7",
|
||||
"JUP_JP36_AR_ANOV94": "SVA 545",
|
||||
"JUP_JP36_SN_BOSCAR": "Longbow",
|
||||
"koth_hc": "Hardpoint Hardcore",
|
||||
"koth": "Hardpoint",
|
||||
"LM_MKILO3": "Bruen Mk9",
|
||||
"loading_mp_hideout": "Khandor Hideout",
|
||||
"manual_turret": "Shield Turret",
|
||||
"MGB": "MGB",
|
||||
"missile_turret": "SAM Turret",
|
||||
"mp_amerika": "Amerika",
|
||||
"mp_aniyah_tac": "Aniyah Incursion",
|
||||
"mp_aniyah": "Aniyah Palace",
|
||||
"mp_apocalypse": "Apocalypse",
|
||||
"mp_backlot2": "Talsik Backlot",
|
||||
"mp_black_sea": "Armada",
|
||||
"mp_boneyard_gw": "Zhokov Boneyard",
|
||||
"mp_broadcast2": "Broadcast",
|
||||
"mp_cartel": "Cartel",
|
||||
"mp_cave_am": "Azhir Cave",
|
||||
"mp_cave": "Azhir Cave (Night)",
|
||||
"mp_cliffhanger": "Yamantau",
|
||||
"mp_crash2": "Crash",
|
||||
"mp_deadzone": "Arklov Peak",
|
||||
"mp_don": "Verdansk",
|
||||
"mp_don4_pm": "Nuketown '84 Halloween",
|
||||
"mp_donetsk": "Verdansk",
|
||||
"mp_downtown_gw": "Tarvosk District",
|
||||
"mp_drivein_rm": "Drive In",
|
||||
"mp_dune": "Collateral",
|
||||
"mp_echelon": "Echelon",
|
||||
"mp_emporium": "Atlas Superstore",
|
||||
"mp_escape": "Rebirth",
|
||||
"mp_euphrates": "Euphrates Bridge",
|
||||
"mp_express_rm": "Express",
|
||||
"mp_farms2_gw": "Krovnik Farmland",
|
||||
"mp_firebase": "Deprogram",
|
||||
"mp_garden": "Cheshire Park",
|
||||
"mp_hackney_am": "Hackney Yard",
|
||||
"mp_hackney_yard": "Hackney Yard (Night)",
|
||||
"mp_harbor": "Suldal Harbor",
|
||||
"mp_hardhat": "Hardhat",
|
||||
"mp_herat": "Al-Raab Airbase",
|
||||
"mp_hideout": "Khandor Hideout",
|
||||
"mp_hijacked_rm": "Hijacked",
|
||||
"mp_kgb": "Checkmate",
|
||||
"mp_killhouse": "Killhouse",
|
||||
"mp_kstenod": "Verdansk (Night)",
|
||||
"mp_layover_gw": "Verdansk International Airport",
|
||||
"mp_m_cage": "Atrium",
|
||||
"mp_m_cargo": "Cargo",
|
||||
"mp_m_cornfield": "Livestock",
|
||||
"mp_m_drainage": "Drainage",
|
||||
"mp_m_fork": "Bazaar",
|
||||
"mp_m_hill": "Hill",
|
||||
"mp_m_king": "King",
|
||||
"mp_m_overunder": "Docks",
|
||||
"mp_m_overwinter": "Docks",
|
||||
"mp_m_pine": "Pine",
|
||||
"mp_m_showers": "Gulag Showers",
|
||||
"mp_m_speed": "Shoot House",
|
||||
"mp_m_speedball": "Speedball",
|
||||
"mp_m_stack": "Stack",
|
||||
"mp_m_stadium": "Verdansk Stadium",
|
||||
"mp_m_train": "Station",
|
||||
"mp_m_trench": "Trench",
|
||||
"mp_m_wallco2": "Aisle 9",
|
||||
"mp_mall": "The Pines",
|
||||
"mp_malyshev_10v10": "Mialstor Tank Factory",
|
||||
"mp_malyshev": "Mialstor Tank Factory",
|
||||
"mp_miami_strike": "Miami Strike",
|
||||
"mp_miami": "Miami",
|
||||
"mp_moscow": "Moscow",
|
||||
"mp_nuketown6": "Nuketown '84",
|
||||
"mp_oilrig": "Petrov Oil Rig",
|
||||
"mp_paintball_rm": "Rush",
|
||||
"mp_petrograd": "St. Petrograd",
|
||||
"mp_piccadilly": "Piccadilly",
|
||||
"mp_port2_gw": "Port",
|
||||
"mp_promenade_gw": "Barakett Promenade",
|
||||
"mp_quarry": "Karst River Quarry",
|
||||
"mp_raid_rm": "Raid",
|
||||
"mp_raid": "Grazna Raid",
|
||||
"mp_riverside_gw": "Verdansk Riverside",
|
||||
"mp_runner_pm": "Gun Runner (Night)",
|
||||
"mp_runner": "Gun Runner",
|
||||
"mp_rust": "Rust",
|
||||
"mp_satellite": "Satellite",
|
||||
"mp_scrapyard": "Zhokov Scrapyard",
|
||||
"mp_shipment": "Shipment",
|
||||
"mp_slums_rm": "Slums",
|
||||
"mp_sm_amsterdam": "Amsterdam",
|
||||
"mp_sm_berlin_tunnel": "U-Bahn",
|
||||
"mp_sm_central": "ICBM",
|
||||
"mp_sm_deptstore": "Showroom",
|
||||
"mp_sm_finance": "KGB",
|
||||
"mp_sm_game_show": "Game Show",
|
||||
"mp_sm_gas_station": "Diesel",
|
||||
"mp_sm_market": "Mansion",
|
||||
"mp_sm_vault": "Gluboko",
|
||||
"mp_spear_pm": "Rammaza (Night)",
|
||||
"mp_spear": "Rammaza",
|
||||
"mp_stat": "Statistic",
|
||||
"mp_tank": "Garrison",
|
||||
"mp_tundra": "Crossroads",
|
||||
"mp_vacant": "Vacant",
|
||||
"mp_village_rm": "Standoff",
|
||||
"mp_village2": "Hovec Sawmill",
|
||||
"mp_zoo_rm": "Zoo",
|
||||
"mw": "Modern Warfare",
|
||||
"nuke": "Nuke",
|
||||
"nuketown6_holiday": "Nuketown '84 Holiday",
|
||||
"pac_sentry": "",
|
||||
"precision_airstrike": "Precision Airstrike",
|
||||
"psn": "Playstation Network",
|
||||
"radar_drone_overwatch": "Personal Radar",
|
||||
"remote_turret": "Remote Turret",
|
||||
"rugby": "Onslaughter",
|
||||
"scorestreak": "Scorestreak",
|
||||
"scrambler_drone_guard": "Counter UAV",
|
||||
"sd_hc": "Search and Destroy Hardcore",
|
||||
"sd": "Search and Destroy",
|
||||
"sentry_gun": "Sentry Gun",
|
||||
"session_start": "Session Start",
|
||||
"siege": "Reinforce",
|
||||
"specialist": "Specialist",
|
||||
"steam": "Steam",
|
||||
"super_ammo_drop": "Munitions Box",
|
||||
"super_armor_drop": "Armor Box",
|
||||
"super_deadsilence": "Dead Silence",
|
||||
"super_emp_drone": "EMP Drone",
|
||||
"super_fulton": "Cash Deposit Balloon",
|
||||
"super_recon_drone": "Recon Drone",
|
||||
"super_select": "Field Upgrade Pro (Any)",
|
||||
"super_supply_drop": "Loadout Drop",
|
||||
"super_support_box": "Stopping Power Rounds",
|
||||
"super_tac_cover": "Deployable Cover",
|
||||
"super_tac_insert": "Tactical Insertion",
|
||||
"super_trophy": "Trophy System",
|
||||
"super_weapon_drop": "Weapon Drop",
|
||||
"tdef": "Team Defender",
|
||||
"toma_strike": "Cluster Strike",
|
||||
"uav": "UAV",
|
||||
"uno": "PC",
|
||||
"war_hc": "Team Deathmatch Hardcore",
|
||||
"war": "Team Deathmatch",
|
||||
"weapon_assault_rifle": "Assault Rifle",
|
||||
"weapon_bare_hands": "Bare Hands",
|
||||
"weapon_launcher": "Launcher",
|
||||
"weapon_lmg": "Light Machine Guns",
|
||||
"weapon_marksman": "marksman rifles",
|
||||
"weapon_melee": "Melee",
|
||||
"weapon_other": "Primary Melee",
|
||||
"weapon_pistol": "Pistol",
|
||||
"weapon_shotgun": "Shotgun",
|
||||
"weapon_smg": "Submachine Guns",
|
||||
"weapon_sniper": "Sniper",
|
||||
"weapon_special": "special",
|
||||
"weapon_tactical_rifle": "Tactical Rifle",
|
||||
"weapon": "weapon",
|
||||
"weapons": "Weapons",
|
||||
"white_phosphorus": "White Phosphorus",
|
||||
"wz_duga": "Duga",
|
||||
"wz_forest": "Ruka",
|
||||
"wz_golova": "Golova",
|
||||
"wz_sanatorium": "Sanatorium",
|
||||
"wz_ski_slopes": "Alpine",
|
||||
"xbl": "Xbox Live"
|
||||
}
|
||||
|
@ -23,7 +23,8 @@ function formatDuration(seconds, isMilliseconds = false) {
|
||||
if (!seconds || isNaN(seconds)) return seconds;
|
||||
|
||||
// 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
|
||||
const days = Math.floor(totalSeconds / 86400);
|
||||
|
77
src/js/data/bpProg.json
Normal file
77
src/js/data/bpProg.json
Normal 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
20
src/js/index.d.ts
vendored
@ -66,11 +66,14 @@ declare class MW {
|
||||
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>;
|
||||
bpProg: (gamertag: string, platform: platforms) => Promise<unknown>;
|
||||
bundleInfo: (gamertag: string, platform: platforms) => Promise<unknown>;
|
||||
mapList: (platform: platforms) => Promise<unknown>;
|
||||
communityMapDataForMapMode: (
|
||||
mapName: string,
|
||||
gameMode: string,
|
||||
mapId: string,
|
||||
gamemode: string,
|
||||
platform: platforms
|
||||
) => Promise<unknown>;
|
||||
}
|
||||
@ -111,8 +114,11 @@ declare class CW {
|
||||
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>;
|
||||
matchInfo: (matchId: string, platform: platforms) => Promise<unknown>;
|
||||
matchHeatMap: (matchId: string, platform: platforms) => Promise<unknown>;
|
||||
}
|
||||
declare class VG {
|
||||
fullData: (gamertag: string, platform: platforms) => Promise<unknown>;
|
||||
@ -131,8 +137,11 @@ declare class VG {
|
||||
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>;
|
||||
matchInfo: (matchId: string, platform: platforms) => Promise<unknown>;
|
||||
matchHeatMap: (matchId: string, platform: platforms) => Promise<unknown>;
|
||||
}
|
||||
declare class SHOP {
|
||||
purchasableItems: (gameId: string) => Promise<unknown>;
|
||||
@ -158,6 +167,11 @@ declare class USER {
|
||||
platform: platforms,
|
||||
action: friendActions
|
||||
) => Promise<unknown>;
|
||||
userInfo: () => Promise<unknown>;
|
||||
}
|
||||
declare class DB {
|
||||
accolades: () => Promise<unknown>;
|
||||
allCDNData: () => Promise<unknown>;
|
||||
}
|
||||
declare class ALT {
|
||||
search: (gamertag: string, platform: platforms) => Promise<unknown>;
|
||||
@ -173,6 +187,7 @@ declare const ColdWar: CW;
|
||||
declare const Vanguard: VG;
|
||||
declare const Store: SHOP;
|
||||
declare const Me: USER;
|
||||
declare const CDN: DB;
|
||||
declare const Misc: ALT;
|
||||
export {
|
||||
login,
|
||||
@ -189,6 +204,7 @@ export {
|
||||
Vanguard,
|
||||
Store,
|
||||
Me,
|
||||
CDN,
|
||||
Misc,
|
||||
enableDebugMode,
|
||||
disableDebugMode,
|
||||
|
287
src/js/index.js
287
src/js/index.js
@ -55,7 +55,7 @@ let basePostHeaders = {
|
||||
'user-agent': userAgent,
|
||||
};
|
||||
let baseUrl = 'https://profile.callofduty.com';
|
||||
let custombaseUrl = 'https://www.callofduty.com';
|
||||
let baseUrlTrunc = 'https://www.callofduty.com';
|
||||
let apiPath = '/api/papi-client';
|
||||
let baseTelescopeUrl = 'https://telescope.callofduty.com';
|
||||
let apiTelescopePath = '/api/ts-api';
|
||||
@ -167,11 +167,11 @@ const sendRequest = (url) =>
|
||||
throw exception;
|
||||
}
|
||||
});
|
||||
const sendRequestCustom = (url) =>
|
||||
const sendRequestCDN = (url) =>
|
||||
tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
||||
try {
|
||||
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.time('Round Trip');
|
||||
const { body, statusCode } = yield (0, undici_1.request)(requestUrl, {
|
||||
@ -193,6 +193,65 @@ const sendRequestCustom = (url) =>
|
||||
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) =>
|
||||
tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
||||
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}`;
|
||||
this.matchInfo = (matchId) =>
|
||||
`/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 = () =>
|
||||
`/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 = () =>
|
||||
`/ce/v1/title/${this.game}/platform/${this.platform}/gameType/${this.mode}/communityMapData/availability`;
|
||||
this.purchasableItems = (gameId) =>
|
||||
@ -341,8 +406,12 @@ class Endpoints {
|
||||
`/codfriends/v1/${action}/${this.platform}/${this.lookupType}/${this.gamertag}`;
|
||||
this.search = () =>
|
||||
`/crm/cod/v2/platform/${this.platform}/username/${this.gamertag}/search`;
|
||||
this.communityMapDataForMapMode = (mapName, gameMode) =>
|
||||
`/ce/v1/title/${this.game}/platform/${this.platform}/gameType/${this.mode}/map/${mapName}/mode/${gameMode}/communityMapData`;
|
||||
this.communityMapDataForMapMode = (mapId, gamemode) =>
|
||||
`/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.gamertag = gamertag;
|
||||
this.platform = platform;
|
||||
@ -600,6 +669,24 @@ class MW {
|
||||
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) => {
|
||||
var gamertag, platform, lookupType;
|
||||
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
||||
@ -618,6 +705,42 @@ class MW {
|
||||
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) => {
|
||||
var gamertag, platform, lookupType;
|
||||
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
||||
@ -636,7 +759,7 @@ class MW {
|
||||
return yield sendRequest(endpoint.mapList());
|
||||
});
|
||||
};
|
||||
this.communityMapDataForMapMode = (mapName, gameMode, platform) => {
|
||||
this.communityMapDataForMapMode = (mapId, gamemode, platform) => {
|
||||
var gamertag, platform, lookupType;
|
||||
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
||||
({
|
||||
@ -652,7 +775,7 @@ class MW {
|
||||
lookupType
|
||||
);
|
||||
return yield sendRequestCustom(
|
||||
endpoint.communityMapDataForMapMode(mapName, gameMode)
|
||||
endpoint.communityMapDataForMapMode(mapId, gamemode)
|
||||
);
|
||||
});
|
||||
};
|
||||
@ -908,6 +1031,42 @@ class CW {
|
||||
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) => {
|
||||
var gamertag, platform, lookupType;
|
||||
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
||||
@ -944,6 +1103,24 @@ class CW {
|
||||
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 {
|
||||
@ -1060,6 +1237,42 @@ class VG {
|
||||
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) => {
|
||||
var gamertag, platform, lookupType;
|
||||
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
||||
@ -1096,6 +1309,24 @@ class VG {
|
||||
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 {
|
||||
@ -1184,6 +1415,17 @@ class USER {
|
||||
);
|
||||
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) => {
|
||||
var gamertag, platform, lookupType;
|
||||
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 {
|
||||
constructor() {
|
||||
this.search = (gamertag, platform) => {
|
||||
@ -1318,6 +1588,9 @@ const Store = new SHOP();
|
||||
exports.Store = Store;
|
||||
const Me = new USER();
|
||||
exports.Me = Me;
|
||||
const CDN = new DB();
|
||||
exports.CDN = CDN;
|
||||
const Misc = new ALT();
|
||||
exports.Misc = Misc;
|
||||
|
||||
//# sourceMappingURL=index.js.map
|
||||
|
334
src/js/index.ts
334
src/js/index.ts
@ -1,7 +1,7 @@
|
||||
import { IncomingHttpHeaders } from 'http';
|
||||
import { request } from 'undici';
|
||||
import weaponMappings from '../data/weapon-ids.json';
|
||||
import wzMappings from '../data/game-modes.json';
|
||||
import weaponMappings from '../data/weapon-ids.json';
|
||||
|
||||
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';
|
||||
@ -46,7 +46,7 @@ let basePostHeaders: CustomHeaders = {
|
||||
};
|
||||
|
||||
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 baseTelescopeUrl: string = 'https://telescope.callofduty.com';
|
||||
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 {
|
||||
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.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) => {
|
||||
try {
|
||||
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}`;
|
||||
matchInfo = (matchId: string) =>
|
||||
`/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 = () =>
|
||||
`/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 = () =>
|
||||
`/ce/v1/title/${this.game}/platform/${this.platform}/gameType/${this.mode}/communityMapData/availability`;
|
||||
purchasableItems = (gameId: string) =>
|
||||
@ -401,8 +476,12 @@ class Endpoints {
|
||||
`/codfriends/v1/${action}/${this.platform}/${this.lookupType}/${this.gamertag}`;
|
||||
search = () =>
|
||||
`/crm/cod/v2/platform/${this.platform}/username/${this.gamertag}/search`;
|
||||
communityMapDataForMapMode = (mapName: string, gameMode: string) =>
|
||||
`/ce/v1/title/${this.game}/platform/${this.platform}/gameType/${this.mode}/map/${mapName}/mode/${gameMode}/communityMapData`;
|
||||
communityMapDataForMapMode = (mapId: string, gamemode: string) =>
|
||||
`/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 {
|
||||
@ -649,6 +728,22 @@ class MW {
|
||||
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) => {
|
||||
var {
|
||||
gamertag,
|
||||
@ -665,6 +760,38 @@ class MW {
|
||||
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) => {
|
||||
var {
|
||||
gamertag,
|
||||
@ -680,29 +807,29 @@ class MW {
|
||||
);
|
||||
return await sendRequest(endpoint.mapList());
|
||||
};
|
||||
}
|
||||
|
||||
communityMapDataForMapMode = async (
|
||||
mapName: string,
|
||||
gameMode: string,
|
||||
platform: platforms
|
||||
) => {
|
||||
var {
|
||||
gamertag,
|
||||
_platform: platform,
|
||||
lookupType,
|
||||
} = mapGamertagToPlatform('', platform);
|
||||
const endpoint = new Endpoints(
|
||||
games.ModernWarfare,
|
||||
gamertag,
|
||||
platform,
|
||||
modes.Multiplayer,
|
||||
lookupType
|
||||
);
|
||||
return await sendRequestCustom(
|
||||
endpoint.communityMapDataForMapMode(mapName, gameMode)
|
||||
);
|
||||
};
|
||||
communityMapDataForMapMode = async (
|
||||
mapId: string,
|
||||
gamemode: string,
|
||||
platform: platforms
|
||||
) => {
|
||||
var {
|
||||
gamertag,
|
||||
_platform: platform,
|
||||
lookupType,
|
||||
} = mapGamertagToPlatform('', platform);
|
||||
const endpoint = new Endpoints(
|
||||
games.ModernWarfare,
|
||||
gamertag,
|
||||
platform,
|
||||
modes.Multiplayer,
|
||||
lookupType
|
||||
);
|
||||
return await sendRequestCustom(
|
||||
endpoint.communityMapDataForMapMode(mapId, gamemode)
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
class MW2 {
|
||||
fullData = async (unoId: string) => {
|
||||
@ -965,6 +1092,38 @@ class CW {
|
||||
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) => {
|
||||
var {
|
||||
gamertag,
|
||||
@ -996,6 +1155,22 @@ class CW {
|
||||
);
|
||||
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 {
|
||||
@ -1107,6 +1282,38 @@ class VG {
|
||||
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) => {
|
||||
var {
|
||||
gamertag,
|
||||
@ -1138,6 +1345,22 @@ class VG {
|
||||
);
|
||||
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 {
|
||||
@ -1223,6 +1446,17 @@ class USER {
|
||||
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) => {
|
||||
var {
|
||||
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 {
|
||||
search = async (gamertag: string, platform: platforms) => {
|
||||
var {
|
||||
@ -1327,24 +1585,12 @@ const ColdWar = new CW();
|
||||
const Vanguard = new VG();
|
||||
const Store = new SHOP();
|
||||
const Me = new USER();
|
||||
const CDN = new DB();
|
||||
const Misc = new ALT();
|
||||
|
||||
export {
|
||||
login,
|
||||
telescopeLogin,
|
||||
platforms,
|
||||
friendActions,
|
||||
Warzone,
|
||||
ModernWarfare,
|
||||
CDN, ColdWar, disableDebugMode, enableDebugMode, friendActions, login, Me, Misc, ModernWarfare,
|
||||
ModernWarfare2,
|
||||
ModernWarfare3,
|
||||
WarzoneMobile,
|
||||
Warzone2,
|
||||
ColdWar,
|
||||
Vanguard,
|
||||
Store,
|
||||
Me,
|
||||
Misc,
|
||||
enableDebugMode,
|
||||
disableDebugMode,
|
||||
ModernWarfare3, platforms, Store, telescopeLogin, Vanguard, Warzone, Warzone2, WarzoneMobile
|
||||
};
|
||||
|
||||
|
113
src/js/test.js
113
src/js/test.js
@ -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';
|
||||
|
||||
// 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
|
||||
const ssoToken = '<YOUR_SSO_TOKEN>';
|
||||
|
||||
(async () => {
|
||||
try {
|
||||
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 gamertag = 'Ahrimdon';
|
||||
// let platform = platforms.XBOX; // Use predefined constants for platforms
|
||||
let data = await ModernWarfare.fullData(gamertag, platform);
|
||||
console.log('Fetched data:', data);
|
||||
|
||||
// let data = await ModernWarfare.fullData(gamertag, platform);
|
||||
// console.log('Fetched data:', data);
|
||||
const jsonData = JSON.stringify(data, null, 2);
|
||||
|
||||
// // Convert data to a JSON string with formatting
|
||||
// const jsonData = JSON.stringify(data, null, 2);
|
||||
fs.writeFileSync('playerData.json', jsonData);
|
||||
*/
|
||||
|
||||
// // Write the JSON data to a file
|
||||
// fs.writeFileSync('playerData.json', jsonData);
|
||||
|
||||
// Fetch community map data for a specific map and mode
|
||||
/* Fetch community map data for a specific map and mode
|
||||
const mapData = await ModernWarfare.communityMapDataForMapMode(
|
||||
'mp_m_king',
|
||||
'gun',
|
||||
@ -29,11 +42,83 @@ const ssoToken = '<YOUR_SSO_TOKEN>';
|
||||
);
|
||||
console.log('Map data:', mapData);
|
||||
|
||||
// Save to file if needed
|
||||
fs.writeFileSync('mapData.json', JSON.stringify(mapData, null, 2));
|
||||
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) {
|
||||
console.error('Error fetching data:', error);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user