diff --git a/src/data/replacements.json b/src/data/replacements.json index 0963e2a..b5b2d86 100644 --- a/src/data/replacements.json +++ b/src/data/replacements.json @@ -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" } diff --git a/src/js/backend.js b/src/js/backend.js index 2918805..dd12ae6 100644 --- a/src/js/backend.js +++ b/src/js/backend.js @@ -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); diff --git a/src/js/data/bpProg.json b/src/js/data/bpProg.json new file mode 100644 index 0000000..0701b51 --- /dev/null +++ b/src/js/data/bpProg.json @@ -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 + } + } + } +} diff --git a/src/js/index.d.ts b/src/js/index.d.ts index e0a2035..2277113 100644 --- a/src/js/index.d.ts +++ b/src/js/index.d.ts @@ -66,11 +66,14 @@ declare class MW { platform: platforms ) => Promise; matchInfo: (matchId: string, platform: platforms) => Promise; + matchHeatMap: (matchId: string, platform: platforms) => Promise; seasonloot: (gamertag: string, platform: platforms) => Promise; + bpProg: (gamertag: string, platform: platforms) => Promise; + bundleInfo: (gamertag: string, platform: platforms) => Promise; mapList: (platform: platforms) => Promise; communityMapDataForMapMode: ( - mapName: string, - gameMode: string, + mapId: string, + gamemode: string, platform: platforms ) => Promise; } @@ -111,8 +114,11 @@ declare class CW { platform: platforms ) => Promise; seasonloot: (gamertag: string, platform: platforms) => Promise; + bpProg: (gamertag: string, platform: platforms) => Promise; + bundleInfo: (gamertag: string, platform: platforms) => Promise; mapList: (platform: platforms) => Promise; matchInfo: (matchId: string, platform: platforms) => Promise; + matchHeatMap: (matchId: string, platform: platforms) => Promise; } declare class VG { fullData: (gamertag: string, platform: platforms) => Promise; @@ -131,8 +137,11 @@ declare class VG { platform: platforms ) => Promise; seasonloot: (gamertag: string, platform: platforms) => Promise; + bpProg: (gamertag: string, platform: platforms) => Promise; + bundleInfo: (gamertag: string, platform: platforms) => Promise; mapList: (platform: platforms) => Promise; matchInfo: (matchId: string, platform: platforms) => Promise; + matchHeatMap: (matchId: string, platform: platforms) => Promise; } declare class SHOP { purchasableItems: (gameId: string) => Promise; @@ -158,6 +167,11 @@ declare class USER { platform: platforms, action: friendActions ) => Promise; + userInfo: () => Promise; +} +declare class DB { + accolades: () => Promise; + allCDNData: () => Promise; } declare class ALT { search: (gamertag: string, platform: platforms) => Promise; @@ -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, diff --git a/src/js/index.js b/src/js/index.js index 2e94853..a4e6ca2 100644 --- a/src/js/index.js +++ b/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 diff --git a/src/js/index.ts b/src/js/index.ts index cbc41ed..4771b2b 100644 --- a/src/js/index.ts +++ b/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 }; + diff --git a/src/js/test.js b/src/js/test.js index 3bca504..2c41378 100644 --- a/src/js/test.js +++ b/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 = ''; (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 = ''; ); 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); }