GDBrowser/api/post/postProfileComment.js
Colon cf6bc46304 Messages + Big boy improvements
- Added fetching, reading, deleting and sending messages to the API. Interface eventually^tm
- Hopefully fixed comments posted through the site looking out of place in vanilla GD
- Renamed app.modules to app.run
- Added subfolders to /api for neatness
- Removed Herobrine
2019-12-25 16:20:32 -05:00

40 lines
No EOL
1.8 KiB
JavaScript

const request = require('request')
const XOR = require('../../classes/XOR.js');
const xor = new XOR();
const crypto = require('crypto')
function sha1(data) { return crypto.createHash("sha1").update(data, "binary").digest("hex"); }
module.exports = async (app, req, res) => {
if (!req.body.comment) return res.status(400).send("No comment provided!")
if (!req.body.username) return res.status(400).send("No username provided!")
if (!req.body.accountID) return res.status(400).send("No account ID provided!")
if (!req.body.password) return res.status(400).send("No password provided!")
if (req.body.comment.includes('\n')) return res.status(400).send("Profile posts cannot contain line breaks!")
let params = {
gameVersion: app.gameVersion,
binaryVersion: app.binaryVersion,
secret: app.secret,
cType: '1'
}
params.comment = new Buffer(req.body.comment.slice(0, 190) + (req.body.color ? "☆" : "")).toString('base64').replace(/\//g, '_').replace(/\+/g, "-")
params.gjp = xor.encrypt(req.body.password, 37526)
params.accountID = req.body.accountID.toString()
params.userName = req.body.username
let chk = params.userName + params.comment + "1xPT6iUrtws0J"
chk = sha1(chk)
chk = xor.encrypt(chk, 29481)
params.chk = chk
request.post(app.endpoint + 'uploadGJAccComment20.php', {
form: params
}, function (err, resp, body) {
if (err) return res.status(400).send("The Geometry Dash servers returned an error! Perhaps they're down for maintenance")
if (!body || body == "-1") return res.status(400).send("The Geometry Dash servers rejected your profile post! Try again later, or make sure your username and password are entered correctly.")
res.status(200).send(`Comment posted to ${params.userName} with ID ${body}`)
})
}