Prechádzať zdrojové kódy

Исправление проблемы чтения каталога opds для koreader

Book Pauk 2 rokov pred
rodič
commit
9126973378

+ 7 - 2
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};
     }
 

+ 1 - 2
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),
                     };
                 }
 

+ 1 - 3
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`})