diff --git a/src/pt/huntersscans/build.gradle b/src/pt/huntersscans/build.gradle index 2f465536e..ffaeb0114 100644 --- a/src/pt/huntersscans/build.gradle +++ b/src/pt/huntersscans/build.gradle @@ -3,7 +3,7 @@ ext { extClass = '.HuntersScans' themePkg = 'madara' baseUrl = 'https://readhunters.xyz' - overrideVersionCode = 7 + overrideVersionCode = 8 isNsfw = true } diff --git a/src/pt/huntersscans/src/eu/kanade/tachiyomi/extension/pt/huntersscans/HuntersScans.kt b/src/pt/huntersscans/src/eu/kanade/tachiyomi/extension/pt/huntersscans/HuntersScans.kt index e4f7e0f15..f1866f6a3 100644 --- a/src/pt/huntersscans/src/eu/kanade/tachiyomi/extension/pt/huntersscans/HuntersScans.kt +++ b/src/pt/huntersscans/src/eu/kanade/tachiyomi/extension/pt/huntersscans/HuntersScans.kt @@ -1,7 +1,12 @@ package eu.kanade.tachiyomi.extension.pt.huntersscans import eu.kanade.tachiyomi.multisrc.madara.Madara +import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.network.interceptor.rateLimit +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.util.asJsoup +import rx.Observable import java.text.SimpleDateFormat import java.util.Locale import java.util.concurrent.TimeUnit @@ -21,5 +26,24 @@ class HuntersScans : Madara( override val useLoadMoreRequest = LoadMoreStrategy.Always - override val useNewChapterEndpoint = true + override fun fetchChapterList(manga: SManga): Observable> = + Observable.fromCallable { fetchAllChapters(manga) } + + private fun fetchAllChapters(manga: SManga): List { + val chapters = mutableListOf() + var page = 1 + while (true) { + val document = client.newCall(POST("${getMangaUrl(manga)}ajax/chapters?t=${page++}", xhrHeaders)) + .execute() + .asJsoup() + val currentPage = document.select(chapterListSelector()) + .map(::chapterFromElement) + + chapters += currentPage + + if (currentPage.isEmpty()) { + return chapters + } + } + } }