diff --git a/multisrc/overrides/madara/templescanesp/src/TempleScanEsp.kt b/multisrc/overrides/madara/templescanesp/src/TempleScanEsp.kt index e2dc551a4..3c5318afa 100644 --- a/multisrc/overrides/madara/templescanesp/src/TempleScanEsp.kt +++ b/multisrc/overrides/madara/templescanesp/src/TempleScanEsp.kt @@ -1,7 +1,11 @@ package eu.kanade.tachiyomi.extension.es.templescanesp import eu.kanade.tachiyomi.multisrc.madara.Madara +import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import okhttp3.FormBody +import okhttp3.Request import org.jsoup.nodes.Element import java.text.SimpleDateFormat import java.util.Locale @@ -14,13 +18,70 @@ class TempleScanEsp : Madara( ) { override val mangaSubString = "series" - override fun popularMangaSelector() = "div.tab-content-wrap div.loopcont > div" + override fun popularMangaSelector() = "div:has(> div#series-card)" override val popularMangaUrlSelector = "div#series-card a.series-link" + override fun popularMangaNextPageSelector() = "body:not(:has(.no-posts))" override val mangaDetailsSelectorAuthor = "div.post-content_item:contains(Autor) div.summary-content" override val mangaDetailsSelectorArtist = "div.post-content_item:contains(Artista) div.summary-content" override val mangaDetailsSelectorStatus = "div.post-content_item:contains(Estado) div.summary-content" + 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[meta_query][0][0][key]", "_wp_manga_chapter_type") + add("vars[meta_query][0][0][value]", "manga") + add("vars[meta_query][0][relation]", "AND") + add("vars[meta_query][relation]", "AND") + add("vars[post_type]", "wp-manga") + add("vars[post_status]", "publish") + add("vars[meta_key]", metaKey) + 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") + } + + override fun popularMangaFromElement(element: Element): SManga { + val manga = SManga.create() + + with(element) { + select(popularMangaUrlSelector).first()?.let { + manga.setUrlWithoutDomain(it.attr("abs:href")) + } + + select("div.series-box .series-title").first()?.let { + manga.title = it.text() + } + + select("img").first()?.let { + manga.thumbnail_url = imageFromElement(it) + } + } + + return manga + } + override fun chapterFromElement(element: Element): SChapter { val chapter = SChapter.create() 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 3bdb9b423..0ab881553 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 @@ -463,7 +463,7 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Taurus Fansub", "https://taurusfansub.com", "es"), SingleLang("Tecno Scan", "https://tecnoscann.com", "es"), SingleLang("TeenManhua", "https://teenmanhua.com", "en", overrideVersionCode = 1), - SingleLang("TempleScan", "https://templescanesp.com", "es", isNsfw = true, className = "TempleScanEsp"), + SingleLang("TempleScan", "https://templescanesp.com", "es", isNsfw = true, className = "TempleScanEsp", overrideVersionCode = 1), SingleLang("The Beginning After The End", "https://www.thebeginningaftertheend.fr", "fr", overrideVersionCode = 1), SingleLang("The Guild", "https://theguildscans.com", "en"), SingleLang("Time Naight", "https://timenaight.com", "tr"),