Tachiyomi-Extensions/multisrc/overrides/madara/reaperscans/src/ReaperScansFactory.kt

94 lines
2.6 KiB
Kotlin
Raw Normal View History

2021-08-27 10:27:13 +00:00
package eu.kanade.tachiyomi.extension.all.reaperscans
2021-08-25 17:07:00 +00:00
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.interceptor.rateLimit
2021-08-27 10:27:13 +00:00
import eu.kanade.tachiyomi.source.SourceFactory
2021-08-25 17:07:00 +00:00
import eu.kanade.tachiyomi.source.model.SChapter
2022-04-24 00:01:48 +00:00
import okhttp3.HttpUrl.Companion.toHttpUrl
2021-08-25 17:07:00 +00:00
import okhttp3.OkHttpClient
import org.jsoup.nodes.Element
import java.text.SimpleDateFormat
import java.util.Locale
2021-08-25 17:07:00 +00:00
import java.util.concurrent.TimeUnit
2021-08-27 10:27:13 +00:00
class ReaperScansFactory : SourceFactory {
override fun createSources() = listOf(
ReaperScansEn(),
2022-04-24 00:01:48 +00:00
ReaperScansBr(),
ReaperScansTr(),
ReaperScansId(),
ReaperScansFr()
2021-08-27 10:27:13 +00:00
)
}
2021-08-25 17:07:00 +00:00
2021-08-27 10:27:13 +00:00
abstract class ReaperScans(
override val baseUrl: String,
lang: String,
dateFormat: SimpleDateFormat = SimpleDateFormat("MMMM dd, yyyy", Locale.US)
2022-04-24 00:01:48 +00:00
) : Madara("Reaper Scans", baseUrl, lang, dateFormat) {
2022-04-24 00:01:48 +00:00
override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
val urlElement = element.selectFirst(chapterUrlSelector)!!
name = urlElement.selectFirst("p.chapter-manhwa-title")?.text()
?: urlElement.ownText()
date_upload = urlElement.selectFirst("span.chapter-release-date > i")?.text()
.let { parseChapterDate(it) }
val fixedUrl = urlElement.attr("abs:href").toHttpUrl().newBuilder()
.removeAllQueryParameters("style")
.addQueryParameter("style", "list")
.toString()
2021-08-25 17:07:00 +00:00
2022-04-24 00:01:48 +00:00
setUrlWithoutDomain(fixedUrl)
2021-08-25 17:07:00 +00:00
}
}
2021-08-27 10:27:13 +00:00
2022-04-24 00:01:48 +00:00
class ReaperScansEn : ReaperScans(
"https://reaperscans.com",
"en",
SimpleDateFormat("MMM dd,yyyy", Locale.US)
) {
override val versionId = 2
}
class ReaperScansBr : ReaperScans(
"https://reaperscans.com.br",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale.US)
) {
2021-08-27 10:27:13 +00:00
override val id = 7767018058145795388
override val client: OkHttpClient = super.client.newBuilder()
.rateLimit(1, 2, TimeUnit.SECONDS)
2021-08-27 10:27:13 +00:00
.build()
2022-04-24 00:01:48 +00:00
}
2021-08-27 10:27:13 +00:00
2022-04-24 00:01:48 +00:00
class ReaperScansTr : ReaperScans(
"https://reaperscanstr.com",
"tr",
SimpleDateFormat("MMMMM dd, yyyy", Locale("tr"))
) {
// Tags are useless as they are just SEO keywords.
override val mangaDetailsSelectorTag = ""
}
class ReaperScansId : ReaperScans("https://reaperscans.id", "id") {
// Tags are useless as they are just SEO keywords.
override val mangaDetailsSelectorTag = ""
}
class ReaperScansFr : ReaperScans(
"https://new.reaperscans.fr",
"fr",
SimpleDateFormat("dd/MM/yyyy", Locale.US)
) {
// Migrated from WpMangaReader to Madara.
override val versionId = 2
2021-08-27 10:27:13 +00:00
}