make values more consistent, minor fixes
This commit is contained in:
parent
305b5cd15f
commit
2e0abf2878
|
@ -14,25 +14,27 @@ module.exports = (app) : void => {
|
||||||
level = level.value;
|
level = level.value;
|
||||||
|
|
||||||
let gameVer = Number(req.body.gameVersion || 1);
|
let gameVer = Number(req.body.gameVersion || 1);
|
||||||
let xor_pw = level.password;
|
let xorPassword = level.password;
|
||||||
|
|
||||||
let description = level.description;
|
let description = level.description;
|
||||||
|
|
||||||
if (gameVer > 19) {
|
if (gameVer > 19) {
|
||||||
if (level.password != 0)
|
if (level.password != 0)
|
||||||
xor_pw = xor.encode(String(level.password), '26364');
|
xorPassword = xor.encode(String(level.password), '26364');
|
||||||
} else {
|
} else {
|
||||||
description = Buffer.from(description, 'base64').toString('utf8');
|
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;
|
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 */}`;
|
extraData += `,${level.password},${0 /* featured id */}`;
|
||||||
response += `${hashes.hashSolo2(extraData)}#${extraData}`;
|
response += `${hashes.hashSolo2(extraData)}#${extraData}`;
|
||||||
|
|
||||||
|
console.log(response);
|
||||||
|
|
||||||
res.status(200).send(response);
|
res.status(200).send(response);
|
||||||
});
|
});
|
||||||
};
|
};
|
|
@ -17,14 +17,14 @@ module.exports = (app) : void => {
|
||||||
if (req.body.coins != '0') searchQuery.coins = true;
|
if (req.body.coins != '0') searchQuery.coins = true;
|
||||||
if (req.body.twoPlayer != '0') searchQuery.twoPlayer = true;
|
if (req.body.twoPlayer != '0') searchQuery.twoPlayer = true;
|
||||||
if (req.body.star) searchQuery.stars = {$gt: 0};
|
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.noStar) searchQuery.stars = 0;
|
||||||
|
|
||||||
if (req.body.song) {
|
if (req.body.song) {
|
||||||
if (Number(req.body.song) <= 50) { // lets assume a limit of 50 official songs
|
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 {
|
} 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
|
// if the client requests -1, -2 or -3 then it cant request any other difficulties
|
||||||
searchQuery.auto = false;
|
searchQuery.auto = false;
|
||||||
if (req.body.diff == '-1') { // NA levels
|
if (req.body.diff == '-1') { // NA levels
|
||||||
searchQuery.diff = 0;
|
searchQuery.difficulty = 0;
|
||||||
} else if(req.body.diff == '-2') { // demons
|
} else if(req.body.diff == '-2') { // demons
|
||||||
if (req.body.demonFilter) {
|
if (req.body.demonFilter) {
|
||||||
searchQuery.diff = 60 + req.body.demonFilter * 10;
|
searchQuery.difficulty = 60 + req.body.demonFilter * 10;
|
||||||
} else {
|
} else {
|
||||||
searchQuery.diff = { $gte: 60 };
|
searchQuery.difficulty = { $gte: 60 };
|
||||||
}
|
}
|
||||||
} else if(req.body.diff == '-3') { // auto
|
} else if(req.body.diff == '-3') { // auto
|
||||||
searchQuery.auto = true;
|
searchQuery.auto = true;
|
||||||
|
@ -45,7 +45,7 @@ module.exports = (app) : void => {
|
||||||
searchQuery.$or = req.body.diff
|
searchQuery.$or = req.body.diff
|
||||||
.split(',') // multiple diffs
|
.split(',') // multiple diffs
|
||||||
.map(d => {
|
.map(d => {
|
||||||
return {diff: Number(d) * 10};
|
return {difficulty: Number(d) * 10};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -104,7 +104,7 @@ module.exports = (app) : void => {
|
||||||
|
|
||||||
let results = foundLevels
|
let results = foundLevels
|
||||||
.map(l =>
|
.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('|');
|
.join('|');
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,12 @@ module.exports = (app): void => {
|
||||||
|
|
||||||
levels.sort((a, b) => b.id - a.id);
|
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);
|
console.log(req.body);
|
||||||
|
|
||||||
|
@ -19,39 +24,40 @@ module.exports = (app): void => {
|
||||||
app.get('db').collection('levels').insertOne({
|
app.get('db').collection('levels').insertOne({
|
||||||
'name': req.body.levelName,
|
'name': req.body.levelName,
|
||||||
'id': levelID,
|
'id': levelID,
|
||||||
'level_data': req.body.levelString,
|
'levelData': req.body.levelString,
|
||||||
'extra_data': req.body.extraString || '29_29_29_40_29_29_29_29_29_29_29_29_29_29_29_29',
|
'extraData': 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',
|
'levelInfo': req.body.levelInfo || '0',
|
||||||
'timestamp': Date.now(),
|
'timestamp': Date.now(),
|
||||||
'description': req.body.levelDesc,
|
'description': req.body.levelDesc,
|
||||||
'game_version': Number(req.body.gameVersion || 0),
|
'gameVersion': Number(req.body.gameVersion || 0),
|
||||||
'binary_version': Number(req.body.binaryVersion || 0),
|
'binaryVersion': Number(req.body.binaryVersion || 0),
|
||||||
'username': req.body.userName,
|
'username': req.body.userName,
|
||||||
'version': Number(req.body.levelVersion),
|
'version': Number(req.body.levelVersion),
|
||||||
'length': Number(req.body.levelLength),
|
'length': Number(req.body.levelLength),
|
||||||
// difference between audio_track and song_id is
|
// difference between audio_track and song_id is
|
||||||
// audio_track is official songs and song_id is newgrounds aka custom songs
|
// audio_track is official songs and song_id is newgrounds aka custom songs
|
||||||
'audio_track': Number(req.body.audioTrack),
|
'audioTrack': Number(req.body.audioTrack),
|
||||||
'song_id': Number(req.body.songID),
|
'songID': Number(req.body.songID),
|
||||||
'auto': false,
|
'auto': false,
|
||||||
'password': Number(req.body.password || 0),
|
'password': Number(req.body.password || 0),
|
||||||
'original': Boolean(Number(req.body.original || 0)),
|
'original': Number(req.body.original || 0),
|
||||||
'two_player': Boolean(Number(req.body.twoPlayer || 0)),
|
'twoPlayer': Boolean(Number(req.body.twoPlayer || 0)),
|
||||||
'objects': Number(req.body.objects || 0),
|
'objects': Number(req.body.objects || 0),
|
||||||
'coins': Number(req.body.coins || 0),
|
'coins': Number(req.body.coins || 0),
|
||||||
'requested_stars': Number(req.body.requestedStars || 0),
|
'requestedStars': Number(req.body.requestedStars || 0),
|
||||||
'secret': req.body.secret,
|
'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
|
'udid': udid, // ??? i have no idea what this is
|
||||||
'unlisted': Boolean(Number(req.body.unlisted || 0)),
|
'unlisted': Boolean(Number(req.body.unlisted || 0)),
|
||||||
'ldm': Boolean(Number(req.body.ldm || 0)),
|
'hasLDM': Boolean(Number(req.body.ldm || 0)),
|
||||||
// online stuff
|
// online stuff
|
||||||
'downloads': 0,
|
'downloads': 0,
|
||||||
'likes': 0,
|
'likes': 0,
|
||||||
'difficulty': 0, // 0 = N/A 10 = EASY 20 = NORMAL 30 = HARD 40 = HARDER 50 = INSANE 50 = AUTO 50 = DEMON
|
'difficulty': 0, // 0 = N/A 10 = EASY 20 = NORMAL 30 = HARD 40 = HARDER 50 = INSANE 50 = AUTO 50 = DEMON
|
||||||
'stars': 0,
|
'stars': 0,
|
||||||
'featured': false,
|
'featured': false,
|
||||||
'epic': false
|
'epic': false,
|
||||||
|
'ratedCoins': false
|
||||||
});
|
});
|
||||||
|
|
||||||
res.status(200).send(String(levelID));
|
res.status(200).send(String(levelID));
|
||||||
|
|
Loading…
Reference in New Issue