Merge pull request #5 from Zehkul/merged-chapters

Handle updates through merged chapters
This commit is contained in:
Joe Milazzo
2025-01-28 07:10:56 -06:00
committed by GitHub
4 changed files with 22 additions and 3 deletions

View File

@@ -6,7 +6,7 @@ ext {
extName = 'Kavita' extName = 'Kavita'
pkgNameSuffix = 'all.kavita' pkgNameSuffix = 'all.kavita'
extClass = '.KavitaFactory' extClass = '.KavitaFactory'
extVersionCode = 15 extVersionCode = 16
} }
dependencies { dependencies {

View File

@@ -513,11 +513,14 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
* Fetches the "url" of each page from the chapter * Fetches the "url" of each page from the chapter
* **/ * **/
override fun pageListRequest(chapter: SChapter): Request { override fun pageListRequest(chapter: SChapter): Request {
return GET("$apiUrl/${chapter.url}", headersBuilder().build()) // remove potential _<part> chapter salt
val chapterId = chapter.url.substringBefore("_")
return GET("$apiUrl/$chapterId", headersBuilder().build())
} }
override fun fetchPageList(chapter: SChapter): Observable<List<Page>> { override fun fetchPageList(chapter: SChapter): Observable<List<Page>> {
val chapterId = chapter.url // remove potential _<part> chapter salt
val chapterId = chapter.url.substringBefore("_")
val numPages = chapter.scanlator?.replace(" pages", "")?.toInt() val numPages = chapter.scanlator?.replace(" pages", "")?.toInt()
val numPages2 = "$numPages".toInt() - 1 val numPages2 = "$numPages".toInt() - 1
val pages = mutableListOf<Page>() val pages = mutableListOf<Page>()

View File

@@ -98,6 +98,13 @@ class KavitaHelper {
} }
url = chapter.id.toString() 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) date_upload = parseDate(chapter.created)
scanlator = "${chapter.pages} pages" scanlator = "${chapter.pages} pages"
} }

View File

@@ -123,4 +123,13 @@ data class ChapterDto(
val coverImageLocked: Boolean, val coverImageLocked: Boolean,
val volumeId: Int, val volumeId: Int,
val created: String, val created: String,
val files: List<FileDto>? = null,
) {
val fileCount: Int
get() = files?.size ?: 0
}
@Serializable
data class FileDto(
val id: Int,
) )