Add rate limiting to some sources (#6916)
* Add rate limiting to some Madara sources. * Add rate limiting to some other sources. * Add rate limiting to Hentaimimi (closes #6910).
This commit is contained in:
parent
4906ee12e6
commit
050c71a011
|
@ -2,14 +2,25 @@ package eu.kanade.tachiyomi.extension.pt.baixarhentai
|
|||
|
||||
import eu.kanade.tachiyomi.multisrc.foolslide.FoolSlide
|
||||
import eu.kanade.tachiyomi.annotations.Nsfw
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import okhttp3.OkHttpClient
|
||||
import org.jsoup.nodes.Document
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@Nsfw
|
||||
class BaixarHentai : FoolSlide("Baixar Hentai", "https://leitura.baixarhentai.net", "pt-BR") {
|
||||
class BaixarHentai : FoolSlide(
|
||||
"Baixar Hentai",
|
||||
"https://leitura.baixarhentai.net",
|
||||
"pt-BR"
|
||||
) {
|
||||
// Hardcode the id because the language wasn't specific.
|
||||
override val id: Long = 8908032188831949972
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
|
||||
override fun mangaDetailsParse(document: Document): SManga {
|
||||
return SManga.create().apply {
|
||||
title = document.select("h1.title").text()
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
dependencies {
|
||||
implementation project(':lib-ratelimit')
|
||||
}
|
|
@ -1,7 +1,22 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.argosscan
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class ArgosScan : Madara("Argos Scan", "https://argosscan.com", "pt-BR", SimpleDateFormat("dd 'de' MMMM 'de' yyyy", Locale("pt", "BR")))
|
||||
class ArgosScan : Madara(
|
||||
"Argos Scan",
|
||||
"https://argosscan.com",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd 'de' MMMM 'de' yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
|
||||
override fun popularMangaSelector() = "div.page-item-detail.manga"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.cervoscanlator
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class CervoScanlator : Madara(
|
||||
"Cervo Scanlator",
|
||||
"https://cervoscan.xyz",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
|
||||
override fun popularMangaSelector() = "div.page-item-detail.manga"
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.darkyurealm
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class DarkyuRealm : Madara(
|
||||
"Darkyu Realm",
|
||||
"https://darkyuerealm.site",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd 'de' MMMMM, yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
|
@ -1,10 +1,26 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.dropescan
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class DropeScan : Madara(
|
||||
"Drope Scan",
|
||||
"https://dropescan.com",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
|
||||
class DropeScan : Madara("Drope Scan", "https://dropescan.com", "pt-BR") {
|
||||
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/manga/page/$page/?m_orderby=views", headers)
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/manga/page/$page/?m_orderby=latest", headers)
|
||||
}
|
||||
|
|
|
@ -1,7 +1,20 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.fdmscan
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class FDMScan : Madara("FDM Scan", "https://fdmscan.com", "pt-BR", SimpleDateFormat("MMMM dd, yyyy", Locale("pt", "BR")))
|
||||
class FDMScan : Madara(
|
||||
"FDM Scan",
|
||||
"https://fdmscan.com",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("MMMM dd, yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
||||
|
|
|
@ -1,7 +1,20 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.furioscans
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class FurioScans : Madara("Furio Scans", "https://furioscans.com", "pt-BR", SimpleDateFormat("dd/MM/yyyy", Locale.getDefault()))
|
||||
class FurioScans : Madara(
|
||||
"Furio Scans",
|
||||
"https://furioscans.com",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
||||
|
|
|
@ -1,7 +1,20 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.ichirinnohanayuri
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class IchirinNoHanaYuri : Madara("Ichirin No Hana Yuri", "https://ichirinnohanayuri.com.br", "pt-BR", SimpleDateFormat("dd/MM/yyyy", Locale("pt")))
|
||||
class IchirinNoHanaYuri : Madara(
|
||||
"Ichirin No Hana Yuri",
|
||||
"https://ichirinnohanayuri.com.br",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
||||
|
|
|
@ -1,8 +1,20 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.littlemonsterscan
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class LittleMonsterScan : Madara("Little Monster Scan", "https://littlemonsterscan.com.br",
|
||||
"pt-BR", SimpleDateFormat("dd 'de' MMMM 'de' yyyy", Locale("pt", "BR")))
|
||||
class LittleMonsterScan : Madara(
|
||||
"Little Monster Scan",
|
||||
"https://littlemonsterscan.com.br",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd 'de' MMMM 'de' yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
||||
|
|
|
@ -1,20 +1,27 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.mangateca
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import okhttp3.Headers
|
||||
import okhttp3.OkHttpClient
|
||||
import org.jsoup.nodes.Element
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class MangaTeca : Madara(
|
||||
"MangaTeca",
|
||||
"https://www.mangateca.com",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("MMMM dd, yyyy", Locale("pt", "BR"))
|
||||
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
|
||||
override fun headersBuilder(): Headers.Builder = Headers.Builder()
|
||||
.add("User-Agent", USER_AGENT)
|
||||
.add("Referer", baseUrl)
|
||||
.add("Origin", baseUrl)
|
||||
|
||||
|
@ -27,9 +34,4 @@ class MangaTeca : Madara(
|
|||
|
||||
return parsedChapter
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " +
|
||||
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.markscans
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class MarkScans : Madara(
|
||||
"Mark Scans",
|
||||
"https://markscans.online",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.nekobreaker
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
|
||||
class NekoBreaker : Madara("NekoBreaker", "https://nekobreaker.com", "pt-BR", SimpleDateFormat("MMMM dd, yyyy", Locale("pt")))
|
|
@ -1,5 +1,6 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.neoxscanlator
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
import okhttp3.Headers
|
||||
|
@ -17,18 +18,13 @@ class NeoxScanlator : Madara(
|
|||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.connectTimeout(1, TimeUnit.MINUTES)
|
||||
.readTimeout(1, TimeUnit.MINUTES)
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
|
||||
override fun headersBuilder(): Headers.Builder = Headers.Builder()
|
||||
.add("User-Agent", USER_AGENT)
|
||||
.add("Referer", baseUrl)
|
||||
.add("Origin", baseUrl)
|
||||
|
||||
// Only status and order by filter work.
|
||||
override fun getFilterList(): FilterList = FilterList(super.getFilterList().slice(3..4))
|
||||
|
||||
companion object {
|
||||
private const val USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " +
|
||||
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,22 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.offscan
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class OffScan : Madara(
|
||||
"Off Scan",
|
||||
"https://offscan.top",
|
||||
"pt-BR",
|
||||
dateFormat = SimpleDateFormat("dd/MM/yy", Locale.US)
|
||||
)
|
||||
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
|
||||
override fun popularMangaSelector() = "div.page-item-detail.manga"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.origamiorpheans
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class OrigamiOrpheans : Madara(
|
||||
"Origami Orpheans",
|
||||
"https://origami-orpheans.com.br",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
|
@ -1,7 +1,20 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.projetoscanlator
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class ProjetoScanlator : Madara("Projeto Scanlator", "https://projetoscanlator.com", "pt-BR", SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")))
|
||||
class ProjetoScanlator : Madara(
|
||||
"Projeto Scanlator",
|
||||
"https://projetoscanlator.com",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
||||
|
|
|
@ -1,7 +1,20 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.randomscan
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class RandomScan : Madara("Random Scan","https://randomscan.online","pt-BR", SimpleDateFormat("dd 'de' MMMM 'de' yyyy", Locale("pt", "BR")))
|
||||
class RandomScan : Madara(
|
||||
"Random Scan",
|
||||
"https://randomscan.online",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd 'de' MMMM 'de' yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
||||
|
|
|
@ -1,8 +1,20 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.shinzooscan
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class ShinzooScan : Madara(
|
||||
"Shinzoo Scan",
|
||||
"https://shinzooscan.xyz",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
class ShinzooScan : Madara("Shinzoo Scan", "https://shinzooscan.xyz", "pt-BR", SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")))
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
||||
|
|
|
@ -1,12 +1,27 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.stagecomics
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import okhttp3.OkHttpClient
|
||||
import org.jsoup.nodes.Element
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class StageComics : Madara(
|
||||
"StageComics",
|
||||
"https://stagecomics.com",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
|
||||
override fun popularMangaSelector() = "div.page-item-detail.manga"
|
||||
|
||||
class StageComics : Madara("StageComics", "https://stagecomics.com", "pt-BR", SimpleDateFormat("MMMM dd, yyyy", Locale("pt"))) {
|
||||
override fun chapterFromElement(element: Element): SChapter {
|
||||
val parsedChapter = super.chapterFromElement(element)
|
||||
|
||||
|
|
|
@ -1,8 +1,20 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.threequeensscanlator
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class ThreeQueensScanlator : Madara("Three Queens Scanlator", "https://tqscan.com.br",
|
||||
"pt-BR", SimpleDateFormat("dd 'de' MMMM 'de' yyyy", Locale("pt", "BR")))
|
||||
class ThreeQueensScanlator : Madara(
|
||||
"Three Queens Scanlator",
|
||||
"https://tqscan.com.br",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd 'de' MMMM 'de' yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
||||
|
|
|
@ -1,8 +1,22 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.warqueenscan
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class WarQueenScan : Madara("War Queen Scan", "https://wqscan.com", "pt-BR", SimpleDateFormat("dd/MM/yyyy", Locale.US))
|
||||
class WarQueenScan : Madara(
|
||||
"War Queen Scan",
|
||||
"https://wqscan.com",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
|
||||
override fun popularMangaSelector() = "div.page-item-detail.manga"
|
||||
}
|
||||
|
|
|
@ -1,8 +1,20 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.winterscan
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class WinterScan : Madara("Winter Scan", "https://winterscan.com.br",
|
||||
"pt-BR", SimpleDateFormat("dd 'de' MMMM 'de' yyyy", Locale("pt", "BR")))
|
||||
class WinterScan : Madara(
|
||||
"Winter Scan",
|
||||
"https://winterscan.com.br",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd 'de' MMMM 'de' yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
||||
|
|
|
@ -1,12 +1,22 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.yuriverso
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import okhttp3.OkHttpClient
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class YuriVerso : Madara(
|
||||
"Yuri Verso",
|
||||
"https://yuri.live",
|
||||
"pt-BR",
|
||||
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
|
||||
)
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
|
||||
override fun popularMangaSelector() = "div.page-item-detail.manga"
|
||||
}
|
||||
|
|
|
@ -1,7 +1,14 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.animaregia
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.mmrcms.MMRCMS
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class AnimaRegia : MMRCMS("AnimaRegia", "https://animaregia.net", "pt-BR"){
|
||||
class AnimaRegia : MMRCMS("AnimaRegia", "https://animaregia.net", "pt-BR") {
|
||||
override val id: Long = 4378659695320121364
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
package eu.kanade.tachiyomi.extension.pt.remangas
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.mmrcms.MMRCMS
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class Remangas : MMRCMS("Remangas", "https://remangas.top", "pt-BR") {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
}
|
|
@ -22,12 +22,11 @@ class SilenceScan : WPMangaStream(
|
|||
"pt-BR",
|
||||
SimpleDateFormat("MMMM dd, yyyy", Locale("pt", "BR"))
|
||||
) {
|
||||
private val rateLimitInterceptor = RateLimitInterceptor(4)
|
||||
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.connectTimeout(10, TimeUnit.SECONDS)
|
||||
.readTimeout(30, TimeUnit.SECONDS)
|
||||
.addNetworkInterceptor(rateLimitInterceptor)
|
||||
.addNetworkInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
|
||||
override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply {
|
||||
|
@ -79,7 +78,7 @@ class SilenceScan : WPMangaStream(
|
|||
.data()
|
||||
.substringAfter("run(")
|
||||
.substringBeforeLast(");")
|
||||
.let { JSON_PARSER.parse(it) }
|
||||
.let { JsonParser.parseString(it) }
|
||||
.obj
|
||||
|
||||
if (chapterObj["sources"].array.size() == 0) {
|
||||
|
@ -127,8 +126,4 @@ class SilenceScan : WPMangaStream(
|
|||
Genre("Violência sexual", "violencia-sexual"),
|
||||
Genre("Yuri", "yuri")
|
||||
)
|
||||
|
||||
companion object {
|
||||
private val JSON_PARSER by lazy { JsonParser() }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ class FoolSlideGenerator : ThemeSourceGenerator {
|
|||
SingleLang("LupiTeam", "https://lupiteam.net", "it"),
|
||||
SingleLang("Zandy no Fansub", "https://zandynofansub.aishiteru.org", "en"),
|
||||
SingleLang("Kirishima Fansub", "https://www.kirishimafansub.net", "es"),
|
||||
SingleLang("Baixar Hentai", "https://leitura.baixarhentai.net", "pt-BR", isNsfw = true, overrideVersionCode = 1),
|
||||
SingleLang("Baixar Hentai", "https://leitura.baixarhentai.net", "pt-BR", isNsfw = true, overrideVersionCode = 2),
|
||||
MultiLang("HNI-Scantrad", "https://hni-scantrad.com", listOf("fr", "en"), className = "HNIScantradFactory", pkgName = "hniscantrad", overrideVersionCode = 1),
|
||||
SingleLang("The Phoenix Scans", "https://www.phoenixscans.com", "it", className = "PhoenixScans"),
|
||||
SingleLang("GTO The Great Site", "https://www.gtothegreatsite.net", "it", className = "GTO"),
|
||||
|
|
|
@ -24,7 +24,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("ApollComics", "https://apollcomics.xyz", "es"),
|
||||
SingleLang("Arang Scans", "https://arangscans.com", "en", overrideVersionCode = 2),
|
||||
SingleLang("ArazNovel", "https://www.araznovel.com", "tr"),
|
||||
SingleLang("Argos Scan", "https://argosscan.com", "pt-BR"),
|
||||
SingleLang("Argos Scan", "https://argosscan.com", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Asgard Team", "https://www.asgard1team.com", "ar", overrideVersionCode = 1),
|
||||
SingleLang("Astral Library", "https://www.astrallibrary.net", "en", overrideVersionCode = 1),
|
||||
SingleLang("Atikrost", "https://atikrost.com", "tr"),
|
||||
|
@ -47,7 +47,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("Comics Valley", "https://comicsvalley.com", "hi", isNsfw = true),
|
||||
SingleLang("CopyPasteScan", "https://copypastescan.xyz", "es"),
|
||||
SingleLang("Cutie Pie", "https://cutiepie.ga", "tr"),
|
||||
SingleLang("Darkyu Realm", "https://darkyuerealm.site", "pt-BR"),
|
||||
SingleLang("Darkyu Realm", "https://darkyuerealm.site", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Decadence Scans", "https://reader.decadencescans.com", "en", overrideVersionCode = 1),
|
||||
SingleLang("شبكة كونان العربية", "https://www.manga.detectiveconanar.com", "ar", className = "DetectiveConanAr", overrideVersionCode = 1),
|
||||
SingleLang("DiamondFansub", "https://diamondfansub.com", "tr"),
|
||||
|
@ -55,13 +55,13 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("DoujinHentai", "https://doujinhentai.net", "es", isNsfw = true),
|
||||
SingleLang("DoujinYosh", "https://doujinyosh.work", "id"),
|
||||
SingleLang("Dream Manga", "https://en.ruyamanga.com", "en", overrideVersionCode = 1),
|
||||
SingleLang("Drope Scan", "https://dropescan.com", "pt-BR"),
|
||||
SingleLang("Drope Scan", "https://dropescan.com", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Einherjar Scan", "https://einherjarscans.space", "en"),
|
||||
SingleLang("FDM Scan", "https://fdmscan.com", "pt-BR"),
|
||||
SingleLang("FDM Scan", "https://fdmscan.com", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("1st Kiss", "https://1stkissmanga.com", "en", className = "FirstKissManga", overrideVersionCode = 1),
|
||||
SingleLang("1st Kiss Manhua", "https://1stkissmanhua.com", "en", className = "FirstKissManhua"),
|
||||
SingleLang("FreeWebtoonCoins", "https://freewebtooncoins.com", "en"),
|
||||
SingleLang("Furio Scans", "https://furioscans.com", "pt-BR"),
|
||||
SingleLang("Furio Scans", "https://furioscans.com", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("موقع لترجمة المانجا", "https://golden-manga.com", "ar", className = "GoldenManga"),
|
||||
SingleLang("GalaxyDegenScans", "https://gdegenscans.xyz/", "en"),
|
||||
SingleLang("Glory Scans", "https://gloryscan.com", "pt-BR", isNsfw = true),
|
||||
|
@ -73,7 +73,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("Hiperdex", "https://hiperdex.com", "en", isNsfw = true, overrideVersionCode = 1),
|
||||
SingleLang("Hscans", "https://hscans.com", "en", overrideVersionCode = 1),
|
||||
SingleLang("Hunter Fansub", "https://hunterfansub.com", "es"),
|
||||
SingleLang("Ichirin No Hana Yuri", "https://ichirinnohanayuri.com.br", "pt-BR"),
|
||||
SingleLang("Ichirin No Hana Yuri", "https://ichirinnohanayuri.com.br", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Immortal Updates", "https://immortalupdates.com", "en", overrideVersionCode = 1),
|
||||
SingleLang("IsekaiScan.com", "https://isekaiscan.com", "en", className = "IsekaiScanCom", overrideVersionCode = 2),
|
||||
SingleLang("IsekaiScanManga (unoriginal)", "https://isekaiscanmanga.com", "en", className = "IsekaiScanManga"),
|
||||
|
@ -135,7 +135,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("MangaStein", "https://mangastein.com", "tr"),
|
||||
SingleLang("Mangasushi", "https://mangasushi.net", "en", overrideVersionCode = 1),
|
||||
SingleLang("Manga SY", "https://www.mangasy.com", "en"),
|
||||
SingleLang("MangaTeca", "https://www.mangateca.com", "pt-BR"),
|
||||
SingleLang("MangaTeca", "https://www.mangateca.com", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Manga Too", "https://mangatoo.com/", "en"),
|
||||
SingleLang("Manga Turf", "https://mangaturf.com", "en"),
|
||||
SingleLang("MangaTX", "https://mangatx.com", "en"),
|
||||
|
@ -169,7 +169,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("ManyToon", "https://manytoon.com", "en"),
|
||||
SingleLang("ManyToonClub", "https://manytoon.club", "ko"),
|
||||
SingleLang("ManyToon.me", "https://manytoon.me", "en", className = "ManyToonMe"),
|
||||
SingleLang("Mark Scans", "https://markscans.online", "pt-BR"),
|
||||
SingleLang("Mark Scans", "https://markscans.online", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("MG Komik", "https://mgkomik.my.id", "id"),
|
||||
SingleLang("Midnight Mess Scans", "https://midnightmess.org", "en"),
|
||||
SingleLang("Milftoon", "https://milftoon.xxx", "en", isNsfw = true, overrideVersionCode = 1),
|
||||
|
@ -180,18 +180,17 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("Mystical Merries", "https://mysticalmerries.com", "en"),
|
||||
SingleLang("Nazarick Scans", "https://nazarickscans.com", "en"),
|
||||
SingleLang("NeatManga", "https://neatmanga.com", "en"),
|
||||
SingleLang("NekoBreaker", "https://nekobreaker.com", "pt-BR"),
|
||||
SingleLang("NekoScan", "https://nekoscan.com", "en", overrideVersionCode = 1),
|
||||
SingleLang("Neox Scanlator", "https://neoxscans.net", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Neox Scanlator", "https://neoxscans.net", "pt-BR", overrideVersionCode = 2),
|
||||
SingleLang("Night Comic", "https://www.nightcomic.com", "en"),
|
||||
SingleLang("Niji Translations", "https://niji-translations.com", "ar"),
|
||||
SingleLang("Ninjavi", "https://ninjavi.com", "ar", overrideVersionCode = 1),
|
||||
SingleLang("Nitro Scans", "https://nitroscans.com", "en"),
|
||||
SingleLang("NovelMic", "https://novelmic.com", "en"),
|
||||
SingleLang("Off Scan", "https://offscan.top", "pt-BR"),
|
||||
SingleLang("Off Scan", "https://offscan.top", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("مانجا اولاو", "https://olaoe.giize.com", "ar", className = "OlaoeManga"),
|
||||
SingleLang("OnManga", "https://onmanga.com", "en"),
|
||||
SingleLang("Origami Orpheans", "https://origami-orpheans.com.br", "pt-BR"),
|
||||
SingleLang("Origami Orpheans", "https://origami-orpheans.com.br", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Paean Scans", "https://paeanscans.com", "en"),
|
||||
SingleLang("Painful Nightz Scan", "https://painfulnightzscan.com", "en"),
|
||||
SingleLang("Pied Piper", "https://piedpiperfb.com", "tr"),
|
||||
|
@ -199,7 +198,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("Pojok Manga", "https://pojokmanga.com", "id", overrideVersionCode = 1),
|
||||
SingleLang("PornComix", "https://www.porncomixonline.net", "en", isNsfw = true),
|
||||
SingleLang("Prime Manga", "https://primemanga.com", "en"),
|
||||
SingleLang("Projeto Scanlator", "https://projetoscanlator.com", "pt-BR"),
|
||||
SingleLang("Projeto Scanlator", "https://projetoscanlator.com", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("QueensManga ملكات المانجا", "https://queensmanga.com", "ar", className = "QueensManga"),
|
||||
SingleLang("Raider Scans", "https://raiderscans.com", "en"),
|
||||
SingleLang("Random Translations", "https://randomtranslations.com", "en"),
|
||||
|
@ -212,7 +211,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("SamuraiScan", "https://samuraiscan.com", "es"),
|
||||
SingleLang("Setsu Scans", "https://setsuscans.com", "en"),
|
||||
SingleLang("Shield Manga", "https://shieldmanga.club", "en", overrideVersionCode = 2),
|
||||
SingleLang("Shinzoo Scan", "https://shinzooscan.xyz", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Shinzoo Scan", "https://shinzooscan.xyz", "pt-BR", overrideVersionCode = 2),
|
||||
SingleLang("Shooting Star Scans", "https://shootingstarscans.xyz", "en"),
|
||||
SingleLang("ShoujoHearts", "https://shoujohearts.com", "en", overrideVersionCode = 1),
|
||||
SingleLang("SISI GELAP", "https://sisigelap.club/", "id"),
|
||||
|
@ -223,7 +222,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("SocialWeebs", "https://socialweebs.in/", "en"),
|
||||
SingleLang("SoloScanlation", "https://soloscanlation.site", "en"),
|
||||
SingleLang("Spooky Scanlations", "https://spookyscanlations.xyz", "es"),
|
||||
SingleLang("StageComics", "https://stagecomics.com", "pt-BR"),
|
||||
SingleLang("StageComics", "https://stagecomics.com", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Sugar Babies", "https://sugarbscan.com", "en"),
|
||||
SingleLang("TheTopComic", "https://thetopcomic.com", "en"),
|
||||
SingleLang("365Manga", "https://365manga.com", "en", className = "ThreeSixtyFiveManga"),
|
||||
|
@ -243,7 +242,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("Uyuyan Balik", "https://uyuyanbalik.com/", "tr"),
|
||||
SingleLang("Vanguard Bun", "https://vanguardbun.com/", "en"),
|
||||
SingleLang("Wakascan", "https://wakascan.com", "fr"),
|
||||
SingleLang("War Queen Scan", "https://wqscan.com", "pt-BR"),
|
||||
SingleLang("War Queen Scan", "https://wqscan.com", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("WebNovel", "https://webnovel.live", "en", className = "WebNovelLive", overrideVersionCode = 1),
|
||||
SingleLang("WebToonily", "https://webtoonily.com", "en"),
|
||||
SingleLang("WebtoonUK", "https://webtoon.uk", "en"),
|
||||
|
@ -254,7 +253,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("Yaoi Fan Clube", "https://yaoifanclube.com.br", "pt-BR", isNsfw = true),
|
||||
SingleLang("Yaoi Toshokan", "https://yaoitoshokan.net", "pt-BR", isNsfw = true, overrideVersionCode = 2),
|
||||
SingleLang("Yokai Jump", "https://yokaijump.fr", "fr"),
|
||||
SingleLang("Yuri Verso", "https://yuri.live", "pt-BR"),
|
||||
SingleLang("Yuri Verso", "https://yuri.live", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Zin Translator", "https://zinmanga.com", "en"),
|
||||
SingleLang("ZManga", "https://zmanga.org", "es"),
|
||||
SingleLang("Sleeping Knight Scans", "https://skscans.com", "en", overrideVersionCode = 2),
|
||||
|
@ -266,16 +265,16 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("Imperfect Comics", "https://imperfectcomic.com", "en"),
|
||||
SingleLang("Ookamii Manga", "https://manga.ookamii.xyz/", "en"),
|
||||
SingleLang("Mortals Groove", "https://mortalsgroove.com", "en"),
|
||||
SingleLang("Cervo Scanlator", "https://cervoscan.xyz", "pt-BR"),
|
||||
SingleLang("Cervo Scanlator", "https://cervoscan.xyz", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Comic Star", "https://comicstar.org", "en"),
|
||||
SingleLang("Reset Scans", "https://reset-scans.com", "en", overrideVersionCode = 2),
|
||||
SingleLang("XuN Scans", "https://reader.xunscans.xyz", "en"),
|
||||
SingleLang("Sani-Go", "https://sani-go.net", "ar", className = "SaniGo"),
|
||||
SingleLang("Random Scan", "https://randomscan.online", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Random Scan", "https://randomscan.online", "pt-BR", overrideVersionCode = 2),
|
||||
SingleLang("Fukushuu no Yuusha", "https://fny-scantrad.com", "fr"),
|
||||
SingleLang("Three Queens Scanlator", "https://tqscan.com.br", "pt-BR"),
|
||||
SingleLang("Winter Scan", "https://winterscan.com.br", "pt-BR"),
|
||||
SingleLang("Little Monster Scan", "https://littlemonsterscan.com.br", "pt-BR"),
|
||||
SingleLang("Three Queens Scanlator", "https://tqscan.com.br", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Winter Scan", "https://winterscan.com.br", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Little Monster Scan", "https://littlemonsterscan.com.br", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Wonderland", "https://landwebtoons.site", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Pornwha", "https://pornwha.com", "en", isNsfw = true),
|
||||
SingleLang("Wakamics", "https://wakamics.net", "en"),
|
||||
|
|
|
@ -59,8 +59,8 @@ class MMRCMSSources {
|
|||
SourceData.Single("Komik Manga", "https://adm.komikmanga.com", "id"),
|
||||
SourceData.Single("Mangazuki Raws", "https://raws.mangazuki.co", "ko"),
|
||||
SourceData.Single("Mangazuki", "https://mangazuki.co", "en"),
|
||||
SourceData.Single("Remangas", "https://remangas.top", "pt-BR"),
|
||||
SourceData.Single("AnimaRegia", "https://animaregia.net", "pt-BR"),
|
||||
SourceData.Single("Remangas", "https://remangas.top", "pt-BR", overrideVersionCode = 1),
|
||||
SourceData.Single("AnimaRegia", "https://animaregia.net", "pt-BR", overrideVersionCode = 1),
|
||||
SourceData.Single("MangaVadisi", "http://manga-v2.mangavadisi.org", "tr"),
|
||||
SourceData.Single("MangaID", "https://mangaid.click", "id"),
|
||||
SourceData.Single("Jpmangas", "https://jpmangas.co", "fr"),
|
||||
|
|
|
@ -41,7 +41,7 @@ class WPMangaStreamGenerator : ThemeSourceGenerator {
|
|||
SingleLang("Manga Raw.org", "https://mangaraw.org", "ja", className = "MangaRawOrg", overrideVersionCode = 1),
|
||||
SingleLang("Matakomik", "https://matakomik.com", "id"),
|
||||
SingleLang("Manga Pro Z", "https://mangaproz.com", "ar"),
|
||||
SingleLang("Silence Scan", "https://silencescan.net", "pt-BR"),
|
||||
SingleLang("Silence Scan", "https://silencescan.net", "pt-BR", overrideVersionCode = 1),
|
||||
SingleLang("Kuma Scans (Kuma Translation)", "https://kumascans.com", "en", className = "KumaScans"),
|
||||
SingleLang("Tempest Manga", "https://manga.tempestfansub.com", "tr"),
|
||||
SingleLang("xCaliBR Scans", "https://xcalibrscans.com", "en", overrideVersionCode = 2),
|
||||
|
|
|
@ -5,9 +5,13 @@ ext {
|
|||
extName = 'HentaiMimi'
|
||||
pkgNameSuffix = 'en.hentaimimi'
|
||||
extClass = '.HentaiMimi'
|
||||
extVersionCode = 2
|
||||
extVersionCode = 3
|
||||
libVersion = '1.2'
|
||||
containsNsfw = true
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation project(':lib-ratelimit')
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package eu.kanade.tachiyomi.extension.en.hentaimimi
|
||||
|
||||
import eu.kanade.tachiyomi.annotations.Nsfw
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.source.model.Filter
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
|
@ -9,10 +10,12 @@ import eu.kanade.tachiyomi.source.model.SChapter
|
|||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
import rx.Observable
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
/*
|
||||
* To Update Filter Values Run "FilterOptGen.kt"
|
||||
|
@ -27,6 +30,10 @@ class HentaiMimi : ParsedHttpSource() {
|
|||
override val name = "HentaiMimi"
|
||||
override val supportsLatest = true
|
||||
|
||||
override val client: OkHttpClient = network.client.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS))
|
||||
.build()
|
||||
|
||||
// Latest
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SManga {
|
||||
|
|
Loading…
Reference in New Issue