UNPKG

priv8-cs

Version:

Multi-Platform Status API Module For XBL and PSN.

89 lines (85 loc) 3.06 kB
/** * @private * @author Joker * @name PSNStatus * @copyright 2020, GTChecker.com, All rights reserved. * @description Gets PSN Network Statuses Live. * @returns JSON Object of retrieved information. * @license MIT */ var axios = require("axios"); class PlaystationAPI { static async status(region) { let PSNEU = 'https://status.playstation.com/data/statuses/region/SCEE.json'; let PSNUS = 'https://status.playstation.com/data/statuses/region/SCEA.json'; let Url; let result = []; let devices = []; switch (region) { case "eu": case "Eu": case "EU": Url = PSNEU; break; case "us": case "Us": case "US": Url = PSNUS; break; default: Url = PSNEU; break; } await axios.get(Url, { timeout: 10000, headers: { "User-Agent": "Mozilla/5.0; (compatiable; PSNStatus/1.0.0 +https://github.com/GTChecker/psnstatus)" } }).then(res => { res.data.status[0].devices.forEach(element => { devices = { device: element.deviceName }; }); let modifiedDate = new Date(res.data.status[0].modifiedDate).toDateString(); let detected = new Date(res.data.status[0].startDate).toDateString() result = { status: res.data.status[0].statusType, detected: detected, lastUpdated: modifiedDate, affects: devices };//result.push(res.data.status[0].message.messages['en-GB'])//.status[0].devices) }).catch((e) => { return Promise.reject(e); }); return Promise.resolve(result); }; static async countries(region) { let PSNEU = 'https://status.playstation.com/data/statuses/region/SCEE.json'; let PSNUS = 'https://status.playstation.com/data/statuses/region/SCEA.json'; let Url; let result = []; switch (region) { case "eu": case "Eu": case "EU": Url = PSNEU; break; case "us": case "Us": case "US": Url = PSNUS; break; default: Url = PSNEU; break; } await axios.get(Url, { headers: { "User-Agent": "Mozilla/5.0; (compatiable; PSNStatus/1.0.0 +https://github.com/GTChecker/psnstatus)" } }).then(res => { result.push(res.data.countries)//result.push(res.data.status[0].message.messages['en-GB'])//.status[0].devices) }).catch((e) => { return Promise.reject(e); }); return Promise.resolve(result); } }; module.exports = PlaystationAPI; // (async function test() { // PlaystationAPI.status("Us").then((r) => console.log(r)); // })()