diff --git a/multisrc/overrides/madara/mhscans/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/mhscans/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..4e4cb1d61 Binary files /dev/null and b/multisrc/overrides/madara/mhscans/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madara/mhscans/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/mhscans/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..bdd2eaab0 Binary files /dev/null and b/multisrc/overrides/madara/mhscans/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madara/mhscans/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/mhscans/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..e5fc7a34a Binary files /dev/null and b/multisrc/overrides/madara/mhscans/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madara/mhscans/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/mhscans/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..523897a6e Binary files /dev/null and b/multisrc/overrides/madara/mhscans/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madara/mhscans/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/mhscans/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..cb1038b65 Binary files /dev/null and b/multisrc/overrides/madara/mhscans/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madara/mhscans/src/MHScans.kt b/multisrc/overrides/madara/mhscans/src/MHScans.kt new file mode 100644 index 000000000..1f1a4be99 --- /dev/null +++ b/multisrc/overrides/madara/mhscans/src/MHScans.kt @@ -0,0 +1,60 @@ +package eu.kanade.tachiyomi.extension.es.mhscans + +import eu.kanade.tachiyomi.multisrc.madara.Madara +import eu.kanade.tachiyomi.network.POST +import eu.kanade.tachiyomi.network.interceptor.rateLimit +import okhttp3.FormBody +import okhttp3.OkHttpClient +import okhttp3.Request +import java.text.SimpleDateFormat +import java.util.Locale +import java.util.concurrent.TimeUnit + +class MHScans : Madara( + "MHScans", + "https://mhscans.com", + "es", + dateFormat = SimpleDateFormat("dd 'de' MMMM 'de' yyyy", Locale("es")), +) { + override val client: OkHttpClient = super.client.newBuilder() + .rateLimit(1, 3, TimeUnit.SECONDS) + .build() + + override val useNewChapterEndpoint = true + + override fun popularMangaNextPageSelector() = "body:not(:has(.no-posts))" + + private fun loadMoreRequest(page: Int, metaKey: String): Request { + val formBody = FormBody.Builder().apply { + add("action", "madara_load_more") + add("page", page.toString()) + add("template", "madara-core/content/content-archive") + add("vars[paged]", "1") + add("vars[orderby]", "meta_value_num") + add("vars[template]", "archive") + add("vars[sidebar]", "full") + add("vars[post_type]", "wp-manga") + add("vars[post_status]", "publish") + add("vars[meta_key]", metaKey) + add("vars[order]", "desc") + add("vars[meta_query][relation]", "AND") + add("vars[manga_archives_item_layout]", "big_thumbnail") + }.build() + + val xhrHeaders = headersBuilder() + .add("Content-Length", formBody.contentLength().toString()) + .add("Content-Type", formBody.contentType().toString()) + .add("X-Requested-With", "XMLHttpRequest") + .build() + + return POST("$baseUrl/wp-admin/admin-ajax.php", xhrHeaders, formBody) + } + + override fun popularMangaRequest(page: Int): Request { + return loadMoreRequest(page - 1, "_wp_manga_views") + } + + override fun latestUpdatesRequest(page: Int): Request { + return loadMoreRequest(page - 1, "_latest_update") + } +} 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 1b090f2af..bf9569ba7 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 @@ -352,6 +352,7 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("ManyToon.me", "https://manytoon.me", "en", isNsfw = true, className = "ManyToonMe", overrideVersionCode = 5), SingleLang("ManyToonClub", "https://manytoon.club", "ko", isNsfw = true, overrideVersionCode = 2), SingleLang("MG Komik", "https://mgkomik.id", "id", overrideVersionCode = 11), + SingleLang("MHScans", "https://mhscans.com", "es"), SingleLang("Midnight Mess Scans", "https://midnightmess.org", "en", isNsfw = true, overrideVersionCode = 6), SingleLang("MidnightManga", "http://midnightmanga.com", "es"), SingleLang("Milftoon", "https://milftoon.xxx", "en", isNsfw = true, overrideVersionCode = 2),