priv8-cs
Version:
Multi-Platform Status API Module For XBL and PSN.
105 lines (104 loc) • 4.58 kB
JavaScript
/**
* @private
* @author Joker
* @name XBLStatus
* @copyright 2020, GTChecker.com, All rights reserved.
* @description Gets XBL Network Statuses Live.
* @returns JSON Object of retrieved information.
* @license MIT
*/
var axios = require("axios");
let Url = 'https://xnotify.xboxlive.com/servicestatusv5/GB/en-GB';
let result = [];
class XBLAPI {
static async status() {
await axios.get(Url, {
timeout: 10000,
headers: {
"User-Agent": "Mozilla/5.0; (compatiable; XBLStatus/1.0.0 +https://github.com/GTChecker/xblstatus)"
}
}).then((res) => {
//console.log(res.data)
result = {
/** Main **/
// Core_Services: res.data.CoreServices[0],
// Payment_Services: res.data.CoreServices[1],
// Media_Services: res.data.CoreServices[2],
// Gaming_Services: res.data.CoreServices[3],
/** Statuses **/
Status: {
id: res.data.Status.Overall.Id,
status: res.data.Status.Overall.State == "None" ? "Online" : res.data.CoreServices[0].Status.Name,
last_updated: res.data.Status.Overall.LastUpdated
},
CoreServices: [
{
id: res.data.CoreServices[0].Id,
name: res.data.CoreServices[0].Name,
status: res.data.CoreServices[0].Status.Name == "None" ? "Online" : res.data.CoreServices[0].Status.Name,
incidents: [
res.data.CoreServices[0].Scenarios
]
},
{
id: res.data.CoreServices[1].Id,
name: res.data.CoreServices[1].Name,
status: res.data.CoreServices[1].Status.Name == "None" ? "Online" : res.data.CoreServices[1].Status.Name,
incidents: [
res.data.CoreServices[1].Scenarios
]
},
{
id: res.data.CoreServices[2].Id,
name: res.data.CoreServices[2].Name,
status: res.data.CoreServices[2].Status.Name == "None" ? "Online" : res.data.CoreServices[2].Status.Name,
incidents: [
res.data.CoreServices[2].Scenarios
]
},
{
id: res.data.CoreServices[3].Id,
name: res.data.CoreServices[3].Name,
status: res.data.CoreServices[3].Status.Name == "None" ? "Online" : res.data.CoreServices[3].Status.Name,
incidents: [
res.data.CoreServices[3].Scenarios
]
}
],
Games: [
{
id: res.data.Games[0].Id,
name: res.data.Games[0].Name,
status: res.data.Games[0].Status.Name == "None" ? "Online" : res.data.CoreServices[0].Status.Name,
incidents: [
res.data.Games[0].Scenarios
]
},
{
id: res.data.Games[1].Id,
name: res.data.Games[1].Name,
status: res.data.Games[1].Status.Name == "None" ? "Online" : res.data.CoreServices[1].Status.Name,
incidents: [
res.data.Games[1].Scenarios
]
},
{
id: res.data.Games[2].Id,
name: res.data.Games[2].Name,
status: res.data.Games[2].Status.Name == "None" ? "Online" : res.data.CoreServices[2].Status.Name,
incidents: [
res.data.Games[2].Scenarios
]
}
]
};
}).catch((e) => {
return Promise.reject(e);
});
return Promise.resolve(result);
}
};
module.exports = XBLAPI;
// (async function test() {
// XBLAPI.status().then((r) => console.log(r));
// })()