diff --git a/server/objects/mediaTypes/Podcast.js b/server/objects/mediaTypes/Podcast.js index 743512e8..efce8bb2 100644 --- a/server/objects/mediaTypes/Podcast.js +++ b/server/objects/mediaTypes/Podcast.js @@ -166,7 +166,7 @@ class Podcast { } removeFileWithInode(inode) { - this.episodes = this.episodes.filter(ep => ep.ino !== inode) + this.episodes = this.episodes.filter(ep => ep.audioFile.ino !== inode) } findFileWithInode(inode) { diff --git a/server/scanner/Scanner.js b/server/scanner/Scanner.js index 2280f0e3..d6f20930 100644 --- a/server/scanner/Scanner.js +++ b/server/scanner/Scanner.js @@ -200,11 +200,22 @@ class Scanner { // Find library item folder with matching inode or matching path const dataFound = libraryItemDataFound.find(lid => lid.ino === libraryItem.ino || comparePaths(lid.relPath, libraryItem.relPath)) if (!dataFound) { - libraryScan.addLog(LogLevel.WARN, `Library Item "${libraryItem.media.metadata.title}" is missing`) - Logger.warn(`[Scanner] Library item "${libraryItem.media.metadata.title}" is missing (inode "${libraryItem.ino}")`) - libraryScan.resultsMissing++ - libraryItem.setMissing() - itemsToUpdate.push(libraryItem) + // Podcast folder can have no episodes and still be valid + if (libraryScan.libraryMediaType === 'podcast' && await fs.pathExists(libraryItem.path)) { + Logger.info(`[Scanner] Library item "${libraryItem.media.metadata.title}" folder exists but has no episodes`) + if (libraryItem.isMissing) { + libraryScan.resultsUpdated++ + libraryItem.isMissing = false + libraryItem.setLastScan() + itemsToUpdate.push(libraryItem) + } + } else { + libraryScan.addLog(LogLevel.WARN, `Library Item "${libraryItem.media.metadata.title}" is missing`) + Logger.warn(`[Scanner] Library item "${libraryItem.media.metadata.title}" is missing (inode "${libraryItem.ino}")`) + libraryScan.resultsMissing++ + libraryItem.setMissing() + itemsToUpdate.push(libraryItem) + } } else { const checkRes = libraryItem.checkScanData(dataFound) if (checkRes.newLibraryFiles.length || libraryScan.scanOptions.forceRescan) { // Item has new files