diff --git a/src/pt/animeshouse/build.gradle b/src/pt/animeshouse/build.gradle new file mode 100644 index 00000000..c34d8b77 --- /dev/null +++ b/src/pt/animeshouse/build.gradle @@ -0,0 +1,9 @@ +ext { + extName = 'AnimesHouse' + extClass = '.AnimesHouse' + themePkg = 'dooplay' + baseUrl = 'https://animeshouse.app/' + overrideVersionCode = 1 +} + +apply from: "$rootDir/common.gradle" diff --git a/src/pt/animeshouse/res/mipmap-hdpi/ic_launcher.png b/src/pt/animeshouse/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 00000000..da44331d Binary files /dev/null and b/src/pt/animeshouse/res/mipmap-hdpi/ic_launcher.png differ diff --git a/src/pt/animeshouse/res/mipmap-mdpi/ic_launcher.png b/src/pt/animeshouse/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 00000000..b31005cc Binary files /dev/null and b/src/pt/animeshouse/res/mipmap-mdpi/ic_launcher.png differ diff --git a/src/pt/animeshouse/res/mipmap-xhdpi/ic_launcher.png b/src/pt/animeshouse/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 00000000..676b49bd Binary files /dev/null and b/src/pt/animeshouse/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/src/pt/animeshouse/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/animeshouse/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 00000000..1b13c3d7 Binary files /dev/null and b/src/pt/animeshouse/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/src/pt/animeshouse/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/animeshouse/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 00000000..58619788 Binary files /dev/null and b/src/pt/animeshouse/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/src/pt/animeshouse/src/eu/kanade/tachiyomi/animeextension/pt/animesgratis/AnimesHouse.kt b/src/pt/animeshouse/src/eu/kanade/tachiyomi/animeextension/pt/animesgratis/AnimesHouse.kt new file mode 100644 index 00000000..01bf557d --- /dev/null +++ b/src/pt/animeshouse/src/eu/kanade/tachiyomi/animeextension/pt/animesgratis/AnimesHouse.kt @@ -0,0 +1,136 @@ +package eu.kanade.tachiyomi.animeextension.pt.animeshouse + +import android.util.Base64 +import androidx.preference.ListPreference +import androidx.preference.PreferenceScreen +import eu.kanade.tachiyomi.animeextension.pt.animeshouse.extractors.AnimeBlackMarketExtractor +import eu.kanade.tachiyomi.animesource.model.SAnime +import eu.kanade.tachiyomi.animesource.model.Video +import eu.kanade.tachiyomi.multisrc.dooplay.DooPlay +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.util.asJsoup +import eu.kanade.tachiyomi.util.parallelCatchingFlatMapBlocking +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element + +class AnimesHouse : DooPlay( + "pt-BR", + "Animes House", + "https://animeshouse.app", +) { + + // ============================== Popular =============================== + override fun popularAnimeRequest(page: Int) = GET("$baseUrl/assistir-anime/", headers) + + // =============================== Search =============================== + override fun searchAnimeSelector() = "div.result-item article div.thumbnail > a" + override fun searchAnimeFromElement(element: Element) = popularAnimeFromElement(element) + + // =========================== Anime Details ============================ + override val additionalInfoSelector = "div.wp-content" + + override fun animeDetailsParse(document: Document): SAnime { + val doc = getRealAnimeDoc(document) + val sheader = doc.selectFirst("div.sheader")!! + return SAnime.create().apply { + setUrlWithoutDomain(doc.location()) + sheader.selectFirst("div.poster > img")!!.let { + thumbnail_url = it.getImageUrl() + title = it.attr("alt").ifEmpty { + sheader.selectFirst("div.data > h1")!!.text() + } + } + + genre = sheader.select("div.data div.sgeneros > a") + .eachText() + .joinToString() + + description = doc.getDescription() + } + } + + // ============================== Episodes ============================== + override fun getSeasonEpisodes(season: Element) = super.getSeasonEpisodes(season).reversed() + + // ============================ Video Links ============================= + override fun videoListParse(response: Response): List