diff --git a/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..b0dca4f4e Binary files /dev/null and b/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..faabc8f7e Binary files /dev/null and b/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..37006ed1f Binary files /dev/null and b/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..eeef504a2 Binary files /dev/null and b/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..a0b5d109b Binary files /dev/null and b/multisrc/overrides/mmrcms/gekkouhentai/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mmrcms/gekkouhentai/res/web_hi_res_512.png b/multisrc/overrides/mmrcms/gekkouhentai/res/web_hi_res_512.png new file mode 100644 index 000000000..8ec9354b4 Binary files /dev/null and b/multisrc/overrides/mmrcms/gekkouhentai/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/mmrcms/gekkouhentai/src/GekkouHentai.kt b/multisrc/overrides/mmrcms/gekkouhentai/src/GekkouHentai.kt new file mode 100644 index 000000000..4a2ab4fb7 --- /dev/null +++ b/multisrc/overrides/mmrcms/gekkouhentai/src/GekkouHentai.kt @@ -0,0 +1,35 @@ +package eu.kanade.tachiyomi.extension.pt.gekkouhentai + +import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor +import eu.kanade.tachiyomi.multisrc.mmrcms.MMRCMS +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.model.Page +import okhttp3.OkHttpClient +import okhttp3.Request +import java.util.concurrent.TimeUnit + +class GekkouHentai : MMRCMS( + "Gekkou Hentai", + "https://hentai.gekkouscans.com.br", + "pt-BR" +) { + + override val client: OkHttpClient = super.client.newBuilder() + .addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS)) + .build() + + override fun chapterListSelector() = "ul.domaintld > li.li:has(a[href^='$baseUrl'])" + + override fun imageRequest(page: Page): Request { + val newHeaders = headersBuilder() + .add("Accept", ACCEPT_IMAGE) + .add("Referer", page.url) + .build() + + return GET(page.imageUrl!!, newHeaders) + } + + companion object { + private const val ACCEPT_IMAGE = "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8" + } +} diff --git a/multisrc/overrides/mmrcms/gekkouscan/src/GekkouScans.kt b/multisrc/overrides/mmrcms/gekkouscan/src/GekkouScans.kt index 5f94704fc..e8f029ee7 100644 --- a/multisrc/overrides/mmrcms/gekkouscan/src/GekkouScans.kt +++ b/multisrc/overrides/mmrcms/gekkouscan/src/GekkouScans.kt @@ -18,7 +18,7 @@ class GekkouScans : MMRCMS( .addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS)) .build() - override fun chapterListSelector() = "ul.domaintld > li.li" + override fun chapterListSelector() = "ul.domaintld > li.li:has(a[href^='$baseUrl'])" override fun imageRequest(page: Page): Request { val newHeaders = headersBuilder() 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 70cab3bf2..547c5b490 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 @@ -63,7 +63,8 @@ class MMRCMSSources { SourceData.Single("Op-VF", "https://www.op-vf.com", "fr", className = "OpVF"), SourceData.Single("FR Scan", "https://frscan.cc", "fr", overrideVersionCode = 1), SourceData.Single("Ama Scans", "https://amascan.com", "pt-BR", isNsfw = true, overrideVersionCode = 2), - SourceData.Single("Gekkou Scans", "https://gekkou.com.br", "pt-BR", isNsfw = true, pkgName = "gekkouscan", overrideVersionCode = 10), + SourceData.Single("Gekkou Scans", "https://gekkou.com.br", "pt-BR", isNsfw = true, pkgName = "gekkouscan", overrideVersionCode = 11), + SourceData.Single("Gekkou Hentai", "https://hentai.gekkouscans.com.br", "pt-BR", isNsfw = true), SourceData.Single("White Cloud Pavilion", "https://whitecloudpavilion.com/manga/patreon", "en"), // NOTE: THIS SOURCE CONTAINS A CUSTOM LANGUAGE SYSTEM (which will be ignored)! SourceData.Single("HentaiShark", "https://www.hentaishark.com", "all", isNsfw = true), diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mmrcms/SourceData.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mmrcms/SourceData.kt index b54fd4b67..fff785026 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mmrcms/SourceData.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mmrcms/SourceData.kt @@ -1,7 +1,7 @@ package eu.kanade.tachiyomi.multisrc.mmrcms // GENERATED FILE, DO NOT MODIFY! -// Generated Thu, 3 Mar 2022 23:32:47 GMT +// Generated Sun, 16 Apr 2022 14:18:00 GMT object SourceData { fun giveMetaData(url: String) = when (url) { @@ -38,6 +38,7 @@ object SourceData { "https://www.hentaishark.com" -> """{"name":"HentaiShark","base_url":"https://www.hentaishark.com","supports_latest":true,"item_url":"https://www.hentaishark.com/manga/","categories":[{"id":"1","name":"Doujinshi"},{"id":"2","name":"Manga"},{"id":"3","name":"Western"},{"id":"4","name":"non-h"},{"id":"5","name":"imageset"},{"id":"6","name":"artistcg"},{"id":"7","name":"misc"}]}""" "https://amascan.com" -> """{"name":"Ama Scans","base_url":"https://amascan.com","supports_latest":true,"item_url":"https://amascan.com/manga/","categories":[{"id":"1","name":"Ação"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comédia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasia"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harém"},{"id":"10","name":"Histórico"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Artes Marciais"},{"id":"14","name":"Adulto"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mistério"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psicológico"},{"id":"19","name":"Romance"},{"id":"20","name":"Vida Escolar"},{"id":"21","name":"Ficcção Científica"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shounen"},{"id":"25","name":"Slice of Life"},{"id":"26","name":"Esportes"},{"id":"27","name":"Sobrenatural"},{"id":"28","name":"Tragédia"},{"id":"29","name":"Hentai"},{"id":"30","name":"Terror"},{"id":"31","name":"LGBTQQICAPF2K+"},{"id":"32","name":"Ação"},{"id":"33","name":"Aventura"},{"id":"34","name":"Comédia"},{"id":"35","name":"Doujinshi"},{"id":"36","name":"Drama"},{"id":"37","name":"Ecchi"},{"id":"38","name":"Fantasia"},{"id":"39","name":"Gender Bender"},{"id":"40","name":"Harém"},{"id":"41","name":"Histórico"},{"id":"42","name":"Horror"},{"id":"43","name":"Josei"},{"id":"44","name":"Artes Marciais"},{"id":"45","name":"Adulto"},{"id":"46","name":"Mecha"},{"id":"47","name":"Mistério"},{"id":"48","name":"One Shot"},{"id":"49","name":"Psicológico"},{"id":"50","name":"Romance"},{"id":"51","name":"Vida Escolar"},{"id":"52","name":"Ficcção Científica"},{"id":"53","name":"Seinen"},{"id":"54","name":"Shoujo"},{"id":"55","name":"Shounen"},{"id":"56","name":"Slice of Life"},{"id":"57","name":"Esportes"},{"id":"58","name":"Sobrenatural"},{"id":"59","name":"Tragédia"},{"id":"60","name":"Hentai"},{"id":"61","name":"Terror"},{"id":"62","name":"LGBTQQICAPF2K+"}]}""" "https://gekkou.com.br" -> """{"name":"Gekkou Scans","base_url":"https://gekkou.com.br","supports_latest":true,"item_url":"https://gekkou.com.br/manga/","categories":[{"id":"1","name":"Ação"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comédia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasia"},{"id":"8","name":"Harém"},{"id":"9","name":"Histórico"},{"id":"10","name":"Horror"},{"id":"11","name":"Josei"},{"id":"12","name":"Martial Arts"},{"id":"13","name":"Adulto"},{"id":"14","name":"Mecha"},{"id":"15","name":"Mistério"},{"id":"16","name":"One Shot"},{"id":"17","name":"Psicológico"},{"id":"18","name":"Romance"},{"id":"19","name":"Escolar"},{"id":"20","name":"Sci-fi"},{"id":"21","name":"Seinen"},{"id":"22","name":"Shoujo"},{"id":"23","name":"Shoujo Ai"},{"id":"24","name":"Shounen"},{"id":"25","name":"Shounen Ai"},{"id":"26","name":"Vida Cotidiana"},{"id":"27","name":"Esportes"},{"id":"28","name":"Sobrenatural"},{"id":"29","name":"Tragédia"},{"id":"30","name":"Yaoi"},{"id":"31","name":"Yuri"},{"id":"32","name":"Webtoon"},{"id":"33","name":"Superpoderes"}]}""" + "https://hentai.gekkouscans.com.br" -> """{"name":"Gekkou Hentai","base_url":"https://hentai.gekkouscans.com.br","supports_latest":true,"item_url":"https://hentai.gekkouscans.com.br/manga/","categories":[{"id":"1","name":"Ação"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comédia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasia"},{"id":"9","name":"Harém"},{"id":"10","name":"Histórico"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Adulto"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mistério"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psicológico"},{"id":"19","name":"Romance"},{"id":"20","name":"Escolar"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Vida Cotidiana"},{"id":"28","name":"Esportes"},{"id":"29","name":"Sobrenatural"},{"id":"30","name":"Tragédia"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Webtoon"},{"id":"34","name":"Superpoderes"}]}""" "https://whitecloudpavilion.com/manga/patreon" -> """{"name":"White Cloud Pavilion","base_url":"https://whitecloudpavilion.com/manga/patreon","supports_latest":true,"item_url":"https://whitecloudpavilion.com/manga/patreon/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}]}""" else -> "" }