From 43ba7c84f708c2f0a0a37572182347e4a364064d Mon Sep 17 00:00:00 2001 From: zehkul Date: Wed, 30 Oct 2024 21:26:01 +0100 Subject: [PATCH 1/2] Recognize merged part-chapters as new chapters For example: ch2 1.zip ch2 2.zip Kavita will merge these into one big ch2. Recognize and handle chapter merges. --- .../eu/kanade/tachiyomi/extension/all/kavita/Kavita.kt | 7 +++++-- .../tachiyomi/extension/all/kavita/KavitaHelper.kt | 7 +++++++ .../tachiyomi/extension/all/kavita/dto/MangaDto.kt | 9 +++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/Kavita.kt b/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/Kavita.kt index f3ca25c7..cbf56edd 100644 --- a/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/Kavita.kt +++ b/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/Kavita.kt @@ -513,11 +513,14 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou * Fetches the "url" of each page from the chapter * **/ override fun pageListRequest(chapter: SChapter): Request { - return GET("$apiUrl/${chapter.url}", headersBuilder().build()) + // remove potential _ chapter salt + val chapterId = chapter.url.substringBefore("_") + return GET("$apiUrl/$chapterId", headersBuilder().build()) } override fun fetchPageList(chapter: SChapter): Observable> { - val chapterId = chapter.url + // remove potential _ chapter salt + val chapterId = chapter.url.substringBefore("_") val numPages = chapter.scanlator?.replace(" pages", "")?.toInt() val numPages2 = "$numPages".toInt() - 1 val pages = mutableListOf() diff --git a/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/KavitaHelper.kt b/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/KavitaHelper.kt index 77b6b68e..fc2e59ad 100644 --- a/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/KavitaHelper.kt +++ b/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/KavitaHelper.kt @@ -98,6 +98,13 @@ class KavitaHelper { } url = chapter.id.toString() + + if (chapter.fileCount > 1) { + // salt/offset to recognize chapters with new merged part-chapters as new and hence unread + chapter_number += 0.001f * chapter.fileCount + url = "${url}_${chapter.fileCount}" + } + date_upload = parseDate(chapter.created) scanlator = "${chapter.pages} pages" } diff --git a/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/dto/MangaDto.kt b/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/dto/MangaDto.kt index 19fb7bcf..36d21863 100644 --- a/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/dto/MangaDto.kt +++ b/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/dto/MangaDto.kt @@ -123,4 +123,13 @@ data class ChapterDto( val coverImageLocked: Boolean, val volumeId: Int, val created: String, + val files: List? = null, +) { + val fileCount: Int + get() = files?.size ?: 0 +} + +@Serializable +data class FileDto( + val id: Int, ) From d9e078cdc99f5ff196a5ed2c4808418eb0fe5e72 Mon Sep 17 00:00:00 2001 From: zehkul Date: Wed, 30 Oct 2024 21:27:37 +0100 Subject: [PATCH 2/2] Bump extVersionCode --- src/all/kavita/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/all/kavita/build.gradle b/src/all/kavita/build.gradle index f8c6ef71..97c599b3 100644 --- a/src/all/kavita/build.gradle +++ b/src/all/kavita/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'Kavita' pkgNameSuffix = 'all.kavita' extClass = '.KavitaFactory' - extVersionCode = 15 + extVersionCode = 16 } dependencies {