mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-03-13 07:23:39 +08:00
creating a leaderboard personal bests object
This commit is contained in:
parent
ea32e158c5
commit
5457da7484
2 changed files with 44 additions and 9 deletions
|
@ -191,6 +191,11 @@ class UsersDAO {
|
|||
await mongoDB()
|
||||
.collection("users")
|
||||
.updateOne({ uid }, { $set: { personalBests: pb.obj } });
|
||||
if (pb.lbPb) {
|
||||
await mongoDB()
|
||||
.collection("users")
|
||||
.updateOne({ uid }, { $set: { lbPersonalBests: pb.lbPb } });
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
|
|
@ -96,20 +96,50 @@ module.exports = {
|
|||
});
|
||||
}
|
||||
|
||||
let topIndex = 0;
|
||||
let topWpm = 0;
|
||||
obj[mode][mode2].forEach((pb, index) => {
|
||||
delete pb.best;
|
||||
if (pb.wpm > topWpm) {
|
||||
topIndex = index;
|
||||
topWpm = pb.wpm;
|
||||
let lbPb;
|
||||
if (isPb && mode === "time" && (mode2 == "15" || mode2 == "60")) {
|
||||
lbPb = {
|
||||
time: {
|
||||
15: {},
|
||||
60: {},
|
||||
},
|
||||
};
|
||||
let bestForEveryLanguage = {};
|
||||
if (obj?.time?.[15]) {
|
||||
obj.time[15].forEach((pb) => {
|
||||
if (!bestForEveryLanguage[pb.language]) {
|
||||
bestForEveryLanguage[pb.language] = pb;
|
||||
} else {
|
||||
if (bestForEveryLanguage[pb.language].wpm < pb.wpm) {
|
||||
bestForEveryLanguage[pb.language] = pb;
|
||||
}
|
||||
}
|
||||
});
|
||||
Object.keys(bestForEveryLanguage).forEach((key) => {
|
||||
lbPb.time[15][key] = bestForEveryLanguage[key];
|
||||
});
|
||||
bestForEveryLanguage = {};
|
||||
}
|
||||
});
|
||||
obj[mode][mode2][topIndex].best = true;
|
||||
if (obj?.time?.[60]) {
|
||||
obj.time[60].forEach((pb) => {
|
||||
if (!bestForEveryLanguage[pb.language]) {
|
||||
bestForEveryLanguage[pb.language] = pb;
|
||||
} else {
|
||||
if (bestForEveryLanguage[pb.language].wpm < pb.wpm) {
|
||||
bestForEveryLanguage[pb.language] = pb;
|
||||
}
|
||||
}
|
||||
});
|
||||
Object.keys(bestForEveryLanguage).forEach((key) => {
|
||||
lbPb.time[60][key] = bestForEveryLanguage[key];
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
isPb,
|
||||
obj,
|
||||
lbPb,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue