priv8-cs
Version:
Multi-Platform Status API Module For XBL and PSN.
343 lines (334 loc) • 18.1 kB
JavaScript
/**
* @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])
// });
// })()