Промежуточный коммит

This commit is contained in:
Book Pauk
2019-01-14 18:44:22 +07:00
parent 5532140c86
commit 085bcac0b1
6 changed files with 208 additions and 139 deletions

View File

@@ -1,12 +1,69 @@
import EasySAXParser from './easysax';
import {sleep} from '../../../share/utils';
export default class BookParser {
constructor() {
this.parser = new EasySAXParser();
}
async parse(data, callback) {
if (!callback)
callback = () => {};
callback(0);
this.data = data;
if (data.indexOf('<FictionBook') < 0) {
throw new Error('Неверный формат файла');
}
let nextPerc = 0;
/*
firstName = book.get('//FictionBook:first-name', nameSpace).text();
lastName = book.get('//FictionBook:last-name', nameSpace).text();
genre = book.get('//FictionBook:genre', nameSpace).text();
date = book.get('//FictionBook:date', nameSpace).text();
bookTitle = book.get('//FictionBook:book-title', nameSpace).text();
annotation = book.get('//FictionBook:annotation', nameSpace).text();
id = book.get('//FictionBook:id', nameSpace).text();
*/
const parser = this.parser;
let result = {};
parser.on('error', (msgError) => {// eslint-disable-line no-unused-vars
});
parser.on('startNode', (elemName, getAttr, isTagEnd, getStrNode) => {// eslint-disable-line no-unused-vars
//console.log(elemName, ' start');
});
parser.on('endNode', (elemName, isTagStart, getStrNode) => {// eslint-disable-line no-unused-vars
//console.log(elemName, ' end');
});
parser.on('textNode', (text) => {// eslint-disable-line no-unused-vars
//console.log(text);
});
parser.on('cdata', (data) => {// eslint-disable-line no-unused-vars
});
parser.on('comment', (text) => {// eslint-disable-line no-unused-vars
});
parser.on('progress', async(progress) => {
if (progress > nextPerc) {
await sleep(1);
callback(progress);
nextPerc += 10;
}
});
await parser.parse(data);
if (callback)
callback(100);
return {author: 'Захарова Елена', title: 'Возвращение'};
return result;
}
}