BookConverter.js 972 B

1234567891011121314151617181920212223242526272829303132
  1. const fs = require('fs-extra');
  2. const FileDetector = require('./FileDetector');
  3. class BookConverter {
  4. constructor() {
  5. this.detector = new FileDetector();
  6. }
  7. async convertToFb2(inputFile, outputFile, url, callback) {
  8. const fileType = await this.detector.detectFile(inputFile);
  9. if (fileType && (fileType.ext == 'html' || fileType.ext == 'xml')) {
  10. const data = await fs.readFile(inputFile, 'utf8');
  11. if (data.indexOf('FictionBook') >= 0) {
  12. await fs.writeFile(outputFile, data);
  13. return;
  14. }
  15. //Заглушка
  16. await fs.writeFile(outputFile, data);
  17. callback(100);
  18. } else {
  19. if (fileType)
  20. throw new Error(`unknown file format: ${fileType.mime}`);
  21. else
  22. throw new Error(`unsupported file format: ${url}`);
  23. }
  24. }
  25. }
  26. module.exports = BookConverter;