module.exports = (app, db): void => { app.post('/aa/database/uploadGJLevel21.php', async (req, res) => { let levelID = await db.collection('levels').find({}).count() + 1; console.log(req.body); let udid = req.body.udid; /* if (udid != undefined && !isNaN(Number(udid))) return res.status(200).send('-1'); */ 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', 'timestamp': Date.now(), 'description': req.body.levelDesc, 'game_version': Number(req.body.gameVersion || 0), 'binary_version': 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), 'auto': Boolean(Number(req.body.auto || 0)), 'password': Number(req.body.password || 0), 'original': Boolean(req.body.original || 0), 'two_player': Boolean(req.body.twoPlayer || 0), 'objects': Number(req.body.objects || 0), 'coins': Number(req.body.coins || 0), 'requested_stars': Number(req.body.requestedStars || 0), 'secret': req.body.secret, 'user_id': -1, // no user_id yet 'udid': udid, // ??? i have no idea what this is 'unlisted': Boolean(req.body.unlisted || 0), 'ldm': Boolean(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 }); res.status(200).send(String(levelID)); }); };