From e35272b2826d8555f4b6f845a9cee74efa101f74 Mon Sep 17 00:00:00 2001 From: oatmealine Date: Sat, 25 Jan 2020 15:31:01 +0300 Subject: [PATCH] wip level uploading --- src/index.ts | 1 + src/uploadGJLevel21.ts | 53 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 src/uploadGJLevel21.ts diff --git a/src/index.ts b/src/index.ts index 94f3928..5097997 100644 --- a/src/index.ts +++ b/src/index.ts @@ -23,6 +23,7 @@ dbClient.connect((err) => { }); require('./getGJLevels21')(app, db); + require('./uploadGJLevel21')(app, db); app.get('*', (req, res) => res.status(404).send('wrong page dumbass')); diff --git a/src/uploadGJLevel21.ts b/src/uploadGJLevel21.ts new file mode 100644 index 0000000..9364e2d --- /dev/null +++ b/src/uploadGJLevel21.ts @@ -0,0 +1,53 @@ +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': req.body.gameVersion || 0, + 'binary_version': req.body.binaryVersion || 0, + 'username': req.body.userName, + 'version': req.body.levelVersion, + 'length': 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': req.body.audioTrack, + 'song_id': req.body.songID, + 'auto': Number(req.body.auto || 0), + 'password': Number(req.body.password || 0), + 'original': req.body.original || 0, + 'two_player': Number(req.body.twoPlayer || 0), + 'objects': req.body.objects || 0, + 'coins': req.body.coins || 0, + 'requested_stars': 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': req.body.unlisted || 0, + 'ldm': 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': 0, + 'epic': 0 + }); + + res.status(200).send(String(levelID)); + }); +}; \ No newline at end of file