From 0ce0cc43c23f464a5822df98c4afccaf46678b9d Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Thu, 17 Jun 2021 08:01:41 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20Refactoring?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/comic.model.ts | 1 - services/imagetransformation.service.ts | 4 ++-- utils/imagetransformation.utils.ts | 6 ++---- utils/uncompression.utils.ts | 15 ++++++++++----- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/models/comic.model.ts b/models/comic.model.ts index 1d2195e..df0614c 100644 --- a/models/comic.model.ts +++ b/models/comic.model.ts @@ -12,7 +12,6 @@ const ComicSchema = mongoose.Schema({ userAddedMetadata: { tags: [], }, - comicInfo: { blackAndWhite: String, characters: [String], diff --git a/services/imagetransformation.service.ts b/services/imagetransformation.service.ts index 0e8e423..c6818ac 100644 --- a/services/imagetransformation.service.ts +++ b/services/imagetransformation.service.ts @@ -37,14 +37,14 @@ export default class ProductsService extends Service { params: {}, async handler( ctx: Context<{ - path: string; + imageFile: string | Buffer; newWidth: number; newHeight: number; outputPath: string; }> ) { const resizeResult = await resizeImage( - ctx.params.path, + ctx.params.imageFile, ctx.params.outputPath, ctx.params.newWidth, ctx.params.newHeight diff --git a/utils/imagetransformation.utils.ts b/utils/imagetransformation.utils.ts index c5c7ec1..13c4ebb 100644 --- a/utils/imagetransformation.utils.ts +++ b/utils/imagetransformation.utils.ts @@ -1,7 +1,5 @@ const sharp = require("sharp"); import { logger } from "./logger.utils"; -import { explodePath } from "./file.utils"; -import { isUndefined } from "lodash"; export const extractMetadataFromImage = async ( imageFilePath: string @@ -15,12 +13,12 @@ export const extractMetadataFromImage = async ( }; export const resizeImage = async ( - imageFilePath: string, + imageFile: string | Buffer, outputPath: string, newWidth: number, newHeight?: number ): Promise => { - return await sharp(imageFilePath) + return await sharp(imageFile) .resize(newWidth) .toFile(`${outputPath}`, (err, info) => { if (err) { diff --git a/utils/uncompression.utils.ts b/utils/uncompression.utils.ts index f0244ba..4f38485 100644 --- a/utils/uncompression.utils.ts +++ b/utils/uncompression.utils.ts @@ -33,10 +33,10 @@ SOFTWARE. import { createReadStream, createWriteStream } from "fs"; const fse = require("fs-extra"); -import path from "path"; + import { default as unzipper } from "unzipper"; import _ from "lodash"; -import { each, isEmpty, map, remove, indexOf } from "lodash"; +import { each, isEmpty, map } from "lodash"; import { IExplodedPathResponse, IExtractComicBookCoverErrorResponse, @@ -47,6 +47,7 @@ import { import { logger } from "./logger.utils"; import { validateComicBookMetadata } from "../utils/validation.utils"; import { constructPaths, explodePath } from "../utils/file.utils"; +import { resizeImage } from "./imagetransformation.utils"; const { writeFile, readFile } = require("fs").promises; const unrarer = require("node-unrar-js"); @@ -99,9 +100,13 @@ export const unrar = async ( }); const extractedFile = [...file.files][0]; const fileArrayBuffer = extractedFile.extraction; - await writeFile( - paths.targetPath + "/" + fileName, - fileArrayBuffer + // Resize it to the specified width + const outputFilePath = + paths.targetPath + "/" + fileName; + await resizeImage( + fileArrayBuffer, + outputFilePath, + 200 ); let comicBookMetadata = { name: `${fileName}`,