splatoon3api
Version:
A simple Method to get current and next Splatoon 3 maps, Salmonrun Schedules and Splatnet gear
140 lines (139 loc) • 6.49 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = parseAllStages;
const utils_js_1 = require("../utils.js");
function parseAllStages(json, translation) {
var _a;
let data = {
regular: [],
ranked: [],
xbattle: [],
festSchedule: [],
triColorStage: null
};
json.data.regularSchedules.nodes.forEach((node, index) => {
var _a, _b, _c;
if (node.regularMatchSetting) {
data.regular.push({
start_time: node.startTime,
end_time: node.endTime,
stage1: {
name: (_a = translation.stages[node.regularMatchSetting.vsStages[0].id]) === null || _a === void 0 ? void 0 : _a.name,
image: node.regularMatchSetting.vsStages[0].image.url
},
stage2: {
name: (_b = translation.stages[node.regularMatchSetting.vsStages[1].id]) === null || _b === void 0 ? void 0 : _b.name,
image: node.regularMatchSetting.vsStages[1].image.url
},
rules: (_c = translation.rules[node.regularMatchSetting.vsRule.id]) === null || _c === void 0 ? void 0 : _c.name,
rulesImg: (0, utils_js_1.getImageFromRuleId)(node.regularMatchSetting.vsRule.id)
});
}
else {
data.regular.push(null);
}
});
json.data.bankaraSchedules.nodes.forEach((node, index) => {
var _a, _b, _c, _d, _e, _f;
if (node.bankaraMatchSettings) {
data.ranked.push({
series: {
start_time: node.startTime,
end_time: node.endTime,
stage1: {
name: (_a = translation.stages[node.bankaraMatchSettings[0].vsStages[0].id]) === null || _a === void 0 ? void 0 : _a.name,
image: node.bankaraMatchSettings[0].vsStages[0].image.url
},
stage2: {
name: (_b = translation.stages[node.bankaraMatchSettings[0].vsStages[1].id]) === null || _b === void 0 ? void 0 : _b.name,
image: node.bankaraMatchSettings[0].vsStages[1].image.url
},
rules: (_c = translation.rules[node.bankaraMatchSettings[0].vsRule.id]) === null || _c === void 0 ? void 0 : _c.name,
rulesImg: (0, utils_js_1.getImageFromRuleId)(node.bankaraMatchSettings[0].vsRule.id)
},
open: {
start_time: node.startTime,
end_time: node.endTime,
stage1: {
name: (_d = translation.stages[node.bankaraMatchSettings[1].vsStages[0].id]) === null || _d === void 0 ? void 0 : _d.name,
image: node.bankaraMatchSettings[1].vsStages[0].image.url
},
stage2: {
name: (_e = translation.stages[node.bankaraMatchSettings[1].vsStages[1].id]) === null || _e === void 0 ? void 0 : _e.name,
image: node.bankaraMatchSettings[1].vsStages[1].image.url
},
rules: (_f = translation.rules[node.bankaraMatchSettings[1].vsRule.id]) === null || _f === void 0 ? void 0 : _f.name,
rulesImg: (0, utils_js_1.getImageFromRuleId)(node.bankaraMatchSettings[1].vsRule.id)
}
});
}
else {
data.ranked.push(null);
}
});
json.data.xSchedules.nodes.forEach((node, index) => {
var _a, _b, _c;
if (node.xMatchSetting) {
data.xbattle.push({
start_time: node.startTime,
end_time: node.endTime,
stage1: {
name: (_a = translation.stages[node.xMatchSetting.vsStages[0].id]) === null || _a === void 0 ? void 0 : _a.name,
image: node.xMatchSetting.vsStages[0].image.url
},
stage2: {
name: (_b = translation.stages[node.xMatchSetting.vsStages[1].id]) === null || _b === void 0 ? void 0 : _b.name,
image: node.xMatchSetting.vsStages[1].image.url
},
rules: (_c = translation.rules[node.xMatchSetting.vsRule.id]) === null || _c === void 0 ? void 0 : _c.name,
rulesImg: (0, utils_js_1.getImageFromRuleId)(node.xMatchSetting.vsRule.id),
});
}
else {
data.xbattle.push(null);
}
});
json.data.festSchedules.nodes.forEach((node, index) => {
var _a, _b, _c;
if (node.festMatchSettings) {
let returnObj = {
regular: null,
challenge: null
};
for (let setting of node.festMatchSettings) {
returnObj[setting.festMode.toLowerCase()] = {
start_time: node.startTime,
end_time: node.endTime,
stage1: {
name: (_a = translation.stages[setting.vsStages[0].id]) === null || _a === void 0 ? void 0 : _a.name,
image: setting.vsStages[0].image.url
},
stage2: {
name: (_b = translation.stages[setting.vsStages[1].id]) === null || _b === void 0 ? void 0 : _b.name,
image: setting.vsStages[1].image.url
},
rules: (_c = translation.rules[setting.vsRule.id]) === null || _c === void 0 ? void 0 : _c.name,
rulesImg: (0, utils_js_1.getImageFromRuleId)(setting.vsRule.id),
festMode: setting.festMode,
};
}
data.festSchedule.push(returnObj);
}
else {
data.festSchedule.push(null);
}
});
if (json.data.currentFest) {
data.triColorStage = {
start_time: json.data.currentFest.startTime,
end_time: json.data.currentFest.endTime,
name: (_a = translation.stages[json.data.currentFest.tricolorStage.id]) === null || _a === void 0 ? void 0 : _a.name,
image: json.data.currentFest.tricolorStage.image.url,
rulesImg: "https://file.strassburger.org/tricolor.svg",
};
}
else {
data.triColorStage = null;
}
return data;
}