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}`,