Merge branch 'dev' into 2358-route_download_pdf
gitea/salix/pipeline/head This commit looks good Details

This commit is contained in:
Joan Sanchez 2020-08-25 12:27:17 +00:00
commit 7e494962cd
2 changed files with 34 additions and 29 deletions

View File

@ -55,8 +55,9 @@ module.exports = Self => {
}; };
await fs.mkdir(dstDir, {recursive: true}); await fs.mkdir(dstDir, {recursive: true});
await sharp(srcFilePath) await sharp(srcFilePath, {failOnError: false})
.resize(collection.maxWidth, collection.maxHeight, resizeOpts) .resize(collection.maxWidth, collection.maxHeight, resizeOpts)
.png()
.toFile(dstFile); .toFile(dstFile);
const sizes = collection.sizes(); const sizes = collection.sizes();
@ -69,8 +70,9 @@ module.exports = Self => {
}; };
await fs.mkdir(dstDir, {recursive: true}); await fs.mkdir(dstDir, {recursive: true});
await sharp(srcFilePath) await sharp(srcFilePath, {failOnError: false})
.resize(size.width, size.height, resizeOpts) .resize(size.width, size.height, resizeOpts)
.png()
.toFile(dstFile); .toFile(dstFile);
} }

View File

@ -20,45 +20,48 @@ module.exports = Self => {
const models = Self.app.models; const models = Self.app.models;
try { try {
const imageQueue = await Self.find({where: {error: null}, limit: 25}); const tempPath = path.join('/tmp/salix-image');
/* const tempPath = path.join('/tmp/salix-image'); */
const rootPath = models.Image.getPath();
const tempPath = path.join(rootPath, 'temp');
// Create temporary path // Create temporary path
await fs.mkdir(tempPath, {recursive: true}); await fs.mkdir(tempPath, {recursive: true});
for (let image of imageQueue) { const timer = setInterval(async() => {
const image = await Self.findOne({where: {error: null}});
// Exit loop
if (!image) return clearInterval(timer);
const fileName = `${image.itemFk}.png`; const fileName = `${image.itemFk}.png`;
const filePath = path.join(tempPath, fileName); const filePath = path.join(tempPath, fileName);
const file = fs.createWriteStream(filePath);
https.get(image.url, async response => { const writeStream = fs.createWriteStream(filePath);
if (response.statusCode != 200) { writeStream.on('open', () => {
const error = new Error(`Could not download the image. Status code ${response.statusCode}`); https.get(image.url, async response => {
if (response.statusCode != 200) {
const error = new Error(`Could not download the image. Status code ${response.statusCode}`);
file.close(); return await errorHandler(image.itemFk, error, filePath);
await errorHandler(image.itemFk, error, filePath);
}
response.pipe(file);
file.on('error', async error => {
await errorHandler(image.itemFk, error, filePath);
});
file.on('finish', async function() {
try {
await models.Image.registerImage('catalog', fileName, filePath);
await image.destroy();
} catch (error) {
await errorHandler(image.itemFk, error, filePath);
} }
response.pipe(writeStream);
}).on('error', async error => {
await errorHandler(image.itemFk, error, filePath);
}); });
}).on('error', async error => { });
writeStream.on('error', async error => {
await errorHandler(image.itemFk, error, filePath); await errorHandler(image.itemFk, error, filePath);
}); });
}
writeStream.on('finish', async function() {
try {
await models.Image.registerImage('catalog', fileName, filePath);
await image.destroy();
} catch (error) {
await errorHandler(image.itemFk, error, filePath);
}
});
}, 1000);
} catch (error) { } catch (error) {
await errorHandler(image.itemFk, error); await errorHandler(image.itemFk, error);
} }