From f67bd703c98709b28eb8743e4bc56ead8d110480 Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Wed, 21 May 2025 18:40:28 +0200 Subject: [PATCH] Fix bug in FilesystemService trying to read content of zip files while scanning --- .../gameyfin/core/filesystem/FilesystemService.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FilesystemService.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FilesystemService.kt index ad2208e..85642c5 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FilesystemService.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FilesystemService.kt @@ -81,7 +81,7 @@ class FilesystemService( val gamefileExtensions = gameFileExtensions // Filter out invalid directories (directories could have been changed externally after the library was created) - val validDirectories = library.directories.map { Path(it.internalPath) } + val validPaths = library.directories.map { Path(it.internalPath) } .filter { path -> if (!path.isDirectory()) { log.warn { "Invalid directory '$path' in library '${library.name}'" } @@ -93,16 +93,18 @@ class FilesystemService( // Get all paths that are directories or match the game file extensions // Also check if the directory is empty and if empty directories should be included - val currentFilesystemPaths = validDirectories.flatMap { validDirectory -> + val currentFilesystemPaths = validPaths.flatMap { validDirectory -> safeReadDirectoryContents(validDirectory) .filter { it.isDirectory() || it.extension.lowercase() in gamefileExtensions } .filter { + if (!it.isDirectory()) return@filter true + val contents = safeReadDirectoryContents(it) if (contents.isEmpty() && !config.get(ConfigProperties.Libraries.Scan.ScanEmptyDirectories)!!) { log.debug { "Directory '$it' is empty and will be ignored" } - false + return@filter false } else { - true + return@filter true } } }