splatoon3api
Version:
A simple Method to get current and next Splatoon 3 maps, Salmonrun Schedules and Splatnet gear
141 lines (140 loc) • 6.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = parseCurrentStages;
const utils_js_1 = require("../../utils.js");
function parseCurrentStages(json, translation) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
let data = {};
const getCurrentNode = (nodes) => {
const now = new Date();
return nodes.find(node => new Date(node.startTime) <= now && new Date(node.endTime) > now) || null;
};
const regularNode = getCurrentNode(json.data.regularSchedules.nodes);
if (regularNode.regularMatchSetting) {
data.regular = {
start_time: regularNode.startTime,
end_time: regularNode.endTime,
stage1: {
name: (_a = translation.stages[regularNode.regularMatchSetting.vsStages[0].id]) === null || _a === void 0 ? void 0 : _a.name,
image: regularNode.regularMatchSetting.vsStages[0].image.url
},
stage2: {
name: (_b = translation.stages[regularNode.regularMatchSetting.vsStages[1].id]) === null || _b === void 0 ? void 0 : _b.name,
image: regularNode.regularMatchSetting.vsStages[1].image.url
},
rules: (_c = translation.rules[regularNode.regularMatchSetting.vsRule.id]) === null || _c === void 0 ? void 0 : _c.name,
rulesImg: (0, utils_js_1.getImageFromRuleId)(regularNode.regularMatchSetting.vsRule.id)
};
}
else {
data.regular = null;
}
const bankaraNode = getCurrentNode(json.data.bankaraSchedules.nodes);
if (bankaraNode.bankaraMatchSettings) {
data.ranked = {
series: {
start_time: bankaraNode.startTime,
end_time: bankaraNode.endTime,
stage1: {
name: (_d = translation.stages[bankaraNode.bankaraMatchSettings[0].vsStages[0].id]) === null || _d === void 0 ? void 0 : _d.name,
image: bankaraNode.bankaraMatchSettings[0].vsStages[0].image.url
},
stage2: {
name: (_e = translation.stages[bankaraNode.bankaraMatchSettings[0].vsStages[1].id]) === null || _e === void 0 ? void 0 : _e.name,
image: bankaraNode.bankaraMatchSettings[0].vsStages[1].image.url
},
rules: (_f = translation.rules[bankaraNode.bankaraMatchSettings[0].vsRule.id]) === null || _f === void 0 ? void 0 : _f.name,
rulesImg: (0, utils_js_1.getImageFromRuleId)(bankaraNode.bankaraMatchSettings[0].vsRule.id)
},
open: {
start_time: bankaraNode.startTime,
end_time: bankaraNode.endTime,
stage1: {
name: (_g = translation.stages[bankaraNode.bankaraMatchSettings[1].vsStages[0].id]) === null || _g === void 0 ? void 0 : _g.name,
image: bankaraNode.bankaraMatchSettings[1].vsStages[0].image.url
},
stage2: {
name: (_h = translation.stages[bankaraNode.bankaraMatchSettings[1].vsStages[1].id]) === null || _h === void 0 ? void 0 : _h.name,
image: bankaraNode.bankaraMatchSettings[1].vsStages[1].image.url
},
rules: (_j = translation.rules[bankaraNode.bankaraMatchSettings[1].vsRule.id]) === null || _j === void 0 ? void 0 : _j.name,
rulesImg: (0, utils_js_1.getImageFromRuleId)(bankaraNode.bankaraMatchSettings[1].vsRule.id)
}
};
}
else {
data.ranked = null;
}
const xNode = getCurrentNode(json.data.xSchedules.nodes);
if (xNode.xMatchSetting) {
data.xbattle = {
start_time: xNode.startTime,
end_time: xNode.endTime,
stage1: {
name: (_k = translation.stages[xNode.xMatchSetting.vsStages[0].id]) === null || _k === void 0 ? void 0 : _k.name,
image: xNode.xMatchSetting.vsStages[0].image.url
},
stage2: {
name: (_l = translation.stages[xNode.xMatchSetting.vsStages[1].id]) === null || _l === void 0 ? void 0 : _l.name,
image: xNode.xMatchSetting.vsStages[1].image.url
},
rules: (_m = translation.rules[xNode.xMatchSetting.vsRule.id]) === null || _m === void 0 ? void 0 : _m.name,
rulesImg: (0, utils_js_1.getImageFromRuleId)(xNode.xMatchSetting.vsRule.id),
};
}
else {
data.xbattle = null;
}
const festNode = getCurrentNode(json.data.festSchedules.nodes);
if (festNode.festMatchSettings) {
let returnObj = {
regular: null,
challenge: null
};
for (let setting of festNode.festMatchSettings) {
returnObj[setting.festMode.toLowerCase()] = {
start_time: festNode.startTime,
end_time: festNode.endTime,
stage1: {
name: (_o = translation.stages[setting.vsStages[0].id]) === null || _o === void 0 ? void 0 : _o.name,
image: setting.vsStages[0].image.url
},
stage2: {
name: (_p = translation.stages[setting.vsStages[1].id]) === null || _p === void 0 ? void 0 : _p.name,
image: setting.vsStages[1].image.url
},
rules: (_q = translation.rules[setting.vsRule.id]) === null || _q === void 0 ? void 0 : _q.name,
rulesImg: (0, utils_js_1.getImageFromRuleId)(setting.vsRule.id),
festMode: setting.festMode,
};
}
data.festSchedule = returnObj;
}
else {
data.festSchedule = null;
}
if (json.data.currentFest) {
data.triColorStages = json.data.currentFest.tricolorStages ? json.data.currentFest.tricolorStages.map((stage) => {
var _a;
return ({
start_time: json.data.currentFest.startTime,
end_time: json.data.currentFest.endTime,
name: (_a = translation.stages[stage.id]) === null || _a === void 0 ? void 0 : _a.name,
image: stage.image.url,
rulesImg: "https://file.strassburger.org/tricolor.svg",
});
}) : null;
data.triColorStage = json.data.currentFest.tricolorStage ? {
start_time: json.data.currentFest.startTime,
end_time: json.data.currentFest.endTime,
name: (_r = translation.stages[json.data.currentFest.tricolorStage.id]) === null || _r === void 0 ? void 0 : _r.name,
image: json.data.currentFest.tricolorStage.image.url,
rulesImg: "https://file.strassburger.org/tricolor.svg",
} : null;
}
else {
data.triColorStages = null;
data.triColorStage = null;
}
return data;
}