mirror of
https://github.com/gotson/komga.git
synced 2025-12-22 00:13:30 +01:00
fix: scanner should ignore hidden files
This commit is contained in:
parent
52ce9a575a
commit
2d72b47cdf
2 changed files with 23 additions and 0 deletions
|
|
@ -16,6 +16,7 @@ import java.nio.file.attribute.BasicFileAttributes
|
|||
import java.nio.file.attribute.FileTime
|
||||
import java.time.LocalDateTime
|
||||
import java.time.ZoneId
|
||||
import kotlin.io.path.isHidden
|
||||
import kotlin.streams.asSequence
|
||||
import kotlin.time.measureTime
|
||||
|
||||
|
|
@ -72,6 +73,7 @@ class FileSystemScanner(
|
|||
val books = Files.list(dir).use { dirStream ->
|
||||
dirStream.asSequence()
|
||||
.onEach { logger.trace { "GetBooks file: $it" } }
|
||||
.filterNot { Files.isHidden(it) }
|
||||
.filter { Files.isReadable(it) }
|
||||
.filter { Files.isRegularFile(it) }
|
||||
.filter { supportedExtensions.contains(FilenameUtils.getExtension(it.fileName.toString()).toLowerCase()) }
|
||||
|
|
|
|||
|
|
@ -129,6 +129,27 @@ class FileSystemScannerTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `given directory structure with hidden files when scanning then hidden files are not returned`() {
|
||||
Jimfs.newFileSystem(Configuration.unix()).use { fs ->
|
||||
// given
|
||||
val root = fs.getPath("/root")
|
||||
Files.createDirectory(root)
|
||||
|
||||
val dir1 = makeSubDir(root, "dir1", listOf("comic.cbz"))
|
||||
makeSubDir(dir1, "subdir1", listOf("comic2.cbz", ".comic2.cbz"))
|
||||
|
||||
// when
|
||||
val scan = scanner.scanRootFolder(root)
|
||||
|
||||
// then
|
||||
assertThat(scan).hasSize(2)
|
||||
|
||||
assertThat(scan.keys.map { it.name }).containsExactlyInAnyOrder("dir1", "subdir1")
|
||||
assertThat(scan.values.flatMap { list -> list.map { it.name } }).containsExactlyInAnyOrder("comic", "comic2")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `given file with mixed-case extension when scanning then files are returned`() {
|
||||
Jimfs.newFileSystem(Configuration.unix()).use { fs ->
|
||||
|
|
|
|||
Loading…
Reference in a new issue