diff --git a/server/core/Reader/BookConverter/ConvertDjvu.js b/server/core/Reader/BookConverter/ConvertDjvu.js index 98dfadea..28e75d8e 100644 --- a/server/core/Reader/BookConverter/ConvertDjvu.js +++ b/server/core/Reader/BookConverter/ConvertDjvu.js @@ -2,9 +2,9 @@ const fs = require('fs-extra'); const path = require('path'); const utils = require('../../utils'); -const ConvertHtml = require('./ConvertHtml'); +const ConvertBase = require('./ConvertBase'); -class ConvertDjvu extends ConvertHtml { +class ConvertDjvu extends ConvertBase { check(data, opts) { const {inputFiles} = opts; @@ -59,9 +59,17 @@ class ConvertDjvu extends ConvertHtml { }, abort); //читаем изображения + limitSize = 2*this.config.maxUploadFileSize; + let imagesSize = 0; + const loadImage = async(image) => { image.data = (await fs.readFile(image.file)).toString('base64'); image.name = path.basename(image.file); + + imagesSize += image.data.length; + if (imagesSize > limitSize) { + throw new Error(`Файл для конвертирования слишком большой|FORLOG| imagesSize: ${imagesSize} > ${limitSize}`); + } } let files = []; @@ -82,20 +90,29 @@ class ConvertDjvu extends ConvertHtml { await Promise.all(loading); - //формируем текст - limitSize = 2*this.config.maxUploadFileSize; + //формируем fb2 + let titleInfo = {}; + let desc = {_n: 'description', 'title-info': titleInfo}; + let pars = []; + let body = {_n: 'body', section: {_a: [pars]}}; + let binary = []; + let fb2 = [desc, body, binary]; + let title = ''; if (uploadFileName) title = uploadFileName; - let text = `