HuntersScans: Fix chapter list (#9809)

* Fix chapter list

* Remove the extra request and the mutable list

* Use a simple loop to retrieve the chapter page
This commit is contained in:
Chopper 2025-07-28 07:41:41 -03:00 committed by Draff
parent 9183d5e2d0
commit d4fb412f9e
Signed by: Draff
GPG Key ID: E8A89F3211677653
2 changed files with 26 additions and 2 deletions

View File

@ -3,7 +3,7 @@ ext {
extClass = '.HuntersScans'
themePkg = 'madara'
baseUrl = 'https://readhunters.xyz'
overrideVersionCode = 7
overrideVersionCode = 8
isNsfw = true
}

View File

@ -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<List<SChapter>> =
Observable.fromCallable { fetchAllChapters(manga) }
private fun fetchAllChapters(manga: SManga): List<SChapter> {
val chapters = mutableListOf<SChapter>()
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
}
}
}
}