UNPKG

priv8-cs

Version:

Multi-Platform Status API Module For XBL and PSN.

343 lines (334 loc) 18.1 kB
/** * @private * @author Joker * @name RockstarGamesStatus * @copyright 2020, GTChecker.com, All rights reserved. * @description Gets GTA/Rockstar Statuses Live. * @returns JSON Object of retrieved information. * @license MIT */ var axios = require("axios"); let Url; let result = []; class RockstarGamesStatus { static async NetworkStatus(region) { switch (region) { case "New York": case "NY": Url = "https://support.rockstargames.com/services/status.json?tz=America/New_York"; break; case "UK": case "United Kingdom": Url = "https://support.rockstargames.com/services/status.json?tz=Europe/London"; break; case "ES": case "Spain": Url = "https://support.rockstargames.com/services/status.json?tz=Europe/Madrid"; break; default: Url = "https://support.rockstargames.com/services/status.json?tz=Europe/London"; break; } await axios.get(Url, { timeout: 25000, headers: { "User-Agent": "Mozilla/5.0; (compatiable; GTAStatus/1.0.0 +https://github.com/GTChecker/GTAstatus)" } }).then((res) => { result = [{ general: { id: res.data.statuses[0].id, name: res.data.statuses[0].name, status: res.data.statuses[0].status_tag.replace("Up", "ONLINE"), recent_update: new Date(res.data.statuses[0].recent_update).toLocaleString('en-GB', { timeZone: 'UTC' }), platforms: { alert: { id: res.data.statuses[0]['services_platforms'][0].id, platform: res.data.statuses[0]['services_platforms'][0].name, updated: res.data.statuses[0]['services_platforms'][0].updated, status: res.data.statuses[0]['services_platforms'][0].service_status.status.replace("UP", "ONLINE") } } }, rdo: { id: res.data.statuses[1].id, name: res.data.statuses[1].name, status: res.data.statuses[1].status_tag.replace("Up", "ONLINE"), recent_update: res.data.statuses[1].recent_update, platforms: { pc: { id: res.data.statuses[1]['services_platforms'][0].id, platform: res.data.statuses[1]['services_platforms'][0].name, updated: res.data.statuses[1]['services_platforms'][0].updated, status: res.data.statuses[1]['services_platforms'][0].service_status.status.replace("UP", "ONLINE") }, ps4: { id: res.data.statuses[1]['services_platforms'][1].id, platform: res.data.statuses[1]['services_platforms'][1].name, updated: res.data.statuses[1]['services_platforms'][1].updated, status: res.data.statuses[1]['services_platforms'][1].service_status.status.replace("UP", "ONLINE") }, xbox_one: { id: res.data.statuses[1]['services_platforms'][2].id, platform: res.data.statuses[1]['services_platforms'][2].name, updated: res.data.statuses[1]['services_platforms'][2].updated, status: res.data.statuses[1]['services_platforms'][2].service_status.status.replace("UP", "ONLINE") }, stadia: { id: res.data.statuses[1]['services_platforms'][3].id, platform: res.data.statuses[1]['services_platforms'][3].name, updated: res.data.statuses[1]['services_platforms'][3].updated, status: res.data.statuses[1]['services_platforms'][3].service_status.status.replace("UP", "ONLINE") } } }, gtao: { id: res.data.statuses[2].id, name: res.data.statuses[2].name.replace("Grand Theft Auto", "GTA"), status: res.data.statuses[2].status_tag.replace("Up", "ONLINE"), recent_update: res.data.statuses[2].recent_update, platforms: { pc: { id: res.data.statuses[2]['services_platforms'][0].id, platform: res.data.statuses[2]['services_platforms'][0].name, updated: res.data.statuses[2]['services_platforms'][0].updated, status: res.data.statuses[2]['services_platforms'][0].service_status.status.replace("UP", "ONLINE") }, ps4: { id: res.data.statuses[2]['services_platforms'][1].id, platform: res.data.statuses[2]['services_platforms'][1].name, updated: res.data.statuses[2]['services_platforms'][1].updated, status: res.data.statuses[2]['services_platforms'][1].service_status.status.replace("UP", "ONLINE") }, xbox_one: { id: res.data.statuses[2]['services_platforms'][2].id, platform: res.data.statuses[2]['services_platforms'][2].name, updated: res.data.statuses[2]['services_platforms'][2].updated, status: res.data.statuses[2]['services_platforms'][2].service_status.status.replace("UP", "ONLINE") }, ps3: { id: res.data.statuses[2]['services_platforms'][3].id, platform: res.data.statuses[2]['services_platforms'][3].name, updated: res.data.statuses[2]['services_platforms'][3].updated, status: res.data.statuses[2]['services_platforms'][3].service_status.status.replace("UP", "ONLINE") }, xbox_360: { id: res.data.statuses[2]['services_platforms'][4].id, platform: res.data.statuses[2]['services_platforms'][4].name, updated: res.data.statuses[2]['services_platforms'][4].updated, status: res.data.statuses[2]['services_platforms'][4].service_status.status.replace("UP", "ONLINE") } } }, sc: { id: res.data.statuses[3].id, name: res.data.statuses[3].name, status: res.data.statuses[3].status_tag.replace("Up", "ONLINE"), recent_update: res.data.statuses[3].recent_update, platforms: { features: { id: res.data.statuses[3]['services_platforms'][0].id, platform: res.data.statuses[3]['services_platforms'][0].name, updated: res.data.statuses[3]['services_platforms'][0].updated, status: res.data.statuses[3]['services_platforms'][0].service_status.status.replace("UP", "ONLINE") } } }, support: { id: res.data.statuses[4].id, name: res.data.statuses[4].name, status: res.data.statuses[4].status_tag.replace("Up", "ONLINE"), recent_update: res.data.statuses[4].recent_update, platforms: { alert: { id: res.data.statuses[4]['services_platforms'][0].id, platform: res.data.statuses[4]['services_platforms'][0].name, updated: res.data.statuses[4]['services_platforms'][0].updated, status: res.data.statuses[4]['services_platforms'][0].service_status.status.replace("UP", "ONLINE") } } }, rglauncher: { id: res.data.statuses[5].id, name: res.data.statuses[5].name, status: res.data.statuses[5].status_tag.replace("Up", "ONLINE"), recent_update: res.data.statuses[5].recent_update, platforms: { auth: { id: res.data.statuses[5]['services_platforms'][0].id, name: res.data.statuses[5]['services_platforms'][0].name, status: res.data.statuses[5]['services_platforms'][0].service_status.status.replace("UP", "ONLINE"), updated: res.data.statuses[5]['services_platforms'][0].updated, }, store: { id: res.data.statuses[5]['services_platforms'][1].id, name: res.data.statuses[5]['services_platforms'][1].name, status: res.data.statuses[5]['services_platforms'][1].service_status.status.replace("UP", "ONLINE"), updated: res.data.statuses[5]['services_platforms'][1].updated, }, cloud: { id: res.data.statuses[5]['services_platforms'][2].id, name: res.data.statuses[5]['services_platforms'][2].name, status: res.data.statuses[5]['services_platforms'][2].service_status.status.replace("UP", "ONLINE"), updated: res.data.statuses[5]['services_platforms'][2].updated, }, downloads: { id: res.data.statuses[5]['services_platforms'][3].id, name: res.data.statuses[5]['services_platforms'][3].name, status: res.data.statuses[5]['services_platforms'][3].service_status.status.replace("UP", "ONLINE"), updated: res.data.statuses[5]['services_platforms'][3].updated, }, } }, credits: { copyright: "Copyright 2020, GTChecker.com, All Rights Reserved.", author: "Joker", socials: { discord: { invite: "https://gtchecker.com/discord", bot: "https://gtchecker.com/bot" }, twitter: { twitter: "https://twitter.com/GTPSNChecker", bot: "https://twitter.com/consolestatus" }, website: { gtchecker: "https://gtchecker.com/", }, github_repo: "https://github.com/GTChecker" } } }]; }).catch((e) => { return Promise.reject({ gta_module: e.message }); }); return Promise.resolve(result); }; static async PS4GTAStatus(region) { switch (region) { case "New York": case "NY": Url = "https://support.rockstargames.com/services/status.json?tz=America/New_York"; break; case "UK": case "United Kingdom": Url = "https://support.rockstargames.com/services/status.json?tz=Europe/London"; break; case "ES": case "Spain": Url = "https://support.rockstargames.com/services/status.json?tz=Europe/Madrid"; break; default: Url = "https://support.rockstargames.com/services/status.json?tz=Europe/London"; break; } await axios.get(Url, { timeout: 30000, headers: { "User-Agent": "Mozilla/5.0; (compatiable; GTAStatus/1.0.0 +https://github.com/GTChecker/GTAstatus)" } }).then((res) => { result = [{ gtao: { id: res.data.statuses[2].id, name: res.data.statuses[2].name.replace("Grand Theft Auto", "GTA"), status: res.data.statuses[2].status_tag.replace("Up", "ONLINE"), recent_update: new Date(res.data.statuses[2].recent_update).toDateString(), platforms: { ps4: { id: res.data.statuses[2]['services_platforms'][1].id, platform: res.data.statuses[2]['services_platforms'][1].name, updated: res.data.statuses[2]['services_platforms'][1].updated, status: res.data.statuses[2]['services_platforms'][1].service_status.status.replace("UP", "ONLINE") } } }, sc: { id: res.data.statuses[3].id, name: res.data.statuses[3].name, status: res.data.statuses[3].status_tag.replace("Up", "ONLINE"), recent_update: res.data.statuses[3].recent_update, platforms: { features: { id: res.data.statuses[3]['services_platforms'][0].id, platform: res.data.statuses[3]['services_platforms'][0].name, updated: res.data.statuses[3]['services_platforms'][0].updated, status: res.data.statuses[3]['services_platforms'][0].service_status.status.replace("UP", "ONLINE") } } } }]; }).catch((e) => { return Promise.reject({ gta_module: e.message }); }); return Promise.resolve(result); }; static async PS3GTAStatus(region) { switch (region) { case "New York": case "NY": Url = "https://support.rockstargames.com/services/status.json?tz=America/New_York"; break; case "UK": case "United Kingdom": Url = "https://support.rockstargames.com/services/status.json?tz=Europe/London"; break; case "ES": case "Spain": Url = "https://support.rockstargames.com/services/status.json?tz=Europe/Madrid"; break; default: Url = "https://support.rockstargames.com/services/status.json?tz=Europe/London"; break; } await axios.get(Url, { timeout: 25000, headers: { "User-Agent": "Mozilla/5.0; (compatiable; GTAStatus/1.0.0 +https://github.com/GTChecker/GTAstatus)" } }).then((res) => { result = [{ gtao: { id: res.data.statuses[2].id, name: res.data.statuses[2].name.replace("Grand Theft Auto", "GTA"), status: res.data.statuses[2].status_tag.replace("Up", "ONLINE"), recent_update: res.data.statuses[2].recent_update, platforms: { ps3: { id: res.data.statuses[2]['services_platforms'][3].id, platform: res.data.statuses[2]['services_platforms'][3].name, updated: res.data.statuses[2]['services_platforms'][3].updated, status: res.data.statuses[2]['services_platforms'][3].service_status.status.replace("UP", "ONLINE") } } }, sc: { id: res.data.statuses[3].id, name: res.data.statuses[3].name, status: res.data.statuses[3].status_tag.replace("Up", "ONLINE"), recent_update: res.data.statuses[3].recent_update, platforms: { features: { id: res.data.statuses[3]['services_platforms'][0].id, platform: res.data.statuses[3]['services_platforms'][0].name, updated: res.data.statuses[3]['services_platforms'][0].updated, status: res.data.statuses[3]['services_platforms'][0].service_status.status.replace("UP", "ONLINE") } } }, warning: { message: "This endpoint may become deprecated once Rockstar & Sony shutdown all services to Playstation 3." } }]; }).catch((e) => { return Promise.reject({ gta_module: e.message }); }); return Promise.resolve(result); }; }; module.exports = RockstarGamesStatus; // (async function test() { // GTA.status("ES").then((r) => { // console.log(r[0]) // }); // })()