72 lines
2.3 KiB
TypeScript
72 lines
2.3 KiB
TypeScript
export{}; // fuck you ts, i have to do this to prevent "cannot redeclare block scoped variable"
|
|
|
|
const handleRequestsAt = ['uploadGJLevel21', 'uploadGJLevel20', 'uploadGJLevel19', 'uploadGJLevel'];
|
|
|
|
module.exports = (app): void => {
|
|
let uploadLevel = async (req, res) => {
|
|
let levels = await app.get('db').collection('levels')
|
|
.find({})
|
|
.toArray();
|
|
|
|
levels.sort((a, b) => b.id - a.id);
|
|
|
|
let levelID;
|
|
if (levels[0]) {
|
|
levelID = levels[0].id + 1;
|
|
} else {
|
|
levelID = 1;
|
|
}
|
|
|
|
console.log(req.body);
|
|
|
|
let udid = req.body.udid;
|
|
/*
|
|
if (udid != undefined && !isNaN(Number(udid)))
|
|
return res.status(200).send('-1');
|
|
*/
|
|
|
|
app.get('db').collection('levels').insertOne({
|
|
'name': req.body.levelName,
|
|
'id': levelID,
|
|
'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,
|
|
'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
|
|
'audioTrack': Number(req.body.audioTrack),
|
|
'songID': Number(req.body.songID),
|
|
'auto': false,
|
|
'password': Number(req.body.password || 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),
|
|
'requestedStars': Number(req.body.requestedStars || 0),
|
|
'secret': req.body.secret,
|
|
'userID': -1, // no user_id yet
|
|
'udid': udid, // ??? i have no idea what this is
|
|
'unlisted': Boolean(Number(req.body.unlisted || 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,
|
|
'ratedCoins': false
|
|
});
|
|
|
|
res.status(200).send(String(levelID));
|
|
};
|
|
|
|
for (let i in handleRequestsAt)
|
|
app.post('/' + app.get('config').addtopath + 'database/' + handleRequestsAt[i] + '.php', uploadLevel);
|
|
}; |