From 1bee0827200d95d2cf7839bff99b46cf21dc5ac6 Mon Sep 17 00:00:00 2001 From: mikiher Date: Wed, 20 Mar 2024 11:40:50 +0200 Subject: [PATCH] Update libraryFolderID correctly in scanFolderUpdates --- server/scanner/LibraryItemScanner.js | 11 ++++++----- server/scanner/LibraryScanner.js | 9 +++++---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/server/scanner/LibraryItemScanner.js b/server/scanner/LibraryItemScanner.js index 588b7744..872000d8 100644 --- a/server/scanner/LibraryItemScanner.js +++ b/server/scanner/LibraryItemScanner.js @@ -21,10 +21,10 @@ class LibraryItemScanner { * Scan single library item * * @param {string} libraryItemId - * @param {{relPath:string, path:string}} [renamedPaths] used by watcher when item folder was renamed + * @param {{relPath:string, path:string}} [updateLibraryItemDetails] used by watcher when item folder was renamed * @returns {number} ScanResult */ - async scanLibraryItem(libraryItemId, renamedPaths = null) { + async scanLibraryItem(libraryItemId, updateLibraryItemDetails = null) { // TODO: Add task manager const libraryItem = await Database.libraryItemModel.findByPk(libraryItemId) if (!libraryItem) { @@ -32,11 +32,12 @@ class LibraryItemScanner { return ScanResult.NOTHING } + const libraryFolderId = updateLibraryItemDetails?.libraryFolderId || libraryItem.libraryFolderId const library = await Database.libraryModel.findByPk(libraryItem.libraryId, { include: { model: Database.libraryFolderModel, where: { - id: libraryItem.libraryFolderId + id: libraryFolderId } } }) @@ -51,9 +52,9 @@ class LibraryItemScanner { const scanLogger = new ScanLogger() scanLogger.verbose = true - scanLogger.setData('libraryItem', renamedPaths?.relPath || libraryItem.relPath) + scanLogger.setData('libraryItem', updateLibraryItemDetails?.relPath || libraryItem.relPath) - const libraryItemPath = renamedPaths?.path || fileUtils.filePathToPOSIX(libraryItem.path) + const libraryItemPath = updateLibraryItemDetails?.path || fileUtils.filePathToPOSIX(libraryItem.path) const folder = library.libraryFolders[0] const libraryItemScanData = await this.getLibraryItemScanData(libraryItemPath, library, folder, false) diff --git a/server/scanner/LibraryScanner.js b/server/scanner/LibraryScanner.js index 27c507bd..ac422c79 100644 --- a/server/scanner/LibraryScanner.js +++ b/server/scanner/LibraryScanner.js @@ -525,7 +525,7 @@ class LibraryScanner { path: potentialChildDirs }) - let renamedPaths = {} + let updatedLibraryItemDetails = {} if (!existingLibraryItem) { const dirIno = await fileUtils.getIno(fullPath) existingLibraryItem = await Database.libraryItemModel.findOneOld({ @@ -536,8 +536,9 @@ class LibraryScanner { // Update library item paths for scan existingLibraryItem.path = fullPath existingLibraryItem.relPath = itemDir - renamedPaths.path = fullPath - renamedPaths.relPath = itemDir + updatedLibraryItemDetails.path = fullPath + updatedLibraryItemDetails.relPath = itemDir + updatedLibraryItemDetails.libraryFolderId = folder.id } } if (existingLibraryItem) { @@ -557,7 +558,7 @@ class LibraryScanner { // Scan library item for updates Logger.debug(`[LibraryScanner] Folder update for relative path "${itemDir}" is in library item "${existingLibraryItem.media.metadata.title}" - scan for updates`) - itemGroupingResults[itemDir] = await LibraryItemScanner.scanLibraryItem(existingLibraryItem.id, renamedPaths) + itemGroupingResults[itemDir] = await LibraryItemScanner.scanLibraryItem(existingLibraryItem.id, updatedLibraryItemDetails) continue } else if (library.settings.audiobooksOnly && !hasAudioFiles(fileUpdateGroup, itemDir)) { Logger.debug(`[LibraryScanner] Folder update for relative path "${itemDir}" has no audio files`)