rename files to be more consistent and handle multiple versions
This commit is contained in:
parent
fce8db2c3e
commit
1f3b624608
|
@ -1,12 +1,14 @@
|
||||||
import * as xor from './xor';
|
import * as xor from './xor';
|
||||||
import * as hashes from './hash';
|
import * as hashes from './hash';
|
||||||
|
|
||||||
|
const handleRequestsAt = ['downloadGJLevel22', 'downloadGJLevel21', 'downloadGJLevel20', 'downloadGJLevel19', 'downloadGJLevel'];
|
||||||
|
|
||||||
module.exports = (app) : void => {
|
module.exports = (app) : void => {
|
||||||
app.post('/' + app.get('config').addtopath + 'database/downloadGJLevel22.php', async (req, res) => {
|
let downloadLevel = async (req, res) => {
|
||||||
let level = await app.get('db').collection('levels').findOneAndUpdate({
|
let level = await app.get('db').collection('levels').findOneAndUpdate({
|
||||||
id: Number(req.body.levelID)
|
id: Number(req.body.levelID)
|
||||||
}, {
|
}, {
|
||||||
$inc: {downloads: 1}
|
$inc: { downloads: 1 }
|
||||||
});
|
});
|
||||||
|
|
||||||
if (level.value == null) return res.status(200).send('-1');
|
if (level.value == null) return res.status(200).send('-1');
|
||||||
|
@ -25,7 +27,7 @@ module.exports = (app) : void => {
|
||||||
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.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}`;
|
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.levelData)}#`;
|
response += `#${hashes.hashLevel(level.levelData)}#`;
|
||||||
level.demon = level.difficulty >= 60;
|
level.demon = level.difficulty >= 60;
|
||||||
|
@ -34,5 +36,8 @@ module.exports = (app) : void => {
|
||||||
response += `${hashes.hashSolo2(extraData)}#${extraData}`;
|
response += `${hashes.hashSolo2(extraData)}#${extraData}`;
|
||||||
|
|
||||||
res.status(200).send(response);
|
res.status(200).send(response);
|
||||||
});
|
};
|
||||||
|
|
||||||
|
for (let i in handleRequestsAt)
|
||||||
|
app.post('/' + app.get('config').addtopath + 'database/' + handleRequestsAt[i] + '.php', downloadLevel);
|
||||||
};
|
};
|
|
@ -1,5 +1,9 @@
|
||||||
|
export{}; // fuck you ts, i have to do this to prevent "cannot redeclare block scoped variable"
|
||||||
|
|
||||||
|
const handleRequestsAt = ['getGJComments21', 'getGJComments20', 'getGJComments19', 'getDJCommentHistory'];
|
||||||
|
|
||||||
module.exports = (app) : void => {
|
module.exports = (app) : void => {
|
||||||
app.post('/' + app.get('config').addtopath + 'database/getGJComments21.php', async (req, res) => {
|
let getComments = async (req, res) => {
|
||||||
let comments = await app.get('db').collection('comments').find({
|
let comments = await app.get('db').collection('comments').find({
|
||||||
levelID: Number(req.body.levelID)
|
levelID: Number(req.body.levelID)
|
||||||
}).toArray();
|
}).toArray();
|
||||||
|
@ -14,7 +18,7 @@ module.exports = (app) : void => {
|
||||||
if (req.body.count)
|
if (req.body.count)
|
||||||
mode = Number(req.body.mode);
|
mode = Number(req.body.mode);
|
||||||
|
|
||||||
switch(mode) {
|
switch (mode) {
|
||||||
case 0:
|
case 0:
|
||||||
comments.sort((a, b) => b.id - a.id);
|
comments.sort((a, b) => b.id - a.id);
|
||||||
break;
|
break;
|
||||||
|
@ -46,5 +50,8 @@ module.exports = (app) : void => {
|
||||||
.join('|');
|
.join('|');
|
||||||
|
|
||||||
res.status(200).send(`${commentString}#${count}:${offset}:10`);
|
res.status(200).send(`${commentString}#${count}:${offset}:10`);
|
||||||
});
|
};
|
||||||
|
|
||||||
|
for (let i in handleRequestsAt)
|
||||||
|
app.post('/' + app.get('config').addtopath + 'database/' + handleRequestsAt[i] + '.php', getComments);
|
||||||
};
|
};
|
|
@ -1,9 +1,10 @@
|
||||||
import * as hash from './hash';
|
import * as hash from './hash';
|
||||||
|
|
||||||
const levelsPerPage = 10; // should be kept at 10, increasing/decreasing may lead to unforseeable consequences
|
const levelsPerPage = 10; // should be kept at 10, increasing/decreasing may lead to unforseeable consequences
|
||||||
|
const handleRequestsAt = ['getGJLevels21', 'getGJLevels20', 'getGJLevels19', 'getGJLevels'];
|
||||||
|
|
||||||
module.exports = (app) : void => {
|
module.exports = (app) : void => {
|
||||||
app.post('/' + app.get('config').addtopath + 'database/getGJLevels21.php', async (req, res) => {
|
let getLevels = async (req, res) => {
|
||||||
let levelsString = '';
|
let levelsString = '';
|
||||||
|
|
||||||
let searchQuery: any = {}; // fuck you typescript, i have to use any or else it screams
|
let searchQuery: any = {}; // fuck you typescript, i have to use any or else it screams
|
||||||
|
@ -16,7 +17,7 @@ module.exports = (app) : void => {
|
||||||
if (req.body.epic != '0') searchQuery.epic = true;
|
if (req.body.epic != '0') searchQuery.epic = true;
|
||||||
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 = 0;
|
if (req.body.original != '0') searchQuery.original = 0;
|
||||||
if (req.body.noStar) searchQuery.stars = 0;
|
if (req.body.noStar) searchQuery.stars = 0;
|
||||||
|
|
||||||
|
@ -33,19 +34,19 @@ module.exports = (app) : void => {
|
||||||
searchQuery.auto = false;
|
searchQuery.auto = false;
|
||||||
if (req.body.diff == '-1') { // NA levels
|
if (req.body.diff == '-1') { // NA levels
|
||||||
searchQuery.difficulty = 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.difficulty = 60 + req.body.demonFilter * 10;
|
searchQuery.difficulty = 60 + req.body.demonFilter * 10;
|
||||||
} else {
|
} else {
|
||||||
searchQuery.difficulty = { $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;
|
||||||
} else {
|
} else {
|
||||||
searchQuery.$or = req.body.diff
|
searchQuery.$or = req.body.diff
|
||||||
.split(',') // multiple diffs
|
.split(',') // multiple diffs
|
||||||
.map(d => {
|
.map(d => {
|
||||||
return {difficulty: Number(d) * 10};
|
return { difficulty: Number(d) * 10 };
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,8 +56,8 @@ module.exports = (app) : void => {
|
||||||
$and: [
|
$and: [
|
||||||
{
|
{
|
||||||
$or: [
|
$or: [
|
||||||
{id: Number(req.body.str)},
|
{ id: Number(req.body.str) },
|
||||||
{name: {$regex: `${req.body.str}`}}
|
{ name: { $regex: `${req.body.str}` } }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
searchQuery
|
searchQuery
|
||||||
|
@ -123,9 +124,12 @@ module.exports = (app) : void => {
|
||||||
let songs = ''; // placeholder
|
let songs = ''; // placeholder
|
||||||
|
|
||||||
levelsString = [results, users, songs, levels.length].join('#') +
|
levelsString = [results, users, songs, levels.length].join('#') +
|
||||||
`:${offset}:${levelsPerPage}#` +
|
`:${offset}:${levelsPerPage}#` +
|
||||||
hash.hashLevels(foundLevels);
|
hash.hashLevels(foundLevels);
|
||||||
|
|
||||||
res.status(200).send(levelsString);
|
res.status(200).send(levelsString);
|
||||||
});
|
};
|
||||||
|
|
||||||
|
for (let i in handleRequestsAt)
|
||||||
|
app.post('/' + app.get('config').addtopath + 'database/' + handleRequestsAt[i] + '.php', getLevels);
|
||||||
};
|
};
|
10
src/index.ts
10
src/index.ts
|
@ -25,11 +25,11 @@ dbClient.connect((err) => {
|
||||||
res.send(`${config.name} homepage - unfinished`);
|
res.send(`${config.name} homepage - unfinished`);
|
||||||
});
|
});
|
||||||
|
|
||||||
require('./getGJLevels21')(app);
|
require('./getGJLevels')(app);
|
||||||
require('./uploadGJLevel21')(app);
|
require('./uploadGJLevel')(app);
|
||||||
require('./downloadGJLevel22')(app);
|
require('./downloadGJLevel')(app);
|
||||||
require('./getGJComments21')(app);
|
require('./getGJComments')(app);
|
||||||
require('./updateGJUserScore22')(app);
|
require('./updateGJUserScore')(app);
|
||||||
|
|
||||||
app.get('*', (req, res) => {
|
app.get('*', (req, res) => {
|
||||||
console.log('got 404 for ' + req.url);
|
console.log('got 404 for ' + req.url);
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
export{}; // fuck you ts, i have to do this to prevent "cannot redeclare block scoped variable"
|
||||||
|
|
||||||
|
const handleRequestsAt = ['updateGJUserScore22', 'updateGJUserScore21', 'updateGJUserScore20', 'updateGJUserScore19', 'updateGJUserScore'];
|
||||||
|
|
||||||
|
module.exports = (app): void => {
|
||||||
|
let updateUserScore = async (req, res) => {
|
||||||
|
res.status(200).send('0'); // temporary
|
||||||
|
};
|
||||||
|
|
||||||
|
for (let i in handleRequestsAt)
|
||||||
|
app.post('/' + app.get('config').addtopath + 'database/' + handleRequestsAt[i] + '.php', updateUserScore);
|
||||||
|
};
|
|
@ -1,5 +0,0 @@
|
||||||
module.exports = (app): void => {
|
|
||||||
app.post('/' + app.get('config').addtopath + 'database/updateGJUserScore22.php', async (req, res) => {
|
|
||||||
res.status(200).send('0'); // temporary
|
|
||||||
});
|
|
||||||
};
|
|
|
@ -1,5 +1,9 @@
|
||||||
|
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 => {
|
module.exports = (app): void => {
|
||||||
app.post('/' + app.get('config').addtopath + 'database/uploadGJLevel21.php', async (req, res) => {
|
let uploadLevel = async (req, res) => {
|
||||||
let levels = await app.get('db').collection('levels')
|
let levels = await app.get('db').collection('levels')
|
||||||
.find({})
|
.find({})
|
||||||
.toArray();
|
.toArray();
|
||||||
|
@ -61,5 +65,8 @@ module.exports = (app): void => {
|
||||||
});
|
});
|
||||||
|
|
||||||
res.status(200).send(String(levelID));
|
res.status(200).send(String(levelID));
|
||||||
});
|
};
|
||||||
|
|
||||||
|
for (let i in handleRequestsAt)
|
||||||
|
app.post('/' + app.get('config').addtopath + 'database/' + handleRequestsAt[i] + '.php', uploadLevel);
|
||||||
};
|
};
|
Loading…
Reference in New Issue