Add OsakaScan (#8094)

* Add OsakaScan

* Fix chapter sort

* Fix page loading
This commit is contained in:
Chopper 2025-03-17 11:46:06 -03:00 committed by Draff
parent de293f4685
commit 456b3fff5e
No known key found for this signature in database
GPG Key ID: E8A89F3211677653
2 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,10 @@
ext {
extName = 'Osaka Scan'
extClass = '.OsakaScan'
themePkg = 'zeistmanga'
baseUrl = 'https://www.osakascan.com'
overrideVersionCode = 0
isNsfw = true
}
apply from: "$rootDir/common.gradle"

View File

@ -0,0 +1,50 @@
package eu.kanade.tachiyomi.extension.pt.osakascan
import eu.kanade.tachiyomi.multisrc.zeistmanga.ZeistManga
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 okhttp3.Response
class OsakaScan : ZeistManga(
"Osaka Scan",
"https://www.osakascan.com",
"pt-BR",
) {
override val client = super.client.newBuilder()
.rateLimit(2)
.build()
override val popularMangaSelector = "#PopularPosts2 article"
override val popularMangaSelectorTitle = "h3 a"
override val popularMangaSelectorUrl = popularMangaSelectorTitle
override fun mangaDetailsParse(response: Response) = SManga.create().apply {
val document = response.asJsoup()
title = document.selectFirst("h1")!!.text()
description = document.selectFirst(mangaDetailsSelectorDescription)?.text()
document.selectFirst("span[data-status]")?.text()?.let {
status = parseStatus(it)
}
genre = document.select("dt:contains(Gênero) + dd a").joinToString { it.text() }
}
override fun chapterListParse(response: Response): List<SChapter> {
return super.chapterListParse(response)
.map { chapter ->
chapter.apply {
CHAPTER_NUMBER_REGEX.find(name)?.groups?.get(0)?.value?.let {
chapter_number = it.toFloat()
}
}
}
.sortedBy(SChapter::chapter_number).reversed()
}
override val pageListSelector = "#reader div.separator"
companion object {
val CHAPTER_NUMBER_REGEX = """\d+(\.\d+)?""".toRegex()
}
}