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