From 592ea7c5334e7892d5734355dad0dc314ad8d40e Mon Sep 17 00:00:00 2001 From: advplyr Date: Tue, 6 Dec 2022 16:21:12 -0600 Subject: [PATCH] Fix:EReader for ebooks in library folder root --- components/readers/Reader.vue | 19 +++++++++++-------- plugins/init.client.js | 3 +++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/components/readers/Reader.vue b/components/readers/Reader.vue index 695f1432..5744fc45 100644 --- a/components/readers/Reader.vue +++ b/components/readers/Reader.vue @@ -89,15 +89,18 @@ export default { }, ebookUrl() { if (!this.ebookFile) return null + let filepath = '' + if (this.selectedLibraryItem.isFile) { + filepath = this.$encodeUriPath(this.ebookFile.metadata.filename) + } else { + const itemRelPath = this.selectedLibraryItem.relPath + if (itemRelPath.startsWith('/')) itemRelPath = itemRelPath.slice(1) + const relPath = this.ebookFile.metadata.relPath + if (relPath.startsWith('/')) relPath = relPath.slice(1) - var itemRelPath = this.selectedLibraryItem.relPath - if (itemRelPath.startsWith('/')) itemRelPath = itemRelPath.slice(1) - - var relPath = this.ebookFile.metadata.relPath - if (relPath.startsWith('/')) relPath = relPath.slice(1) - - var serverAddress = this.$store.getters['user/getServerAddress'] - return `${serverAddress}/ebook/${this.libraryId}/${this.folderId}/${itemRelPath}/${relPath}` + filepath = this.$encodeUriPath(`${itemRelPath}/${relPath}`) + } + return `/ebook/${this.libraryId}/${this.folderId}/${filepath}` }, playerLibraryItemId() { return this.$store.state.playerLibraryItemId diff --git a/plugins/init.client.js b/plugins/init.client.js index 331e00b8..f77d6f15 100644 --- a/plugins/init.client.js +++ b/plugins/init.client.js @@ -16,6 +16,9 @@ if (Capacitor.getPlatform() != 'web') { Vue.prototype.$isDev = process.env.NODE_ENV !== 'production' +Vue.prototype.$encodeUriPath = (path) => { + return path.replace(/\\/g, '/').replace(/%/g, '%25').replace(/#/g, '%23') +} Vue.prototype.$dateDistanceFromNow = (unixms) => { if (!unixms) return '' return formatDistance(unixms, Date.now(), { addSuffix: true })