diff --git a/client/components/readers/EpubReader.vue b/client/components/readers/EpubReader.vue index 795fcd2b7..350d8596c 100644 --- a/client/components/readers/EpubReader.vue +++ b/client/components/readers/EpubReader.vue @@ -97,9 +97,9 @@ export default { }, ebookUrl() { if (this.fileId) { - return `/api/items/${this.libraryItemId}/ebook/${this.fileId}` + return `${this.$config.routerBasePath}/api/items/${this.libraryItemId}/ebook/${this.fileId}` } - return `/api/items/${this.libraryItemId}/ebook` + return `${this.$config.routerBasePath}/api/items/${this.libraryItemId}/ebook` }, themeRules() { const isDark = this.ereaderSettings.theme === 'dark' @@ -309,24 +309,14 @@ export default { /** @type {EpubReader} */ const reader = this - // Use axios to make request because we have token refresh logic in interceptor - const customRequest = async (url) => { - try { - return this.$axios.$get(url, { - responseType: 'arraybuffer' - }) - } catch (error) { - console.error('EpubReader.initEpub customRequest failed:', error) - throw error - } - } - /** @type {ePub.Book} */ reader.book = new ePub(reader.ebookUrl, { width: this.readerWidth, height: this.readerHeight - 50, openAs: 'epub', - requestMethod: customRequest + requestHeaders: { + Authorization: `Bearer ${this.userToken}` + } }) /** @type {ePub.Rendition} */ @@ -347,33 +337,29 @@ export default { this.applyTheme() }) - reader.book.ready - .then(() => { - // set up event listeners - reader.rendition.on('relocated', reader.relocated) - reader.rendition.on('keydown', reader.keyUp) + reader.book.ready.then(() => { + // set up event listeners + reader.rendition.on('relocated', reader.relocated) + reader.rendition.on('keydown', reader.keyUp) - reader.rendition.on('touchstart', (event) => { - this.$emit('touchstart', event) - }) - reader.rendition.on('touchend', (event) => { - this.$emit('touchend', event) - }) + reader.rendition.on('touchstart', (event) => { + this.$emit('touchstart', event) + }) + reader.rendition.on('touchend', (event) => { + this.$emit('touchend', event) + }) - // load ebook cfi locations - const savedLocations = this.loadLocations() - if (savedLocations) { - reader.book.locations.load(savedLocations) - } else { - reader.book.locations.generate().then(() => { - this.checkSaveLocations(reader.book.locations.save()) - }) - } - this.getChapters() - }) - .catch((error) => { - console.error('EpubReader.initEpub failed:', error) - }) + // load ebook cfi locations + const savedLocations = this.loadLocations() + if (savedLocations) { + reader.book.locations.load(savedLocations) + } else { + reader.book.locations.generate().then(() => { + this.checkSaveLocations(reader.book.locations.save()) + }) + } + this.getChapters() + }) }, getChapters() { // Load the list of chapters in the book. See https://github.com/futurepress/epub.js/issues/759 diff --git a/server/scanner/LibraryItemScanner.js b/server/scanner/LibraryItemScanner.js index 501df4274..133a1e301 100644 --- a/server/scanner/LibraryItemScanner.js +++ b/server/scanner/LibraryItemScanner.js @@ -206,11 +206,6 @@ class LibraryItemScanner { async scanPotentialNewLibraryItem(libraryItemPath, library, folder, isSingleMediaItem) { const libraryItemScanData = await this.getLibraryItemScanData(libraryItemPath, library, folder, isSingleMediaItem) - if (!libraryItemScanData.libraryFiles.length) { - Logger.info(`[LibraryItemScanner] Library item at path "${libraryItemPath}" has no files - ignoring`) - return null - } - const scanLogger = new ScanLogger() scanLogger.verbose = true scanLogger.setData('libraryItem', libraryItemScanData.relPath) diff --git a/server/scanner/LibraryScanner.js b/server/scanner/LibraryScanner.js index 640c82d76..bc174d7a0 100644 --- a/server/scanner/LibraryScanner.js +++ b/server/scanner/LibraryScanner.js @@ -606,11 +606,6 @@ class LibraryScanner { } else if (library.settings.audiobooksOnly && !hasAudioFiles(fileUpdateGroup, itemDir)) { Logger.debug(`[LibraryScanner] Folder update for relative path "${itemDir}" has no audio files`) continue - } else if (!(await fs.pathExists(fullPath))) { - Logger.info(`[LibraryScanner] File update group "${itemDir}" does not exist - ignoring`) - - itemGroupingResults[itemDir] = ScanResult.NOTHING - continue } // Check if a library item is a subdirectory of this dir diff --git a/server/utils/fileUtils.js b/server/utils/fileUtils.js index 2da6b4c91..f80c4acde 100644 --- a/server/utils/fileUtils.js +++ b/server/utils/fileUtils.js @@ -109,7 +109,7 @@ function getIno(path) { .stat(path, { bigint: true }) .then((data) => String(data.ino)) .catch((err) => { - Logger.warn(`[Utils] Failed to get ino for path "${path}"`, err) + Logger.error('[Utils] Failed to get ino for path', path, err) return null }) }