Mangahub: fix selectors and page count (#15198)

This commit is contained in:
mobi2002 2023-01-31 20:11:11 +05:00 committed by GitHub
parent 91bba235bc
commit d292dac041
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 26 deletions

View File

@ -38,7 +38,7 @@ abstract class MangaHub(
override val client: OkHttpClient = super.client.newBuilder() override val client: OkHttpClient = super.client.newBuilder()
.addInterceptor(::uaIntercept) .addInterceptor(::uaIntercept)
.rateLimit(4) .rateLimit(1)
.build() .build()
override fun headersBuilder(): Headers.Builder = super.headersBuilder() override fun headersBuilder(): Headers.Builder = super.headersBuilder()
@ -204,11 +204,10 @@ abstract class MangaHub(
override fun chapterFromElement(element: Element): SChapter { override fun chapterFromElement(element: Element): SChapter {
val chapter = SChapter.create() val chapter = SChapter.create()
chapter.setUrlWithoutDomain(element.select("a[href*='$baseUrl']").last().attr("href")) chapter.setUrlWithoutDomain(element.select("a[href*='$baseUrl/chapter/']").attr("href"))
val titleHeader = element.select("._8Qtbo").first() val number = element.select(".text-secondary span").first().text()
val number = titleHeader.select("._3D1SJ").first().text() val title = element.select(".text-secondary span").last().text()
val title = titleHeader.select("._2IG5P").first().text()
chapter.name = "$number $title" chapter.name = "$number $title"
chapter.date_upload = element.select("small.UovLc").first()?.text()?.let { parseChapterDate(it) } ?: 0 chapter.date_upload = element.select("small.UovLc").first()?.text()?.let { parseChapterDate(it) } ?: 0
@ -286,27 +285,14 @@ abstract class MangaHub(
val urlTemplate = document.select("#mangareader img").attr("abs:src") val urlTemplate = document.select("#mangareader img").attr("abs:src")
val extension = urlTemplate.substringAfterLast(".") val extension = urlTemplate.substringAfterLast(".")
// get max pages value from string if exist (usually on manga/page format) example : 1/30 // make some calls to check if the pages exist using findPageCount()
val pageStringElement = document.select("._3w1ww") // increase or decreasing by using binary search algorithm
if (pageStringElement.isNotEmpty()) { val maxPage = findPageCount(urlTemplate, extension)
val pageString = pageStringElement.text()
val maxPage = pageString.substringAfterLast('/').toInt()
for (page in 1..maxPage) { for (page in 1..maxPage) {
val url = urlTemplate.replaceAfterLast("/", "$page.$extension") val url = urlTemplate.replaceAfterLast("/", "$page.$extension")
val pageObject = Page(page - 1, "", url) val pageObject = Page(page - 1, "", url)
pages.add(pageObject) pages.add(pageObject)
}
} else {
// if there is no max pages string make some calls to check if the pages exist using findPageCount()
// increase or decreasing by using binary search algorithm
val maxPage = findPageCount(urlTemplate, extension)
for (page in 1..maxPage) {
val url = urlTemplate.replaceAfterLast("/", "$page.$extension")
val pageObject = Page(page - 1, "", url)
pages.add(pageObject)
}
} }
return pages return pages

View File

@ -9,7 +9,7 @@ class MangaHubGenerator : ThemeSourceGenerator {
override val themeClass = "MangaHub" override val themeClass = "MangaHub"
override val baseVersionCode: Int = 13 override val baseVersionCode: Int = 14
override val sources = listOf( override val sources = listOf(
// SingleLang("1Manga.co", "https://1manga.co", "en", isNsfw = true, className = "OneMangaCo"), // SingleLang("1Manga.co", "https://1manga.co", "en", isNsfw = true, className = "OneMangaCo"),