From 5d16baef8e3a4ee2f8398491090da215dc41f339 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Tue, 22 Jan 2019 23:53:19 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/BookConverter/index.js | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/server/core/BookConverter/index.js b/server/core/BookConverter/index.js index d3370e03..abdeb9a0 100644 --- a/server/core/BookConverter/index.js +++ b/server/core/BookConverter/index.js @@ -41,6 +41,20 @@ class BookConverter { } } + decode(data) { + const charsetAll = chardet.detectAll(data.slice(0, 10000)); + + let selected = 'ISO-8859-1'; + for (const charset of charsetAll) { + if (charset.name.indexOf('ISO-8859') < 0) { + selected = charset.name; + break; + } + } + + return iconv.decode(data, selected); + } + async convertSamlib(data) { let titleInfo = {}; let desc = {_n: 'description', 'title-info': titleInfo}; @@ -180,17 +194,7 @@ class BookConverter { }); */ - const charsetAll = chardet.detectAll(data.slice(0, 10000)); - - let selected = 'ISO-8859-1'; - for (const charset of charsetAll) { - if (charset.name.indexOf('ISO-8859') < 0) { - selected = charset.name; - break; - } - } - - await parser.parse(iconv.decode(data, selected)); + await parser.parse(this.decode(data)); const title = (titleInfo['book-title'] ? titleInfo['book-title'] : ''); let author = '';