From a9fee71c6ab4f89d25678bf3c46560d10d1ca649 Mon Sep 17 00:00:00 2001 From: oatmealine Date: Sat, 25 Jan 2020 16:14:08 +0300 Subject: [PATCH] implement level filters --- src/getGJLevels21.ts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/getGJLevels21.ts b/src/getGJLevels21.ts index 322af85..bb6dc51 100644 --- a/src/getGJLevels21.ts +++ b/src/getGJLevels21.ts @@ -51,6 +51,39 @@ module.exports = (app, db) : void => { }) .toArray(); + switch (Number(req.body.type)) { + case 1: // most downloaded + levels.sort((a, b) => b.downloads - a.downloads); + break; + case 2: // most liked + levels.sort((a, b) => b.likes - a.likes); + break; + case 3: // trending + levels.filter(l => { + l.timestamp || 0 > Date.now() - 604800000; + }); + levels.sort((a, b) => b.downloads - a.downloads); + break; + case 4: // recent + levels.sort((a, b) => b.timestamp || 0 - a.timestamp || 0); + break; + case 7: // ~ M a G i C ~ + levels.filter(l => { + l.objects || 0 > 1000; + }); + levels.sort((a, b) => b.timestamp || 0 - a.timestamp || 0); + break; + case 11: // awarded + levels.filter(l => { + l.stars > 0; + }); + levels.sort((a, b) => b.timestamp || 0 - a.timestamp || 0); + break; + case 12: // TODO: followed + case 13: // TODO: friends + levels.filter(() => false); + } + let offset = Math.max(Number(req.body.page) * 10 - 1, 0); const foundLevels = levels