DeepSource fixes

pull/20/head
tycrek 3 years ago
parent 0919939ac7
commit 7d47c173e9
No known key found for this signature in database
GPG Key ID: 25D74F3943625263

@ -5,5 +5,7 @@
"CODE_BAD_REQUEST": 400, "CODE_BAD_REQUEST": 400,
"CODE_UNAUTHORIZED": 401, "CODE_UNAUTHORIZED": 401,
"CODE_NOT_FOUND": 404, "CODE_NOT_FOUND": 404,
"CODE_PAYLOAD_TOO_LARGE": 413,
"CODE_INTERNAL_SERVER_ERROR": 500,
"KILOBYTES": 1024 "KILOBYTES": 1024
} }

@ -22,7 +22,7 @@ const { WebhookClient, MessageEmbed } = require('discord.js');
const { doUpload, deleteS3, processUploaded } = require('./storage'); const { doUpload, deleteS3, processUploaded } = require('./storage');
const { path, saveData, log, verify, getTrueHttp, getTrueDomain, generateToken, generateId, formatBytes, const { path, saveData, log, verify, getTrueHttp, getTrueDomain, generateToken, generateId, formatBytes,
formatTimestamp, arrayEquals, getS3url, getDirectUrl, getSafeExt, getResourceColor, replaceholder } = require('./utils'); formatTimestamp, arrayEquals, getS3url, getDirectUrl, getSafeExt, getResourceColor, replaceholder } = require('./utils');
const { CODE_NO_CONTENT, CODE_BAD_REQUEST, CODE_UNAUTHORIZED, CODE_NOT_FOUND } = require('./MagicNumbers.json'); const { CODE_NO_CONTENT, CODE_BAD_REQUEST, CODE_UNAUTHORIZED, CODE_NOT_FOUND, CODE_PAYLOAD_TOO_LARGE, CODE_INTERNAL_SERVER_ERROR } = require('./MagicNumbers.json');
//#endregion //#endregion
//#region Variables, module setup //#region Variables, module setup
@ -113,7 +113,7 @@ function startup() {
// Upload file // Upload file
app.post('/', doUpload, processUploaded, ({ next }) => next()); app.post('/', doUpload, processUploaded, ({ next }) => next());
app.use('/', (err, _req, res, next) => err.code && err.code === 'LIMIT_FILE_SIZE' ? res.status(413).send(`Max upload size: ${maxUploadSize}MB`) : next(err)); app.use('/', (err, _req, res, next) => err.code && err.code === 'LIMIT_FILE_SIZE' ? res.status(CODE_PAYLOAD_TOO_LARGE).send(`Max upload size: ${maxUploadSize}MB`) : next(err));
// Process uploaded file // Process uploaded file
app.post('/', (req, res) => { app.post('/', (req, res) => {
@ -302,9 +302,9 @@ function startup() {
.catch(console.error); .catch(console.error);
}); });
app.use((err, _req, res, _next) => { app.use(([err, , res,]) => {
console.error(err); console.error(err);
res.sendStatus(500); res.sendStatus(CODE_INTERNAL_SERVER_ERROR);
}); });
// Host the server // Host the server

@ -10,6 +10,8 @@ const Hash = require('./hash');
const { getSafeExt, getDatedDirname, sanitize, generateId } = require('./utils'); const { getSafeExt, getDatedDirname, sanitize, generateId } = require('./utils');
const { s3enabled, s3endpoint, s3bucket, s3accessKey, s3secretKey, saveAsOriginal, maxUploadSize } = require('./config.json'); const { s3enabled, s3endpoint, s3bucket, s3accessKey, s3secretKey, saveAsOriginal, maxUploadSize } = require('./config.json');
const ID_GEN_LENGTH = 32;
const s3 = new aws.S3({ const s3 = new aws.S3({
endpoint: new aws.Endpoint(s3endpoint), endpoint: new aws.Endpoint(s3endpoint),
credentials: new aws.Credentials({ accessKeyId: s3accessKey, secretAccessKey: s3secretKey }) credentials: new aws.Credentials({ accessKeyId: s3accessKey, secretAccessKey: s3secretKey })
@ -31,8 +33,8 @@ function processUploaded(req, _, next) {
// Fixes // Fixes
req.file.mimetype = req.file.detectedMimeType; req.file.mimetype = req.file.detectedMimeType;
req.file.originalname = sanitize(req.file.originalName); req.file.originalname = sanitize(req.file.originalName);
req.file.randomId = generateId('random', 32, null, null); req.file.randomId = generateId('random', ID_GEN_LENGTH, null, null);
req.file.deleteId = generateId('random', 32, null, null); req.file.deleteId = generateId('random', ID_GEN_LENGTH, null, null);
// Remove unwanted fields // Remove unwanted fields
delete req.file.fieldName; delete req.file.fieldName;
@ -44,8 +46,9 @@ function processUploaded(req, _, next) {
// Operations // Operations
saveFile(req) saveFile(req)
.then(() => req.file.path = req.file.path.concat('.temp')) .then(() => req.file.path = req.file.path.concat('.temp')) // skipcq: JS-0086
.then(() => Promise.all([Thumbnail(req.file), Vibrant(req.file), Hash(req.file)])) .then(() => Promise.all([Thumbnail(req.file), Vibrant(req.file), Hash(req.file)]))
// skipcq: JS-0086
.then(([thumbnail, vibrant, sha1]) => ( .then(([thumbnail, vibrant, sha1]) => (
req.file.thumbnail = thumbnail, // skipcq: JS-0090 req.file.thumbnail = thumbnail, // skipcq: JS-0090
req.file.vibrant = vibrant, // skipcq: JS-0090 req.file.vibrant = vibrant, // skipcq: JS-0090
@ -53,6 +56,7 @@ function processUploaded(req, _, next) {
)) ))
.then(() => .then(() =>
// skipcq: JS-0229
new Promise((resolve, reject) => s3enabled new Promise((resolve, reject) => s3enabled
// Upload to Amazon S3 // Upload to Amazon S3
@ -85,10 +89,6 @@ function deleteS3(file) {
.catch(reject)); .catch(reject));
} }
function bucketSize() {
return new Promise((resolve, reject) => (s3enabled ? listAllKeys(resolve, reject) : resolve(0)));
}
function listAllKeys(resolve, reject, token) { function listAllKeys(resolve, reject, token) {
let allKeys = []; let allKeys = [];
s3.listObjectsV2({ Bucket: s3bucket, ContinuationToken: token }).promise() s3.listObjectsV2({ Bucket: s3bucket, ContinuationToken: token }).promise()
@ -96,6 +96,10 @@ function listAllKeys(resolve, reject, token) {
.catch(reject); .catch(reject);
} }
function bucketSize() {
return new Promise((resolve, reject) => (s3enabled ? listAllKeys(resolve, reject) : resolve(0)));
}
module.exports = { module.exports = {
doUpload: multer({ limits: { fileSize: `${maxUploadSize}MB` } }).single('file'), doUpload: multer({ limits: { fileSize: `${maxUploadSize}MB` } }).single('file'),
processUploaded, processUploaded,

@ -25,4 +25,4 @@ function getVibrant(file, resolve, reject) {
* @param {*} file The file to get a colour from * @param {*} file The file to get a colour from
* @returns The Vibrant colour as a Hex value (or random Hex value for videos) * @returns The Vibrant colour as a Hex value (or random Hex value for videos)
*/ */
module.exports = (file) => new Promise((resolve, reject) => file.mimetype.includes('video') ? resolve(randomHexColour()) : getVibrant(file, resolve, reject)); module.exports = (file) => new Promise((resolve, reject) => file.mimetype.includes('video') ? resolve(randomHexColour()) : getVibrant(file, resolve, reject)); // skipcq: JS-0229

Loading…
Cancel
Save