From 9b9918b40d43bc5f58dca026d31d75c9503bc769 Mon Sep 17 00:00:00 2001 From: CaramelKat <32065563+caramelkat@users.noreply.github.com> Date: Tue, 31 Aug 2021 16:16:03 -0500 Subject: [PATCH] Updated how community images are handled --- src/services/juxt-web/routes/admin/api.js | 60 ++++++++--------------- 1 file changed, 21 insertions(+), 39 deletions(-) diff --git a/src/services/juxt-web/routes/admin/api.js b/src/services/juxt-web/routes/admin/api.js index b533c4a..2691409 100644 --- a/src/services/juxt-web/routes/admin/api.js +++ b/src/services/juxt-web/routes/admin/api.js @@ -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, };