diff --git a/src/pt/darkmahou/build.gradle b/src/pt/darkmahou/build.gradle new file mode 100644 index 00000000..b84e4d91 --- /dev/null +++ b/src/pt/darkmahou/build.gradle @@ -0,0 +1,14 @@ +ext { + extName = 'DarkMahou' + extClass = '.DarkMahou' + themePkg = 'animestream' + baseUrl = 'https://darkmahou.org' + overrideVersionCode = 1 +} + +apply from: "$rootDir/common.gradle" + +dependencies { + implementation(project(":lib:unpacker")) + implementation(project(":lib:playlist-utils")) +} \ No newline at end of file diff --git a/src/pt/darkmahou/res/mipmap-hdpi/ic_launcher.png b/src/pt/darkmahou/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 00000000..c74ad055 Binary files /dev/null and b/src/pt/darkmahou/res/mipmap-hdpi/ic_launcher.png differ diff --git a/src/pt/darkmahou/res/mipmap-mdpi/ic_launcher.png b/src/pt/darkmahou/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 00000000..13cc837a Binary files /dev/null and b/src/pt/darkmahou/res/mipmap-mdpi/ic_launcher.png differ diff --git a/src/pt/darkmahou/res/mipmap-xhdpi/ic_launcher.png b/src/pt/darkmahou/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 00000000..7326c02f Binary files /dev/null and b/src/pt/darkmahou/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/src/pt/darkmahou/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/darkmahou/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 00000000..5dc24ac1 Binary files /dev/null and b/src/pt/darkmahou/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/src/pt/darkmahou/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/darkmahou/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 00000000..b5ef92e0 Binary files /dev/null and b/src/pt/darkmahou/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/src/pt/darkmahou/src/eu/kanade/tachiyomi/animeextension/pt/darkmahou/DarkMahou.kt b/src/pt/darkmahou/src/eu/kanade/tachiyomi/animeextension/pt/darkmahou/DarkMahou.kt new file mode 100644 index 00000000..02d033e3 --- /dev/null +++ b/src/pt/darkmahou/src/eu/kanade/tachiyomi/animeextension/pt/darkmahou/DarkMahou.kt @@ -0,0 +1,69 @@ +package eu.kanade.tachiyomi.animeextension.pt.darkmahou + +import android.util.Log +import eu.kanade.tachiyomi.animeextension.pt.darkmahou.extractors.DarkMahouExtractor +import eu.kanade.tachiyomi.animesource.model.SAnime +import eu.kanade.tachiyomi.animesource.model.SEpisode +import eu.kanade.tachiyomi.animesource.model.Video +import eu.kanade.tachiyomi.multisrc.animestream.AnimeStream +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Response +import org.jsoup.nodes.Element + +class DarkMahou : AnimeStream( + "pt-BR", + "DarkMahou (Torrent)", + "https://darkmahou.org", +) { + override fun headersBuilder() = super.headersBuilder().add("Referer", baseUrl) + + override val animeListUrl = "$baseUrl/animes" + + // =============================== Search =============================== + override fun searchAnimeFromElement(element: Element): SAnime { + return SAnime.create().apply { + setUrlWithoutDomain(element.attr("abs:href")) + title = element.selectFirst("div.tt span.ntitle")!!.ownText() + thumbnail_url = element.selectFirst("img")?.getImageUrl() + } + } + + // ============================== Filters =============================== + override val fetchFilters = false + + override val filtersSelector = "form.filters > div.filter > ul" + + // ============================== Episodes ============================== + override fun episodeListSelector() = "div.mctnx div.soraddl" + + override fun episodeListParse(response: Response): List { + return super.episodeListParse(response).reversed() + } + + override fun episodeFromElement(element: Element): SEpisode { + return SEpisode.create().apply { + element.selectFirst(".sorattl h3")!!.text().let { + name = it + episode_number = it.substringAfterLast(" ").toFloatOrNull() ?: 0F + setUrlWithoutDomain( + element.ownerDocument()!!.location() + .toHttpUrl() + .newBuilder() + .fragment(it) + .toString(), + ) + } + } + } + + // ============================ Video Links ============================= + override val prefQualityValues = arrayOf("1080p", "720p", "480p", "360p", "240p") + override val prefQualityEntries = prefQualityValues + + private val darkmahouExtractor by lazy { DarkMahouExtractor(client, headers) } + + override suspend fun getVideoList(episode: SEpisode): List