add broken key to nlw endpoint
This commit is contained in:
parent
dc83dcb903
commit
f8f89b670b
|
@ -35,7 +35,8 @@ Represents an NLW level.
|
||||||
|
|
||||||
- `tier`: `"Fuck"`, `"Beginner"`, `"Easy"`, `"Medium"`, `"Hard"`, `"Very Hard"`, `"Insane"`, `"Extreme"`, `"Remorseless"`, `"Relentless"` or `"Terrifying"`.
|
- `tier`: `"Fuck"`, `"Beginner"`, `"Easy"`, `"Medium"`, `"Hard"`, `"Very Hard"`, `"Insane"`, `"Extreme"`, `"Remorseless"`, `"Relentless"` or `"Terrifying"`.
|
||||||
- `skillset`: Level skillset, as listed on the sheet.
|
- `skillset`: Level skillset, as listed on the sheet.
|
||||||
- `enjoyment`: Level enjoyment sampled from EDEL as a string. Can be `"N/A"`, look out!
|
- `enjoyment`: Level enjoyment sampled from EDEL as a number, or `null`.
|
||||||
|
- `broken`: If the level is broken in 2.2. `"no"`, `"slightly"`, `"very"`, `"absolutely destroyed"` or rarely `null` if unknown.
|
||||||
|
|
||||||
#### `IDSLevel`: [`Level`](#level)
|
#### `IDSLevel`: [`Level`](#level)
|
||||||
|
|
||||||
|
|
67
nlw.js
67
nlw.js
|
@ -19,14 +19,68 @@ const fruityLevels = {
|
||||||
'gardening map': 'gardening map ',
|
'gardening map': 'gardening map ',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const brokenColors = {
|
||||||
|
'0,0,0': 'no',
|
||||||
|
'67,67,67': 'slightly',
|
||||||
|
'102,102,102': 'very',
|
||||||
|
'74,134,232': 'no',
|
||||||
|
'60,120,216': 'slightly',
|
||||||
|
'17,85,204': 'very',
|
||||||
|
'0,255,255': 'no',
|
||||||
|
'69,129,142': 'slightly',
|
||||||
|
'19,79,92': 'very',
|
||||||
|
'0,255,0': 'no',
|
||||||
|
'106,168,79': 'slightly',
|
||||||
|
'56,118,29': 'very',
|
||||||
|
'255,255,0': 'no',
|
||||||
|
'241,194,50': 'slightly',
|
||||||
|
'191,144,0': 'very',
|
||||||
|
'255,153,0': 'no',
|
||||||
|
'230,145,56': 'slightly',
|
||||||
|
'180,95,6': 'very',
|
||||||
|
'255,0,0': 'no',
|
||||||
|
'204,0,0': 'slightly',
|
||||||
|
'153,0,0': 'very',
|
||||||
|
'255,0,255': 'no',
|
||||||
|
'166,77,121': 'slightly',
|
||||||
|
'116,27,71': 'very',
|
||||||
|
'153,0,255': 'no',
|
||||||
|
'103,78,167': 'slightly',
|
||||||
|
'53,28,117': 'very',
|
||||||
|
'176,135,235': 'no',
|
||||||
|
'164,92,246': 'slightly',
|
||||||
|
'101,78,135': 'very',
|
||||||
|
'204,204,204': 'no',
|
||||||
|
'183,183,183': 'slightly',
|
||||||
|
'153,153,153': 'very',
|
||||||
|
};
|
||||||
|
|
||||||
async function fetchRegularCells(sheet) {
|
async function fetchRegularCells(sheet) {
|
||||||
console.log('fetching regular cells');
|
console.log('fetching regular cells');
|
||||||
|
|
||||||
|
// for brokenness
|
||||||
|
await sheet.loadCells('A:A');
|
||||||
|
|
||||||
|
let broken = [];
|
||||||
|
|
||||||
|
let rowID = 0;
|
||||||
|
while (true) {
|
||||||
|
const cell = sheet.getCell(rowID, 0);
|
||||||
|
if (!cell || cell == null || cell.value == null) break;
|
||||||
|
const color = cell.backgroundColor || {};
|
||||||
|
const colorString = Math.round((color.red || 0) * 255) + ',' + Math.round((color.green || 0) * 255) + ',' + Math.round((color.blue || 0) * 255);
|
||||||
|
let broke = brokenColors[colorString];
|
||||||
|
broken.push(broke || null);
|
||||||
|
rowID++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const levels = await sheet.getCellsInRange('A:A');
|
const levels = await sheet.getCellsInRange('A:A');
|
||||||
const creators = await sheet.getCellsInRange('B:B');
|
const creators = await sheet.getCellsInRange('B:B');
|
||||||
const skillsets = await sheet.getCellsInRange('D:D');
|
const skillsets = await sheet.getCellsInRange('D:D');
|
||||||
const enjoyments = await sheet.getCellsInRange('E:E');
|
const enjoyments = await sheet.getCellsInRange('E:E');
|
||||||
const descriptions = await sheet.getCellsInRange('F:F');
|
const descriptions = await sheet.getCellsInRange('F:F');
|
||||||
return { levels, creators, skillsets, enjoyments, descriptions };
|
return { levels, broken, creators, skillsets, enjoyments, descriptions };
|
||||||
}
|
}
|
||||||
async function fetchPlatformerCells(sheet) {
|
async function fetchPlatformerCells(sheet) {
|
||||||
console.log('fetching platformer cells');
|
console.log('fetching platformer cells');
|
||||||
|
@ -35,7 +89,7 @@ async function fetchPlatformerCells(sheet) {
|
||||||
const skillsets = await sheet.getCellsInRange('D:D');
|
const skillsets = await sheet.getCellsInRange('D:D');
|
||||||
const enjoyments = await sheet.getCellsInRange('E:E');
|
const enjoyments = await sheet.getCellsInRange('E:E');
|
||||||
const descriptions = await sheet.getCellsInRange('F:F');
|
const descriptions = await sheet.getCellsInRange('F:F');
|
||||||
return { levels, creators, skillsets, enjoyments, descriptions };
|
return { levels, broken: Array(levels.length).fill('take a guess'), creators, skillsets, enjoyments, descriptions };
|
||||||
}
|
}
|
||||||
async function fetchPendingCells(sheet) {
|
async function fetchPendingCells(sheet) {
|
||||||
console.log('fetching pending cells');
|
console.log('fetching pending cells');
|
||||||
|
@ -44,11 +98,11 @@ async function fetchPendingCells(sheet) {
|
||||||
const skillsets = await sheet.getCellsInRange('E:E');
|
const skillsets = await sheet.getCellsInRange('E:E');
|
||||||
const enjoyments = [];
|
const enjoyments = [];
|
||||||
const descriptions = await sheet.getCellsInRange('F:F');
|
const descriptions = await sheet.getCellsInRange('F:F');
|
||||||
return { levels, creators, skillsets, enjoyments, descriptions };
|
return { levels, broken: Array(levels.length).fill(null), creators, skillsets, enjoyments, descriptions };
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetchLevels(sheet, platformer, pending) {
|
async function fetchLevels(sheet, platformer, pending) {
|
||||||
const { levels, creators, skillsets, enjoyments, descriptions } = await (
|
const { levels, broken, creators, skillsets, enjoyments, descriptions } = await (
|
||||||
pending ? fetchPendingCells(sheet) : (platformer ? fetchPlatformerCells(sheet) : fetchRegularCells(sheet))
|
pending ? fetchPendingCells(sheet) : (platformer ? fetchPlatformerCells(sheet) : fetchRegularCells(sheet))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -57,6 +111,7 @@ async function fetchLevels(sheet, platformer, pending) {
|
||||||
let lastTier = null;
|
let lastTier = null;
|
||||||
for (let i in levels) {
|
for (let i in levels) {
|
||||||
const level = levels[i], creator = creators[i], skillset = skillsets[i], enjoyment = enjoyments[i], description = descriptions[i];
|
const level = levels[i], creator = creators[i], skillset = skillsets[i], enjoyment = enjoyments[i], description = descriptions[i];
|
||||||
|
let broke = broken[i];
|
||||||
|
|
||||||
if (level.length === 0 || level[0] === '') break;
|
if (level.length === 0 || level[0] === '') break;
|
||||||
|
|
||||||
|
@ -71,6 +126,9 @@ async function fetchLevels(sheet, platformer, pending) {
|
||||||
const enjoymentStr = enjoyment && enjoyment[0];
|
const enjoymentStr = enjoyment && enjoyment[0];
|
||||||
const enjoymentParse = parseFloat(enjoymentStr || "");
|
const enjoymentParse = parseFloat(enjoymentStr || "");
|
||||||
|
|
||||||
|
const name = fruityLevels[level[0]] || level[0] || "";
|
||||||
|
if (name === 'miss you') broke = 'absolutely destroyed';
|
||||||
|
|
||||||
const obj = {
|
const obj = {
|
||||||
sheetIndex: parseInt(i),
|
sheetIndex: parseInt(i),
|
||||||
tier: lastTier,
|
tier: lastTier,
|
||||||
|
@ -79,6 +137,7 @@ async function fetchLevels(sheet, platformer, pending) {
|
||||||
skillset: (skillset && skillset[0] || "").trim(),
|
skillset: (skillset && skillset[0] || "").trim(),
|
||||||
enjoyment: !isNaN(enjoymentParse) ? enjoymentParse : null,
|
enjoyment: !isNaN(enjoymentParse) ? enjoymentParse : null,
|
||||||
description: (description && description[0] || "").trim(),
|
description: (description && description[0] || "").trim(),
|
||||||
|
broken: broke,
|
||||||
};
|
};
|
||||||
|
|
||||||
levelObjs.push(obj);
|
levelObjs.push(obj);
|
||||||
|
|
Loading…
Reference in New Issue