cumstorm/src/getGJComments.ts

57 lines
1.8 KiB
TypeScript

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 => {
let getComments = async (req, res) => {
let comments = await app.get('db').collection('comments').find({
levelID: Number(req.body.levelID)
}).toArray();
let mode = 0;
let count = 10;
let offset = Number(req.body.page) * count;
if (req.body.mode)
mode = Number(req.body.mode);
if (req.body.count)
mode = Number(req.body.mode);
switch (mode) {
case 0:
comments.sort((a, b) => b.id - a.id);
break;
case 1:
comments.sort((a, b) => b.likes - a.likes);
}
const foundComments = comments
.slice(offset, offset + count);
if (foundComments.count <= 0)
return res.status(200).send('#0:0:0');
let commentString = foundComments.map(c => {
let result = '';
let uploadDate = new Date(c.uploadDate).toISOString();
let commentContent = c.commentContent;
if (Number(req.body.gameVersion) < 20)
commentContent = Buffer.from(commentContent, 'base64').toString('utf8');
result += `2~${commentContent}~3~${c.userID}~4~${c.likes}~5~0~7~${Number(c.isSpam)}~9~${uploadDate}~6~${c.id}~10~${c.percent}`;
// dummy data for now cus no users
result += `~11~0~12~0:1~oat~7~1~9~${Math.floor(Math.random() * 142) /* icon */}~10~${Math.floor(Math.random() * 64) /* color1 */}~11~${Math.floor(Math.random() * 64) /* color2 */}~14~${0 /* icontype */}~15~${1 /* special */}~16~${0 /*extID*/}`;
return result;
})
.join('|');
res.status(200).send(`${commentString}#${count}:${offset}:10`);
};
for (let i in handleRequestsAt)
app.post('/' + app.get('config').addtopath + 'database/' + handleRequestsAt[i] + '.php', getComments);
};