diff --git a/multisrc/overrides/foolslide/baixarhentai/src/BaixarHentai.kt b/multisrc/overrides/foolslide/baixarhentai/src/BaixarHentai.kt index 1b80c01f4..2fc0b9fd0 100644 --- a/multisrc/overrides/foolslide/baixarhentai/src/BaixarHentai.kt +++ b/multisrc/overrides/foolslide/baixarhentai/src/BaixarHentai.kt @@ -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() diff --git a/multisrc/overrides/foolslide/default/additional.gradle.kts b/multisrc/overrides/foolslide/default/additional.gradle.kts new file mode 100644 index 000000000..10beb8157 --- /dev/null +++ b/multisrc/overrides/foolslide/default/additional.gradle.kts @@ -0,0 +1,4 @@ + +dependencies { + implementation project(':lib-ratelimit') +} diff --git a/multisrc/overrides/madara/argosscan/src/ArgosScan.kt b/multisrc/overrides/madara/argosscan/src/ArgosScan.kt index 0acad44bc..b013b64f5 100644 --- a/multisrc/overrides/madara/argosscan/src/ArgosScan.kt +++ b/multisrc/overrides/madara/argosscan/src/ArgosScan.kt @@ -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" +} diff --git a/multisrc/overrides/madara/cervoscanlator/src/CervoScanlator.kt b/multisrc/overrides/madara/cervoscanlator/src/CervoScanlator.kt new file mode 100644 index 000000000..7ee54da3b --- /dev/null +++ b/multisrc/overrides/madara/cervoscanlator/src/CervoScanlator.kt @@ -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" +} diff --git a/multisrc/overrides/madara/darkyurealm/src/DarkyuRealm.kt b/multisrc/overrides/madara/darkyurealm/src/DarkyuRealm.kt new file mode 100644 index 000000000..59da7287a --- /dev/null +++ b/multisrc/overrides/madara/darkyurealm/src/DarkyuRealm.kt @@ -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() +} diff --git a/multisrc/overrides/madara/dropescan/src/DropeScan.kt b/multisrc/overrides/madara/dropescan/src/DropeScan.kt index 3a2321245..b0e59d662 100644 --- a/multisrc/overrides/madara/dropescan/src/DropeScan.kt +++ b/multisrc/overrides/madara/dropescan/src/DropeScan.kt @@ -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) } diff --git a/multisrc/overrides/madara/fdmscan/src/FDMScan.kt b/multisrc/overrides/madara/fdmscan/src/FDMScan.kt index 040da61c8..80f4a042e 100644 --- a/multisrc/overrides/madara/fdmscan/src/FDMScan.kt +++ b/multisrc/overrides/madara/fdmscan/src/FDMScan.kt @@ -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() +} diff --git a/multisrc/overrides/madara/furioscans/src/FurioScans.kt b/multisrc/overrides/madara/furioscans/src/FurioScans.kt index 9517913db..84c11113c 100644 --- a/multisrc/overrides/madara/furioscans/src/FurioScans.kt +++ b/multisrc/overrides/madara/furioscans/src/FurioScans.kt @@ -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() +} diff --git a/multisrc/overrides/madara/ichirinnohanayuri/src/IchirinNoHanaYuri.kt b/multisrc/overrides/madara/ichirinnohanayuri/src/IchirinNoHanaYuri.kt index 9091516c2..2ac930a49 100644 --- a/multisrc/overrides/madara/ichirinnohanayuri/src/IchirinNoHanaYuri.kt +++ b/multisrc/overrides/madara/ichirinnohanayuri/src/IchirinNoHanaYuri.kt @@ -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() +} diff --git a/multisrc/overrides/madara/littlemonsterscan/src/LittleMonsterScan.kt b/multisrc/overrides/madara/littlemonsterscan/src/LittleMonsterScan.kt index f8703e50a..03e594b4d 100644 --- a/multisrc/overrides/madara/littlemonsterscan/src/LittleMonsterScan.kt +++ b/multisrc/overrides/madara/littlemonsterscan/src/LittleMonsterScan.kt @@ -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() +} diff --git a/multisrc/overrides/madara/mangateca/src/MangaTeca.kt b/multisrc/overrides/madara/mangateca/src/MangaTeca.kt index 09ca07d91..60c45c1cd 100644 --- a/multisrc/overrides/madara/mangateca/src/MangaTeca.kt +++ b/multisrc/overrides/madara/mangateca/src/MangaTeca.kt @@ -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" - } } diff --git a/multisrc/overrides/madara/markscans/src/MarkScans.kt b/multisrc/overrides/madara/markscans/src/MarkScans.kt new file mode 100644 index 000000000..26fb123ba --- /dev/null +++ b/multisrc/overrides/madara/markscans/src/MarkScans.kt @@ -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() +} diff --git a/multisrc/overrides/madara/nekobreaker/src/NekoBreaker.kt b/multisrc/overrides/madara/nekobreaker/src/NekoBreaker.kt deleted file mode 100644 index 2b7a781f2..000000000 --- a/multisrc/overrides/madara/nekobreaker/src/NekoBreaker.kt +++ /dev/null @@ -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"))) diff --git a/multisrc/overrides/madara/neoxscanlator/src/NeoxScanlator.kt b/multisrc/overrides/madara/neoxscanlator/src/NeoxScanlator.kt index 6a6fed3c0..c703123f1 100644 --- a/multisrc/overrides/madara/neoxscanlator/src/NeoxScanlator.kt +++ b/multisrc/overrides/madara/neoxscanlator/src/NeoxScanlator.kt @@ -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" - } } diff --git a/multisrc/overrides/madara/offscan/src/OffScan.kt b/multisrc/overrides/madara/offscan/src/OffScan.kt index 7ea291170..b1fd98233 100644 --- a/multisrc/overrides/madara/offscan/src/OffScan.kt +++ b/multisrc/overrides/madara/offscan/src/OffScan.kt @@ -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" +} diff --git a/multisrc/overrides/madara/origamiorpheans/src/OrigamiOrpheans.kt b/multisrc/overrides/madara/origamiorpheans/src/OrigamiOrpheans.kt new file mode 100644 index 000000000..1ebdfa589 --- /dev/null +++ b/multisrc/overrides/madara/origamiorpheans/src/OrigamiOrpheans.kt @@ -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() +} diff --git a/multisrc/overrides/madara/projetoscanlator/src/ProjetoScanlator.kt b/multisrc/overrides/madara/projetoscanlator/src/ProjetoScanlator.kt index 8bdc9301b..5e705570e 100644 --- a/multisrc/overrides/madara/projetoscanlator/src/ProjetoScanlator.kt +++ b/multisrc/overrides/madara/projetoscanlator/src/ProjetoScanlator.kt @@ -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() +} diff --git a/multisrc/overrides/madara/randomscan/src/RandomScan.kt b/multisrc/overrides/madara/randomscan/src/RandomScan.kt index 3f24c8ad7..abc74a34f 100644 --- a/multisrc/overrides/madara/randomscan/src/RandomScan.kt +++ b/multisrc/overrides/madara/randomscan/src/RandomScan.kt @@ -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() +} diff --git a/multisrc/overrides/madara/shinzooscan/src/ShinzooScan.kt b/multisrc/overrides/madara/shinzooscan/src/ShinzooScan.kt index 98d7f3dfa..1247744dc 100644 --- a/multisrc/overrides/madara/shinzooscan/src/ShinzooScan.kt +++ b/multisrc/overrides/madara/shinzooscan/src/ShinzooScan.kt @@ -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() +} diff --git a/multisrc/overrides/madara/stagecomics/src/StageComics.kt b/multisrc/overrides/madara/stagecomics/src/StageComics.kt index 0b9890b2c..8c40b1ca2 100644 --- a/multisrc/overrides/madara/stagecomics/src/StageComics.kt +++ b/multisrc/overrides/madara/stagecomics/src/StageComics.kt @@ -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) diff --git a/multisrc/overrides/madara/threequeensscanlator/src/ThreeQueensScanlator.kt b/multisrc/overrides/madara/threequeensscanlator/src/ThreeQueensScanlator.kt index 6f62ffa7a..1c3d27d2d 100644 --- a/multisrc/overrides/madara/threequeensscanlator/src/ThreeQueensScanlator.kt +++ b/multisrc/overrides/madara/threequeensscanlator/src/ThreeQueensScanlator.kt @@ -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() +} diff --git a/multisrc/overrides/madara/warqueenscan/src/WarQueenScan.kt b/multisrc/overrides/madara/warqueenscan/src/WarQueenScan.kt index e0981dbc9..23637c6d4 100644 --- a/multisrc/overrides/madara/warqueenscan/src/WarQueenScan.kt +++ b/multisrc/overrides/madara/warqueenscan/src/WarQueenScan.kt @@ -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" +} diff --git a/multisrc/overrides/madara/winterscan/src/WinterScan.kt b/multisrc/overrides/madara/winterscan/src/WinterScan.kt index f8f6d2d58..628425216 100644 --- a/multisrc/overrides/madara/winterscan/src/WinterScan.kt +++ b/multisrc/overrides/madara/winterscan/src/WinterScan.kt @@ -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() +} diff --git a/multisrc/overrides/madara/yuriverso/src/YuriVerso.kt b/multisrc/overrides/madara/yuriverso/src/YuriVerso.kt index a2a67deb9..6716e3311 100644 --- a/multisrc/overrides/madara/yuriverso/src/YuriVerso.kt +++ b/multisrc/overrides/madara/yuriverso/src/YuriVerso.kt @@ -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" +} diff --git a/multisrc/overrides/mmrcms/animaregia/src/AnimaRegia.kt b/multisrc/overrides/mmrcms/animaregia/src/AnimaRegia.kt index 701a4d776..5d5e9b2c8 100644 --- a/multisrc/overrides/mmrcms/animaregia/src/AnimaRegia.kt +++ b/multisrc/overrides/mmrcms/animaregia/src/AnimaRegia.kt @@ -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() } diff --git a/multisrc/overrides/mmrcms/remangas/src/Remangas.kt b/multisrc/overrides/mmrcms/remangas/src/Remangas.kt new file mode 100644 index 000000000..abc5a74b3 --- /dev/null +++ b/multisrc/overrides/mmrcms/remangas/src/Remangas.kt @@ -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() +} diff --git a/multisrc/overrides/wpmangastream/silencescan/src/SilenceScan.kt b/multisrc/overrides/wpmangastream/silencescan/src/SilenceScan.kt index e26137379..d2c6f6960 100644 --- a/multisrc/overrides/wpmangastream/silencescan/src/SilenceScan.kt +++ b/multisrc/overrides/wpmangastream/silencescan/src/SilenceScan.kt @@ -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() } - } } diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/foolslide/FoolSlideGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/foolslide/FoolSlideGenerator.kt index ef6af9d04..fa4d57a5b 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/foolslide/FoolSlideGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/foolslide/FoolSlideGenerator.kt @@ -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"), diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt index c88026d6b..e2a22bcd2 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt @@ -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"), diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mmrcms/MMRCMSSources.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mmrcms/MMRCMSSources.kt index 76d8be86a..cd4636a33 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mmrcms/MMRCMSSources.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mmrcms/MMRCMSSources.kt @@ -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"), diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt index 6ad1f2e91..b79a1e0be 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt @@ -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), diff --git a/src/en/hentaimimi/build.gradle b/src/en/hentaimimi/build.gradle index f8d96929f..ba1b47f1f 100644 --- a/src/en/hentaimimi/build.gradle +++ b/src/en/hentaimimi/build.gradle @@ -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" diff --git a/src/en/hentaimimi/src/eu/kanade/tachiyomi/extension/en/hentaimimi/HentaiMimi.kt b/src/en/hentaimimi/src/eu/kanade/tachiyomi/extension/en/hentaimimi/HentaiMimi.kt index 576936edd..42384bac1 100644 --- a/src/en/hentaimimi/src/eu/kanade/tachiyomi/extension/en/hentaimimi/HentaiMimi.kt +++ b/src/en/hentaimimi/src/eu/kanade/tachiyomi/extension/en/hentaimimi/HentaiMimi.kt @@ -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 {