Add files via upload
This commit is contained in:
51
server/routes/gallery.js
Normal file
51
server/routes/gallery.js
Normal file
@ -0,0 +1,51 @@
|
||||
const fs = require('fs-extra');
|
||||
|
||||
async function get(_req, res) {
|
||||
res.setHeader('Content-Type', 'text/html');
|
||||
res.render('galleryLogin');
|
||||
res.end();
|
||||
}
|
||||
async function post(req, res) {
|
||||
const userIP = req.headers['x-forwarded-for'] || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress;
|
||||
res.setHeader('Content-Type', 'text/html');
|
||||
const protocol = this.protocol();
|
||||
var password = this.c.admin.key;
|
||||
// Compatibility with old config
|
||||
if(typeof password == "string"){
|
||||
password = [password];
|
||||
}
|
||||
if (!this.c.admin.key.includes(req.body.password)) {
|
||||
res.statusCode = 401;
|
||||
res.render('unauthorized');
|
||||
res.end();
|
||||
return this.log.warning(`Unauthorized User | Gallery Access | ${userIP} | ${req.body.password}`);
|
||||
}
|
||||
this.log.warning(`IP Address: ${userIP} successfully accessed gallery with key ${req.body.password}`);
|
||||
if (this.monitorChannel !== null) this.bot.createMessage(this.monitorChannel, `\`\`\`MARKDOWN\n[GALLERY ACCESS][USER]\n[IP](${userIP})\n[KEY](${req.body.password})\n\`\`\``);
|
||||
fs.readdir(`${__dirname}/../uploads`, (err, files) => {
|
||||
let pics = [];
|
||||
files = files.map(fileName => {
|
||||
return {
|
||||
name: fileName,
|
||||
time: fs.statSync(`${__dirname}/../uploads/${fileName}`).mtime.getTime()
|
||||
};
|
||||
})
|
||||
files.sort((a, b) => {
|
||||
return b.time - a.time; });
|
||||
files = files.map(v => {
|
||||
return v.name; });
|
||||
files.forEach((file, idx, array) => {
|
||||
if (file.toString().includes('.jpg') || file.toString().includes('.png') || file.toString().includes('.gif')) {
|
||||
pics.push(`${protocol}://${req.headers.host}/${file.toString()}`);
|
||||
}
|
||||
if (idx === array.length - 1) {
|
||||
res.render('gallery', {
|
||||
pictures: pics,
|
||||
});
|
||||
return res.end();
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
}
|
||||
module.exports = { get, post };
|
Reference in New Issue
Block a user