diff --git a/server/core/opds/SearchPage.js b/server/core/opds/SearchPage.js index 58ae1ba..bbdf768 100644 --- a/server/core/opds/SearchPage.js +++ b/server/core/opds/SearchPage.js @@ -1,5 +1,6 @@ const BasePage = require('./BasePage'); const utils = require('../utils'); +const iconv = require('iconv-lite'); class SearchPage extends BasePage { constructor(config) { @@ -28,7 +29,14 @@ class SearchPage extends BasePage { const limit = 100; const offset = (page - 1)*limit; - const queryRes = await this.webWorker.search(from, {[from]: query.term, genre: query.genre, del: '0', offset, limit}); + + const searchQuery = {[from]: query.term, genre: query.genre, del: '0', offset, limit}; + let queryRes = await this.webWorker.search(from, searchQuery); + + if (queryRes.totalFound === 0) { // не нашли ничего, проверим, может term в кодировке ISO-8859-1 (баг koreader) + searchQuery[from] = iconv.encode(query.term, 'ISO-8859-1').toString(); + queryRes = await this.webWorker.search(from, searchQuery); + } const found = queryRes.found;