From 9126973378fcf1ecad3ce56e7dbd5401e87239f6 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sun, 5 Feb 2023 17:35:24 +0700 Subject: [PATCH 1/5] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B1=D0=BB=D0=B5?= =?UTF-8?q?=D0=BC=D1=8B=20=D1=87=D1=82=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BA?= =?UTF-8?q?=D0=B0=D1=82=D0=B0=D0=BB=D0=BE=D0=B3=D0=B0=20opds=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20koreader?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/opds/BasePage.js | 9 +++++++-- server/core/opds/BookPage.js | 3 +-- server/core/opds/SearchHelpPage.js | 4 +--- 3 files changed, 9 insertions(+), 7 deletions(-) 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`}) From 05744e84727315123678117d336721f6208e96ff Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sun, 5 Feb 2023 17:35:32 +0700 Subject: [PATCH 2/5] CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b92d264..b59ed74 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +1.5.2 / 2023-02-?? + +- Исправление проблемы чтения каталога opds для koreader + 1.5.1 / 2023-01-28 ------------------ From 4e2b7886a9937d162e85239fd15219d4636f56fe Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sun, 5 Feb 2023 17:43:24 +0700 Subject: [PATCH 3/5] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BA=D0=B8=D0=B9=20?= =?UTF-8?q?=D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D0=BD?= =?UTF-8?q?=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/opds/GenrePage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/core/opds/GenrePage.js b/server/core/opds/GenrePage.js index 91cbfc3..0a036a5 100644 --- a/server/core/opds/GenrePage.js +++ b/server/core/opds/GenrePage.js @@ -14,7 +14,7 @@ class GenrePage extends BasePage { const query = { from: req.query.from || 'search', - term: req.query.term || '*', + term: req.query.term || '', section: req.query.section || '', }; From c43c5520a4b56c89320cab08d55dd13956d200bb Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sun, 5 Feb 2023 17:48:02 +0700 Subject: [PATCH 4/5] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/opds/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/core/opds/index.js b/server/core/opds/index.js index bbe6895..a2347d7 100644 --- a/server/core/opds/index.js +++ b/server/core/opds/index.js @@ -11,6 +11,8 @@ const OpensearchPage = require('./OpensearchPage'); const SearchPage = require('./SearchPage'); const SearchHelpPage = require('./SearchHelpPage'); +const log = new (require('../AppLogger'))().log;//singleton + module.exports = function(app, config) { if (!config.opds || !config.opds.enabled) return; @@ -63,10 +65,8 @@ module.exports = function(app, config) { next(); } } catch (e) { + log(LM_ERR, `OPDS: ${e.message}, url: ${req.originalUrl}`); res.status(500).send({error: e.message}); - if (config.branch == 'development') { - console.error({error: e.message, url: req.originalUrl}); - } } }; From 08287deaa4c5c5e3a35c9a87e09af879dbddfa7a Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sun, 5 Feb 2023 17:50:26 +0700 Subject: [PATCH 5/5] =?UTF-8?q?=D0=92=D0=B5=D1=80=D1=81=D0=B8=D1=8F=201.5.?= =?UTF-8?q?2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b59ed74..b3d9497 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -1.5.2 / 2023-02-?? +1.5.2 / 2023-02-05 - Исправление проблемы чтения каталога opds для koreader diff --git a/package-lock.json b/package-lock.json index 7c9d437..f7fb831 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "inpx-web", - "version": "1.5.1", + "version": "1.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "inpx-web", - "version": "1.5.1", + "version": "1.5.2", "hasInstallScript": true, "license": "CC0-1.0", "dependencies": { diff --git a/package.json b/package.json index aeb4ebf..5848d12 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "inpx-web", - "version": "1.5.1", + "version": "1.5.2", "author": "Book Pauk ", "license": "CC0-1.0", "repository": "bookpauk/inpx-web",