fix early manga pages, add ratelimiter (#5874)
This commit is contained in:
parent
244ea0b9b4
commit
1826f8450d
@ -5,8 +5,12 @@ ext {
|
|||||||
extName = 'EarlyManga'
|
extName = 'EarlyManga'
|
||||||
pkgNameSuffix = 'en.earlymanga'
|
pkgNameSuffix = 'en.earlymanga'
|
||||||
extClass = '.EarlyManga'
|
extClass = '.EarlyManga'
|
||||||
extVersionCode = 6
|
extVersionCode = 7
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation project(':lib-ratelimit')
|
||||||
|
}
|
||||||
|
|
||||||
apply from: "$rootDir/common.gradle"
|
apply from: "$rootDir/common.gradle"
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package eu.kanade.tachiyomi.extension.en.earlymanga
|
package eu.kanade.tachiyomi.extension.en.earlymanga
|
||||||
|
|
||||||
|
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
import eu.kanade.tachiyomi.source.model.FilterList
|
import eu.kanade.tachiyomi.source.model.FilterList
|
||||||
import eu.kanade.tachiyomi.source.model.Page
|
import eu.kanade.tachiyomi.source.model.Page
|
||||||
@ -15,6 +16,7 @@ import org.jsoup.nodes.Document
|
|||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
class EarlyManga : ParsedHttpSource() {
|
class EarlyManga : ParsedHttpSource() {
|
||||||
|
|
||||||
@ -26,7 +28,13 @@ class EarlyManga : ParsedHttpSource() {
|
|||||||
|
|
||||||
override val supportsLatest = true
|
override val supportsLatest = true
|
||||||
|
|
||||||
override val client: OkHttpClient = network.cloudflareClient
|
private val rateLimitInterceptor = RateLimitInterceptor(1) // 1 request per second
|
||||||
|
|
||||||
|
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||||
|
.connectTimeout(10, TimeUnit.SECONDS)
|
||||||
|
.readTimeout(30, TimeUnit.SECONDS)
|
||||||
|
.addNetworkInterceptor(rateLimitInterceptor)
|
||||||
|
.build()
|
||||||
|
|
||||||
override fun headersBuilder(): Headers.Builder = Headers.Builder()
|
override fun headersBuilder(): Headers.Builder = Headers.Builder()
|
||||||
.add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.151 Safari/537.36")
|
.add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.151 Safari/537.36")
|
||||||
@ -119,8 +127,9 @@ class EarlyManga : ParsedHttpSource() {
|
|||||||
|
|
||||||
override fun chapterFromElement(element: Element) = SChapter.create().apply {
|
override fun chapterFromElement(element: Element) = SChapter.create().apply {
|
||||||
setUrlWithoutDomain(element.select(".col-lg-5 a").attr("href"))
|
setUrlWithoutDomain(element.select(".col-lg-5 a").attr("href"))
|
||||||
val access = element.select(".col-lg-5 a .d-none").text()
|
val access = element.select(".col-lg-5 a .d-none, .col-lg-5 a div, .col-lg-5 a span, .col-lg-5 a .dis-none, .col-lg-5 a *").text()
|
||||||
name = element.select(".col-lg-5 a").text().substringAfter(access)
|
name = element.select(".col-lg-5 a").text().substringAfter(access).substringAfter("You need to access the site through the browser to read ").substringAfter("Chapter")
|
||||||
|
if (!name.contains("chapter", true)) { name = "Chapter" + name }
|
||||||
date_upload = parseChapterDate(element.select(".ml-1").attr("title"))
|
date_upload = parseChapterDate(element.select(".ml-1").attr("title"))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,7 +139,10 @@ class EarlyManga : ParsedHttpSource() {
|
|||||||
|
|
||||||
// pages
|
// pages
|
||||||
override fun pageListParse(document: Document): List<Page> {
|
override fun pageListParse(document: Document): List<Page> {
|
||||||
return document.select(".chapter-images-container-inside img").mapIndexed { i, element ->
|
return document.select(
|
||||||
|
".chapter-images-container-inside img, .chapter-images-container-interior img, " +
|
||||||
|
".chapter_images-container img, .JP-manga img, .grad img, img[src*=/manga/]"
|
||||||
|
).mapIndexed { i, element ->
|
||||||
Page(i, "", element.attr("abs:src"))
|
Page(i, "", element.attr("abs:src"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user