From 3b5a9cd2b4d2ae656db0f29c6f6d3896114e02c5 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Wed, 1 Jan 2025 12:16:28 +0200 Subject: [PATCH] Skip non-existing local chapters --- .../local/data/input/LocalMangaParser.kt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/local/data/input/LocalMangaParser.kt b/app/src/main/kotlin/org/koitharu/kotatsu/local/data/input/LocalMangaParser.kt index 910ff964e..9c28e7b16 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/local/data/input/LocalMangaParser.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/local/data/input/LocalMangaParser.kt @@ -67,13 +67,18 @@ class LocalMangaParser(private val uri: Uri) { coverUrl = coverEntry?.let { uri.child(it, resolve = true).toString() }.orEmpty(), largeCoverUrl = null, chapters = if (withDetails) { - mangaInfo.chapters?.map { c -> - c.copyInternal( - url = index.getChapterFileName(c.id)?.toPath()?.let { - uri.child(it, resolve = false).toString() - } ?: uri.toString(), - source = LocalMangaSource, - ) + mangaInfo.chapters?.mapNotNull { c -> + val path = index.getChapterFileName(c.id)?.toPath() + if (path != null && !fileSystem.exists(rootPath / path)) { + null + } else { + c.copyInternal( + url = path?.let { + uri.child(it, resolve = false).toString() + } ?: uri.toString(), + source = LocalMangaSource, + ) + } } } else { null