diff --git a/src/en/atsumaru/build.gradle b/src/en/atsumaru/build.gradle index 97f4604ed..a42c942b3 100644 --- a/src/en/atsumaru/build.gradle +++ b/src/en/atsumaru/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Atsumaru' extClass = '.Atsumaru' - extVersionCode = 3 + extVersionCode = 4 isNsfw = true } diff --git a/src/en/atsumaru/src/eu/kanade/tachiyomi/extension/en/atsumaru/Atsumaru.kt b/src/en/atsumaru/src/eu/kanade/tachiyomi/extension/en/atsumaru/Atsumaru.kt index 479425093..07e93c084 100644 --- a/src/en/atsumaru/src/eu/kanade/tachiyomi/extension/en/atsumaru/Atsumaru.kt +++ b/src/en/atsumaru/src/eu/kanade/tachiyomi/extension/en/atsumaru/Atsumaru.kt @@ -97,14 +97,27 @@ class Atsumaru : HttpSource() { // ============================== Chapters ============================== + private fun fetchChaptersRequest(mangaId: String, page: Int): Request { + return GET("$baseUrl/api/manga/chapters?id=$mangaId&filter=all&sort=desc&page=$page", apiHeaders) + } + override fun chapterListRequest(manga: SManga): Request { - return mangaDetailsRequest(manga) + return fetchChaptersRequest(manga.url, 0) } override fun chapterListParse(response: Response): List { - return response.parseAs().mangaPage.chapters!!.map { - it.toSChapter(response.request.url.pathSegments.last()) + val mangaId = response.request.url.queryParameter("id")!! + val chapterList = mutableListOf() + + var result = response.parseAs() + chapterList.addAll(result.chapters) + + while (result.hasNextPage()) { + result = client.newCall(fetchChaptersRequest(mangaId, result.page + 1)).execute().parseAs() + chapterList.addAll(result.chapters) } + + return chapterList.map { it.toSChapter(mangaId) } } override fun getChapterUrl(chapter: SChapter): String { diff --git a/src/en/atsumaru/src/eu/kanade/tachiyomi/extension/en/atsumaru/Dto.kt b/src/en/atsumaru/src/eu/kanade/tachiyomi/extension/en/atsumaru/Dto.kt index a3aa9cda9..fb5b7c3fb 100644 --- a/src/en/atsumaru/src/eu/kanade/tachiyomi/extension/en/atsumaru/Dto.kt +++ b/src/en/atsumaru/src/eu/kanade/tachiyomi/extension/en/atsumaru/Dto.kt @@ -101,6 +101,17 @@ class MangaDto( ) } +@Serializable +class ChapterListDto( + val chapters: List, + val pages: Int, + val page: Int, +) { + fun hasNextPage(): Boolean { + return page + 1 < pages + } +} + @Serializable class ChapterDto( private val id: String,