Selaa lähdekoodia

Добавлен костыль - неверная кодировка от koreader при поиске в opds

Book Pauk 2 vuotta sitten
vanhempi
commit
06300e30b4
1 muutettua tiedostoa jossa 9 lisäystä ja 1 poistoa
  1. 9 1
      server/core/opds/SearchPage.js

+ 9 - 1
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;