S3 : add news

This commit is contained in:
2026-06-19 12:11:18 +03:30
parent 1c40eb958b
commit 99a9f9ace5
11 changed files with 1002 additions and 247 deletions
+35 -45
View File
@@ -4,11 +4,12 @@ const {_sr} = require('../plugins/serverResponses')
const {res404, res500} = require('../plugins/controllersHelperFunctions')
const News = require('../models/News')
const Category = require('../models/Category')
const sharp = require('sharp')
const fs = require('fs')
const {
deleteNewsImage,
uploadProcessedImage,
} = require('../plugins/newsImageStorage')
////// variables
const noCover = '/img/no-cover.jpg'
const limit = 5;
const limitDetails = 11;
const titleFilterRegex = new RegExp('/', 'g')
@@ -187,19 +188,23 @@ module.exports.addNewsFile = [
})
const imageName = `news_${Date.now()}_${createNewsFile._id}.${image.mimetype.split('/')[1]}`;
try {
const target = sharp(image.data)
await target
.resize(coverNewsWidth, coverNewsHeight, {fit: 'cover'})
.jpeg({quality: coverQuality})
.toFile(`./static/uploads/images/news/${imageName}`);
await uploadProcessedImage(
image.data,
imageName,
coverNewsWidth,
coverNewsHeight,
coverQuality
);
await uploadProcessedImage(
image.data,
`thumb_${imageName}`,
thumbCoverNewsWidth,
thumbCoverNewsHeight,
thumbCoverQuality
);
createNewsFile.cover = imageName;
await target
.resize(thumbCoverNewsWidth, thumbCoverNewsHeight, {fit: 'cover'})
.jpeg({quality: thumbCoverQuality})
.toFile(`./static/uploads/images/news/thumb_${imageName}`);
createNewsFile.thumbCover = `thumb_${imageName}`;
await createNewsFile.save();
@@ -375,39 +380,24 @@ module.exports.updateNewsFile = [
}
const imageName = `news_${Date.now()}_${targetNewsFile._id}.${image.mimetype.split('/')[1]}`;
try {
const target = sharp(image.data)
await target
.resize(coverNewsWidth, coverNewsHeight, {fit: 'cover'})
.jpeg({quality: coverQuality})
.toFile(`./static/uploads/images/news/${imageName}`);
await deleteNewsImage(targetNewsFile, "cover");
await deleteNewsImage(targetNewsFile, "thumbCover");
await target
.resize(thumbCoverNewsWidth, thumbCoverNewsHeight, {fit: 'cover'})
.jpeg({quality: thumbCoverQuality})
.toFile(`./static/uploads/images/news/thumb_${imageName}`);
await uploadProcessedImage(
image.data,
imageName,
coverNewsWidth,
coverNewsHeight,
coverQuality
);
/**
* if exist old pic delete it from file
*/
if (targetNewsFile.cover !== noCover) {
let oldPic = `./static${targetNewsFile.cover}`;
if (await fs.existsSync(oldPic)) {
fs.unlink(oldPic, (err) => {
if (err) return res500(res, err?.message);
});
}
}
if (targetNewsFile.thumbCover !== noCover) {
let oldPic = `./static${targetNewsFile.thumbCover}`;
if (await fs.existsSync(oldPic)) {
fs.unlink(oldPic, (err) => {
if (err) return res500(res, err?.message);
});
}
}
await uploadProcessedImage(
image.data,
`thumb_${imageName}`,
thumbCoverNewsWidth,
thumbCoverNewsHeight,
thumbCoverQuality
);
targetNewsFile.cover = imageName;
targetNewsFile.thumbCover = `thumb_${imageName}`;