diff --git a/server/core/opds/BasePage.js b/server/core/opds/BasePage.js index c986f1f..38eeb9a 100644 --- a/server/core/opds/BasePage.js +++ b/server/core/opds/BasePage.js @@ -24,13 +24,18 @@ class BasePage { this.showDeleted = false; } + escape(s) { + //костыль для koreader, не понимает hex-экранирование вида ' + return he.escape(s).replace(/'/g, ''').replace(/`/g, '`'); + } + makeEntry(entry = {}) { if (!entry.id) throw new Error('makeEntry: no id'); if (!entry.title) throw new Error('makeEntry: no title'); - entry.title = he.escape(entry.title); + entry.title = this.escape(entry.title); const result = { updated: (new Date()).toISOString().substring(0, 19) + 'Z', @@ -48,7 +53,7 @@ class BasePage { } makeLink(attrs) { - attrs.href = he.escape(attrs.href); + attrs.href = this.escape(attrs.href); return {'*ATTRS': attrs}; } diff --git a/server/core/opds/BookPage.js b/server/core/opds/BookPage.js index d46fef3..da04dcb 100644 --- a/server/core/opds/BookPage.js +++ b/server/core/opds/BookPage.js @@ -1,6 +1,5 @@ const path = require('path'); const _ = require('lodash'); -const he = require('he'); const dayjs = require('dayjs'); const BasePage = require('./BasePage'); @@ -190,7 +189,7 @@ class BookPage extends BasePage { if (content) { e.content = { '*ATTRS': {type: 'text/html'}, - '*TEXT': he.escape(content), + '*TEXT': this.escape(content), }; } diff --git a/server/core/opds/SearchHelpPage.js b/server/core/opds/SearchHelpPage.js index 60c084a..246f499 100644 --- a/server/core/opds/SearchHelpPage.js +++ b/server/core/opds/SearchHelpPage.js @@ -1,5 +1,3 @@ -const he = require('he'); - const BasePage = require('./BasePage'); class SearchHelpPage extends BasePage { @@ -45,7 +43,7 @@ class SearchHelpPage extends BasePage { title: this.title, content: { '*ATTRS': {type: 'text/html'}, - '*TEXT': he.escape(content), + '*TEXT': this.escape(content), }, link: [ this.downLink({href: '/book/fake-link', type: `application/fb2+zip`})