From 4db4581cdf41538d8dc20fd4a0301485575b2856 Mon Sep 17 00:00:00 2001 From: Arjix <53124886+ArjixWasTaken@users.noreply.github.com> Date: Sun, 5 Sep 2021 18:19:25 +0300 Subject: [PATCH] added homepage for tenshi.moe --- .../animeproviders/TenshiProvider.kt | 55 ++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/animeproviders/TenshiProvider.kt b/app/src/main/java/com/lagradost/cloudstream3/animeproviders/TenshiProvider.kt index 0976cb91..00ec230c 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/animeproviders/TenshiProvider.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/animeproviders/TenshiProvider.kt @@ -28,7 +28,10 @@ class TenshiProvider : MainAPI() { get() = "Tenshi.moe" override val hasQuickSearch: Boolean get() = false - + override val hasMainPage: Boolean + get() = true + + override val supportedTypes: Set get() = setOf(TvType.Anime, TvType.AnimeMovie, TvType.ONA) @@ -48,6 +51,56 @@ class TenshiProvider : MainAPI() { false } } + + override fun getMainPage(): HomePageResponse { + val items = ArrayList() + val soup = Jsoup.parse(khttp.get(mainUrl).text) + for (section in soup.select("#content > section")) { + try { + if (section.attr("id") == "toplist-tabs") { + for (top in section.select(".tab-content > [role=\"tabpanel\"]")) { + val title = "Top of the " + top.attr("id").split("-")[1].capitalize(Locale.UK) + val anime = top.select("li > a").map { + AnimeSearchResponse( + it.selectFirst(".thumb-title").text(), + fixUrl(it.attr("href")), + this.name, + TvType.Anime, + it.selectFirst("img").attr("src"), + null, + null, + EnumSet.of(DubStatus.Subbed), + null, + null + ) + } + items.add(HomePageList(title, anime)) + } + } else { + val title = section.selectFirst("h2").text() + val anime = section.select("li > a").map { + AnimeSearchResponse( + it.selectFirst(".thumb-title").text(), + fixUrl(it.attr("href")), + this.name, + TvType.Anime, + it.selectFirst("img").attr("src"), + null, + null, + EnumSet.of(DubStatus.Subbed), + null, + null + ) + } + items.add(HomePageList(title, anime)) + } + } catch (e: Exception) { + e.printStackTrace() + } + } + if(items.size <= 0) throw ErrorLoadingException() + return HomePageResponse(items) + } private fun getIsMovie(type: String, id: Boolean = false): Boolean { if (!id) return type == "Movie"