Эх сурвалжийг харах

Добавил распаковку вложенных архивов

Book Pauk 6 жил өмнө
parent
commit
716b8b5b9a

+ 16 - 1
server/core/BookConverter/index.js

@@ -23,8 +23,15 @@ class BookConverter {
 
     async convertToFb2(inputFiles, outputFile, url, callback) {
         const selectedFileType = await this.detector.detectFile(inputFiles.selectedFile);
-        
         const data = await fs.readFile(inputFiles.selectedFile);
+
+        let selectedFileType2 = null;
+        let data2 = null;
+        if (inputFiles.nesting) {
+            selectedFileType2 = await this.detector.detectFile(inputFiles.nesting.selectedFile);
+            data2 = await fs.readFile(inputFiles.nesting.selectedFile);
+        }
+        
         let result = false;
         for (const convert of this.convertFactory) {
             result = await convert.run(data, {inputFiles, url, callback, dataType: selectedFileType});
@@ -32,6 +39,14 @@ class BookConverter {
                 await fs.writeFile(outputFile, result);
                 break;
             }
+
+            if (inputFiles.nesting) {
+                result = await convert.run(data2, {inputFiles: inputFiles.nesting, url, callback, dataType: selectedFileType2});
+                if (result) {
+                    await fs.writeFile(outputFile, result);
+                    break;
+                }
+            }
         }
 
         if (!result) {

+ 4 - 0
server/core/FileDecompressor.js

@@ -73,6 +73,10 @@ class FileDecompressor {
         result.selectedFile = sel;
         result.fileList = fileList;
 
+        if (sel != filename) {
+            result.nesting = await this.decompressFile(sel, `${outputDir}/${utils.randomHexString(10)}`);
+        }
+
         return result;
     }