Updated how community images are handled

This commit is contained in:
CaramelKat
2021-08-31 16:16:03 -05:00
committed by jay.poff@outlook.com
parent b9ad551faa
commit 9b9918b40d

View File

@@ -8,7 +8,6 @@ const { POST } = require('../../../../models/post');
var router = express.Router();
const moment = require('moment');
var multer = require('multer');
const sharp = require("sharp");
const snowflake = require('node-snowflake').Snowflake;
var storage = multer.memoryStorage();
var upload = multer({ storage: storage });
@@ -133,8 +132,9 @@ router.post('/communities/:communityID/update', upload.fields([{name: 'browserIc
let user = await database.getUserByPID(pid);
if(user !== null) {
if (config.authorized_PNIDs.indexOf(user.pid) === -1) {
if(user !== null)
{
if(config.authorized_PNIDs.indexOf(user.pid) === -1) {
logger.audit('[' + user.user_id + ' - ' + user.pid + '] attempted to update a community and is not authorized');
throw new Error('Invalid credentials supplied');
}
@@ -142,46 +142,30 @@ router.post('/communities/:communityID/update', upload.fields([{name: 'browserIc
const community = await database.getCommunityByID(req.params.communityID);
const files = JSON.parse(JSON.stringify(req.files));
if (req.body.name && community.name !== req.body.name)
if(req.body.name && community.name !== req.body.name)
community.name = req.body.name;
if (req.body.description && community.description !== req.body.description)
if(req.body.description && community.description !== req.body.description)
community.description = req.body.description;
if (req.body.title_ids[0] !== community.title_ids[0] && req.body.title_ids[1] !== community.title_ids[1] && req.body.title_ids[2] !== community.title_ids[2]
&& req.body.title_ids[0] !== '' && req.body.title_ids[1] !== '' && req.body.title_ids[2] !== '') {
if(req.body.title_ids[0] !== community.title_ids[0] && req.body.title_ids[1] !== community.title_ids[1] && req.body.title_ids[2] !== community.title_ids[2]
&& req.body.title_ids[0] !== '' && req.body.title_ids[1] !== '' && req.body.title_ids[2] !== '') {
community.title_id = req.body.title_ids;
community.title_ids = req.body.title_ids;
}
if (req.body.icon && community.icon !== req.body.icon)
if(req.body.icon && community.icon !== req.body.icon)
community.icon = req.body.icon;
if (req.files.browserIcon) {
await sharp(req.files.browserIcon[0].buffer).then(file => function () {
community.browser_icon = `data:image/png;base64,${file.resize({
height: 128,
width: 128
}).toBuffer().toString('base64')}`
})
}
if (req.files.CTRbrowserHeader) {
await sharp(req.files.CTRbrowserHeader[0].buffer).then(file => function () {
community.CTR_browser_header = `data:image/png;base64,${file.resize({
height: 220,
width: 400
}).toBuffer().toString('base64')}`
})
if(req.files.browserIcon) {
community.browser_icon = `data:image/png;base64,${req.files.browserIcon[0].buffer.toString('base64')}`;
community.browser_thumbnail = `data:image/png;base64,${req.files.browserIcon[0].buffer.toString('base64')}`;
}
if(req.files.CTRbrowserHeader)
community.CTR_browser_header = `data:image/png;base64,${req.files.CTRbrowserHeader[0].buffer.toString('base64')}`;
if (req.files.WiiUbrowserHeader) {
await sharp(req.files.WiiUbrowserHeader[0].buffer).then(file => function () {
community.WiiU_browser_header = `data:image/png;base64,${file.resize({
height: 328,
width: 1498
}).toBuffer().toString('base64')}`
})
}
if(req.files.WiiUbrowserHeader)
community.WiiU_browser_header = `data:image/png;base64,${req.files.WiiUbrowserHeader[0].buffer.toString('base64')}`;
if(req.body.is_recommended)
community.is_recommended = req.body.is_recommended;
@@ -232,13 +216,14 @@ router.post('/communities/new', upload.fields([{name: 'browserIcon', maxCount: 1
JSON.parse(JSON.stringify(req.files));
let browserIcon, CTRHeader, WiiUHeader, thumb;
if(req.files.browserIcon) {
browserIcon = await sharp(req.files.browserIcon[0].buffer).resize({ height: 128, width: 128 }).toBuffer();
thumb = await sharp(req.files.browserIcon[0].buffer).resize({ height: 75, width: 75 }).toBuffer();
browserIcon = `data:image/png;base64,${req.files.browserIcon[0].buffer.toString('base64')}`;
thumb = `data:image/png;base64,${req.files.browserIcon[0].buffer.toString('base64')}`;
}
if(req.files.CTRbrowserHeader)
CTRHeader = await sharp(req.files.CTRbrowserHeader[0].buffer).resize({ height: 220, width: 400 }).toBuffer();
CTRHeader = `data:image/png;base64,${req.files.CTRbrowserHeader[0].buffer.toString('base64')}`;
if(req.files.WiiUbrowserHeader)
WiiUHeader = await sharp(req.files.WiiUbrowserHeader[0].buffer).resize({ height: 328, width: 1498 }).toBuffer();
WiiUHeader = `data:image/png;base64,${req.files.WiiUbrowserHeader[0].buffer.toString('base64')}`;
const document = {
empathy_count: 0,
id: snowflake.nextId(),
@@ -298,9 +283,6 @@ router.post('/communities/:communityID/sub/new', upload.fields([{name: 'browserI
let browserIcon, CTRHeader, WiiUHeader, thumb;
if(req.files.browserIcon) {
browserIcon = `data:image/png;base64,${req.files.browserIcon[0].buffer.toString('base64')}`;
thumb = await sharp(req.files.browserIcon[0].buffer)
.resize({ height: 75, width: 75 })
.toBuffer();
}
else {
browserIcon = community.browser_icon;
@@ -331,7 +313,7 @@ router.post('/communities/:communityID/sub/new', upload.fields([{name: 'browserI
community_id: snowflake.nextId(),
is_recommended: req.body.is_recommended,
browser_icon: browserIcon,
browser_thumbnail: `data:image/png;base64,${thumb.toString('base64')}`,
browser_thumbnail: thumb,
CTR_browser_header: CTRHeader,
WiiU_browser_header: WiiUHeader,
};