From 2e0abf2878de40e08896e4063ffaf0c464b8112c Mon Sep 17 00:00:00 2001 From: oatmealine Date: Mon, 27 Jan 2020 07:34:18 +0300 Subject: [PATCH] make values more consistent, minor fixes --- src/downloadGJLevel22.ts | 12 +++++++----- src/getGJLevels21.ts | 16 ++++++++-------- src/uploadGJLevel21.ts | 34 ++++++++++++++++++++-------------- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/src/downloadGJLevel22.ts b/src/downloadGJLevel22.ts index 4cfbcae..7025771 100644 --- a/src/downloadGJLevel22.ts +++ b/src/downloadGJLevel22.ts @@ -14,25 +14,27 @@ module.exports = (app) : void => { level = level.value; let gameVer = Number(req.body.gameVersion || 1); - let xor_pw = level.password; + let xorPassword = level.password; let description = level.description; if (gameVer > 19) { if (level.password != 0) - xor_pw = xor.encode(String(level.password), '26364'); + xorPassword = xor.encode(String(level.password), '26364'); } else { description = Buffer.from(description, 'base64').toString('utf8'); } - let response = `1:${level.id}:2:${level.name}:3:${description}:4:${level.level_data}:5:${1 /* level version, placeholder*/}:6:${level.user_id}:8:10:9:${level.difficulty}:10:${level.downloads}:11:1:12:${level.audio_track}:13:${level.game_version}:14:${level.likes}:17:${Number(level.difficulty >= 60)}:43:${Math.max((level.difficulty-60)/10, 0)}:25:${Number(level.auto)}:18:${level.stars}:19:${Number(level.featured)}:42:${Number(level.epic)}:45:${level.objects}:15:${level.length}:30:${level.original}:31:1:28:${0 /* upload date */}:29:${0 /* update date*/}:35:${level.song_id}:36:${level.extra_data}:37:${level.coins}:38:${Number(level.rated_coins)}:39:${level.requested_stars}:46:1:47:2:48:1:40:${Number(level.ldm)}:27:${xor_pw}`; + let response = `1:${level.id}:2:${level.name}:3:${description}:4:${level.levelData}:5:${1 /* level version, placeholder*/}:6:${level.userID}:8:10:9:${level.difficulty}:10:${level.downloads}:11:1:12:${level.audioTrack}:13:${level.gameVersion}:14:${level.likes}:17:${Number(level.difficulty >= 60)}:43:${Math.max((level.difficulty-60)/10, 0)}:25:${Number(level.auto)}:18:${level.stars}:19:${Number(level.featured)}:42:${Number(level.epic)}:45:${level.objects}:15:${level.length}:30:${level.original}:31:1:28:${0 /* upload date */}:29:${0 /* update date*/}:35:${level.songID}:36:${level.extraData}:37:${level.coins}:38:${Number(level.ratedCoins)}:39:${level.requestedStars}:46:1:47:2:48:1:40:${Number(level.hasLDM)}:27:${xorPassword}`; - response += `#${hashes.hashLevel(level.level_data)}#`; + response += `#${hashes.hashLevel(level.levelData)}#`; level.demon = level.difficulty >= 60; - let extraData = ['user_id', 'stars', 'demon', 'id', 'rated_coins', 'featured'].map(key => Number(level[key])).join(','); + let extraData = ['userID', 'stars', 'demon', 'id', 'ratedCoins', 'featured'].map(key => Number(level[key])).join(','); extraData += `,${level.password},${0 /* featured id */}`; response += `${hashes.hashSolo2(extraData)}#${extraData}`; + console.log(response); + res.status(200).send(response); }); }; \ No newline at end of file diff --git a/src/getGJLevels21.ts b/src/getGJLevels21.ts index 8ffc28e..b8b3997 100644 --- a/src/getGJLevels21.ts +++ b/src/getGJLevels21.ts @@ -17,14 +17,14 @@ module.exports = (app) : void => { if (req.body.coins != '0') searchQuery.coins = true; if (req.body.twoPlayer != '0') searchQuery.twoPlayer = true; if (req.body.star) searchQuery.stars = {$gt: 0}; - if (req.body.original != '0') searchQuery.original = true; + if (req.body.original != '0') searchQuery.original = 0; if (req.body.noStar) searchQuery.stars = 0; if (req.body.song) { if (Number(req.body.song) <= 50) { // lets assume a limit of 50 official songs - searchQuery.audio_track = Number(req.body.song); // official song + searchQuery.audioTrack = Number(req.body.song); // official song } else { - searchQuery.song_id = Number(req.body.song); // newgrounds/custom songs + searchQuery.songID = Number(req.body.song); // newgrounds/custom songs } } @@ -32,12 +32,12 @@ module.exports = (app) : void => { // if the client requests -1, -2 or -3 then it cant request any other difficulties searchQuery.auto = false; if (req.body.diff == '-1') { // NA levels - searchQuery.diff = 0; + searchQuery.difficulty = 0; } else if(req.body.diff == '-2') { // demons if (req.body.demonFilter) { - searchQuery.diff = 60 + req.body.demonFilter * 10; + searchQuery.difficulty = 60 + req.body.demonFilter * 10; } else { - searchQuery.diff = { $gte: 60 }; + searchQuery.difficulty = { $gte: 60 }; } } else if(req.body.diff == '-3') { // auto searchQuery.auto = true; @@ -45,7 +45,7 @@ module.exports = (app) : void => { searchQuery.$or = req.body.diff .split(',') // multiple diffs .map(d => { - return {diff: Number(d) * 10}; + return {difficulty: Number(d) * 10}; }); } } @@ -104,7 +104,7 @@ module.exports = (app) : void => { let results = foundLevels .map(l => - `1:${l.id}:2:${l.name}:5:0:6:16:8:10:9:${l.diff}:10:${l.downloads}:12:1:13:21:14:${l.likes}:17:0:43:0:25:${Number(l.auto)}:18:${l.stars}:19:0:42:0:45:10:3:${l.description}:15:1:30:0:31:0:37:0:38:0:39:0:46:1:47:2:40:0:35:0` + `1:${l.id}:2:${l.name}:5:0:6:16:8:10:9:${l.difficulty}:10:${l.downloads}:12:1:13:21:14:${l.likes}:17:0:43:0:25:${Number(l.auto)}:18:${l.stars}:19:0:42:0:45:10:3:${l.description}:15:1:30:0:31:0:37:0:38:0:39:0:46:1:47:2:40:0:35:0` ) .join('|'); diff --git a/src/uploadGJLevel21.ts b/src/uploadGJLevel21.ts index cb9c120..ff493da 100644 --- a/src/uploadGJLevel21.ts +++ b/src/uploadGJLevel21.ts @@ -6,7 +6,12 @@ module.exports = (app): void => { levels.sort((a, b) => b.id - a.id); - let levelID = levels[0].id + 1; + let levelID; + if (levels[0]) { + levelID = levels[0].id + 1; + } else { + levelID = 1; + } console.log(req.body); @@ -19,39 +24,40 @@ module.exports = (app): void => { app.get('db').collection('levels').insertOne({ 'name': req.body.levelName, 'id': levelID, - 'level_data': req.body.levelString, - 'extra_data': req.body.extraString || '29_29_29_40_29_29_29_29_29_29_29_29_29_29_29_29', - 'level_info': req.body.levelInfo || '0', + 'levelData': req.body.levelString, + 'extraData': req.body.extraString || '29_29_29_40_29_29_29_29_29_29_29_29_29_29_29_29', + 'levelInfo': req.body.levelInfo || '0', 'timestamp': Date.now(), 'description': req.body.levelDesc, - 'game_version': Number(req.body.gameVersion || 0), - 'binary_version': Number(req.body.binaryVersion || 0), + 'gameVersion': Number(req.body.gameVersion || 0), + 'binaryVersion': Number(req.body.binaryVersion || 0), 'username': req.body.userName, 'version': Number(req.body.levelVersion), 'length': Number(req.body.levelLength), // difference between audio_track and song_id is // audio_track is official songs and song_id is newgrounds aka custom songs - 'audio_track': Number(req.body.audioTrack), - 'song_id': Number(req.body.songID), + 'audioTrack': Number(req.body.audioTrack), + 'songID': Number(req.body.songID), 'auto': false, 'password': Number(req.body.password || 0), - 'original': Boolean(Number(req.body.original || 0)), - 'two_player': Boolean(Number(req.body.twoPlayer || 0)), + 'original': Number(req.body.original || 0), + 'twoPlayer': Boolean(Number(req.body.twoPlayer || 0)), 'objects': Number(req.body.objects || 0), 'coins': Number(req.body.coins || 0), - 'requested_stars': Number(req.body.requestedStars || 0), + 'requestedStars': Number(req.body.requestedStars || 0), 'secret': req.body.secret, - 'user_id': -1, // no user_id yet + 'userID': -1, // no user_id yet 'udid': udid, // ??? i have no idea what this is 'unlisted': Boolean(Number(req.body.unlisted || 0)), - 'ldm': Boolean(Number(req.body.ldm || 0)), + 'hasLDM': Boolean(Number(req.body.ldm || 0)), // online stuff 'downloads': 0, 'likes': 0, 'difficulty': 0, // 0 = N/A 10 = EASY 20 = NORMAL 30 = HARD 40 = HARDER 50 = INSANE 50 = AUTO 50 = DEMON 'stars': 0, 'featured': false, - 'epic': false + 'epic': false, + 'ratedCoins': false }); res.status(200).send(String(levelID));