UNPKG

priv8-cs

Version:

Multi-Platform Status API Module For XBL and PSN.

105 lines (104 loc) 4.58 kB
/** * @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)); // })()