Рефакторинг, плюс небольшие изменения - подготовка к использованию внешних конвертеров
This commit is contained in:
@@ -17,8 +17,16 @@ class FileDecompressor {
|
||||
async decompressFile(filename, outputDir) {
|
||||
const fileType = await this.detector.detectFile(filename);
|
||||
|
||||
if (!fileType || !(fileType.ext == 'zip' || fileType.ext == 'bz2' || fileType.ext == 'gz'))
|
||||
return filename;
|
||||
let result = {
|
||||
sourceFile: filename,
|
||||
selectedFile: filename,
|
||||
fileType: fileType,
|
||||
fileList: []
|
||||
};
|
||||
|
||||
if (!fileType || !(fileType.ext == 'zip' || fileType.ext == 'bz2' || fileType.ext == 'gz')) {
|
||||
return result;
|
||||
}
|
||||
|
||||
//дурной decompress, поэтому в 2 этапа
|
||||
//этап 1
|
||||
@@ -44,20 +52,26 @@ class FileDecompressor {
|
||||
}
|
||||
}
|
||||
|
||||
let result = filename;
|
||||
let sel = filename;
|
||||
let fileList = [];
|
||||
let max = 0;
|
||||
if (files.length) {
|
||||
//ищем файл с максимальным размером
|
||||
for (let file of files) {
|
||||
const path = `${outputDir}/${file.path}`;
|
||||
fileList.push(path);
|
||||
if (file.data.length > max) {
|
||||
result = `${outputDir}/${file.path}`;
|
||||
sel = path;
|
||||
max = file.data.length;
|
||||
}
|
||||
}
|
||||
}
|
||||
//дурной decompress
|
||||
if (result != filename)
|
||||
await fs.chmod(result, 0o664);
|
||||
if (sel != filename)
|
||||
await fs.chmod(sel, 0o664);
|
||||
|
||||
result.selectedFile = sel;
|
||||
result.fileList = fileList;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user