From a1418c55c4f5b37d2091eb33b827b774d8ee7e1b Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Fri, 23 Apr 2021 13:18:18 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=B7=F0=9F=8F=BD=20Workerizing=20the=20?= =?UTF-8?q?import=20algorithm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/workers/extractCovers.worker.ts | 12 ++++++------ src/server/route/routes/importComics.routes.ts | 2 +- src/server/utils/fs.utils.ts | 12 ++---------- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/client/workers/extractCovers.worker.ts b/src/client/workers/extractCovers.worker.ts index 452b118..ac44056 100644 --- a/src/client/workers/extractCovers.worker.ts +++ b/src/client/workers/extractCovers.worker.ts @@ -1,10 +1,8 @@ import * as Comlink from "comlink"; -import { extractCoverFromComicBookArchive } from "../shared/utils/folder.utils"; +import { walkFolder } from "../actions/fileops.actions"; +import { IExtractionOptions } from "../../server/interfaces/folder.interface"; -function add(a, b) { - return a + b; -} -function importComicBooks() { +async function importComicBooks() { // 1. Walk the folder structure // 2. Scan for .cbz, .cbr // 3. extract cover image @@ -12,10 +10,12 @@ function importComicBooks() { // 5. Get metadata, add to data model // 5. Save cover to disk // 6. Save model to mongo + + const fileObjects = await walkFolder("./comics"); } Comlink.expose({ - add, + importComicBooks, }); export default null as any; diff --git a/src/server/route/routes/importComics.routes.ts b/src/server/route/routes/importComics.routes.ts index 9f1badb..081148d 100644 --- a/src/server/route/routes/importComics.routes.ts +++ b/src/server/route/routes/importComics.routes.ts @@ -30,7 +30,7 @@ router.route("/getComicCovers").post(async (req: Request, res: Response) => { }); }); -router.route("/walkFolder").get(async (req: Request, res: Response) => { +router.route("/walkFolder").post(async (req: Request, res: Response) => { const basePathToWalk = typeof req.query.basePathToWalk === "string" ? req.query.basePathToWalk diff --git a/src/server/utils/fs.utils.ts b/src/server/utils/fs.utils.ts index 551484d..6b30eab 100644 --- a/src/server/utils/fs.utils.ts +++ b/src/server/utils/fs.utils.ts @@ -166,21 +166,13 @@ export const unzip = async ( }; export const extractArchive = async ( - fileObject: IFolderData, + extractionOptions: IExtractionOptions, ): Promise< | IExtractedComicBookCoverFile | IExtractedComicBookCoverFile[] | IExtractComicBookCoverErrorResponse > => { - const sourceFolder = "./comics"; - const targetExtractionFolder = "covers"; - const extractionOptions: IExtractionOptions = { - folderDetails: fileObject, - extractTarget: "cover", - sourceFolder, - targetExtractionFolder, - }; - switch (fileObject.extension) { + switch (extractionOptions.folderDetails.extension) { case ".cbz": return await unzip(extractionOptions); case ".cbr":