Добавил распаковку вложенных архивов
This commit is contained in:
@@ -23,8 +23,15 @@ class BookConverter {
|
|||||||
|
|
||||||
async convertToFb2(inputFiles, outputFile, url, callback) {
|
async convertToFb2(inputFiles, outputFile, url, callback) {
|
||||||
const selectedFileType = await this.detector.detectFile(inputFiles.selectedFile);
|
const selectedFileType = await this.detector.detectFile(inputFiles.selectedFile);
|
||||||
|
|
||||||
const data = await fs.readFile(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;
|
let result = false;
|
||||||
for (const convert of this.convertFactory) {
|
for (const convert of this.convertFactory) {
|
||||||
result = await convert.run(data, {inputFiles, url, callback, dataType: selectedFileType});
|
result = await convert.run(data, {inputFiles, url, callback, dataType: selectedFileType});
|
||||||
@@ -32,6 +39,14 @@ class BookConverter {
|
|||||||
await fs.writeFile(outputFile, result);
|
await fs.writeFile(outputFile, result);
|
||||||
break;
|
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) {
|
if (!result) {
|
||||||
|
|||||||
@@ -73,6 +73,10 @@ class FileDecompressor {
|
|||||||
result.selectedFile = sel;
|
result.selectedFile = sel;
|
||||||
result.fileList = fileList;
|
result.fileList = fileList;
|
||||||
|
|
||||||
|
if (sel != filename) {
|
||||||
|
result.nesting = await this.decompressFile(sel, `${outputDir}/${utils.randomHexString(10)}`);
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user