diff --git a/multisrc/overrides/dooplay/donghuax/additional.gradle b/multisrc/overrides/dooplay/donghuax/additional.gradle deleted file mode 100644 index b82c0aa22..000000000 --- a/multisrc/overrides/dooplay/donghuax/additional.gradle +++ /dev/null @@ -1,3 +0,0 @@ -dependencies { - implementation(project(':lib-dailymotion-extractor')) -} diff --git a/multisrc/overrides/dooplay/donghuax/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/dooplay/donghuax/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 42fe43168..000000000 Binary files a/multisrc/overrides/dooplay/donghuax/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/dooplay/donghuax/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/dooplay/donghuax/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 32277469f..000000000 Binary files a/multisrc/overrides/dooplay/donghuax/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/dooplay/donghuax/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/dooplay/donghuax/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 6c979cd3d..000000000 Binary files a/multisrc/overrides/dooplay/donghuax/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/dooplay/donghuax/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/dooplay/donghuax/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 37ac4ddba..000000000 Binary files a/multisrc/overrides/dooplay/donghuax/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/dooplay/donghuax/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/dooplay/donghuax/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 2b054f6aa..000000000 Binary files a/multisrc/overrides/dooplay/donghuax/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/dooplay/donghuax/res/web_hi_res_512.png b/multisrc/overrides/dooplay/donghuax/res/web_hi_res_512.png deleted file mode 100644 index eee3271fd..000000000 Binary files a/multisrc/overrides/dooplay/donghuax/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/dooplay/donghuax/src/DonghuaX.kt b/multisrc/overrides/dooplay/donghuax/src/DonghuaX.kt deleted file mode 100644 index a3e972f49..000000000 --- a/multisrc/overrides/dooplay/donghuax/src/DonghuaX.kt +++ /dev/null @@ -1,359 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.pt.donghuax - -import androidx.preference.ListPreference -import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.animesource.model.AnimeFilter -import eu.kanade.tachiyomi.animesource.model.AnimeFilterList -import eu.kanade.tachiyomi.animesource.model.AnimesPage -import eu.kanade.tachiyomi.animesource.model.SEpisode -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.lib.dailymotionextractor.DailymotionExtractor -import eu.kanade.tachiyomi.multisrc.dooplay.DooPlay -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.POST -import eu.kanade.tachiyomi.util.asJsoup -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.async -import kotlinx.coroutines.awaitAll -import kotlinx.coroutines.runBlocking -import kotlinx.serialization.Serializable -import kotlinx.serialization.decodeFromString -import kotlinx.serialization.json.Json -import okhttp3.FormBody -import okhttp3.Headers -import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.Request -import okhttp3.Response -import org.jsoup.nodes.Element -import uy.kohesive.injekt.injectLazy - -class DonghuaX : DooPlay( - "pt-BR", - "DonghuaX", - "https://donghuax.com", -) { - private val json: Json by injectLazy() - - // ============================== Popular =============================== - - override fun popularAnimeSelector(): String = "div > aside article.w_item_a" - - // =============================== Latest =============================== - - override fun latestUpdatesSelector(): String = "div#archive-content > article.item" - - override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/donghua/page/$page/") - - override fun latestUpdatesNextPageSelector(): String = "div.pagination > span.current + a" - - // ============================== Episodes ============================== - - override fun episodeListSelector() = "ul.episodios > li" - - override fun episodeListParse(response: Response): List { - return if (response.request.url.pathSegments.first().contains("movie", true)) { - val document = response.use { getRealAnimeDoc(it.asJsoup()) } - listOf( - SEpisode.create().apply { - episode_number = 0F - date_upload = document.selectFirst("div.extra > span.date") - ?.text() - ?.toDate() ?: 0L - name = "Movie" - setUrlWithoutDomain(response.request.url.toString()) - }, - ) - } else { - response.use { - getRealAnimeDoc(it.asJsoup()) - }.select(episodeListSelector()).map(::episodeFromElement).reversed() - } - } - - override fun episodeFromElement(element: Element): SEpisode { - return SEpisode.create().apply { - val epNum = element.selectFirst("div.numerando")!!.text() - .trim() - .let(episodeNumberRegex::find) - ?.groupValues - ?.last() ?: "0" - val href = element.selectFirst("a[href]")!! - val episodeName = href.ownText() - episode_number = epNum.toFloatOrNull() ?: 0F - date_upload = element.selectFirst(episodeDateSelector) - ?.text() - ?.toDate() ?: 0L - name = episodeName - setUrlWithoutDomain(href.attr("href")) - } - } - - // =============================== Search =============================== - - override fun searchAnimeParse(response: Response): AnimesPage { - val document = response.asJsoup() - val url = response.request.url.toString() - - val animes = when { - "/?s=" in url -> { // Search by name. - document.select(searchAnimeSelector()).map { element -> - searchAnimeFromElement(element) - } - } - else -> { // Search by some kind of filter, like genres or popularity. - document.select("div.items > article.item").map { element -> - latestUpdatesFromElement(element) - } - } - } - - val hasNextPage = document.selectFirst(searchAnimeNextPageSelector()) != null - return AnimesPage(animes, hasNextPage) - } - - // ============================== Filters =============================== - - override val fetchGenres = false - - override fun getFilterList(): AnimeFilterList = AnimeFilterList( - AnimeFilter.Header(genreFilterHeader), - GenreFilter(), - YearFilter(), - LetterFilter(), - ) - - private class GenreFilter : UriPartFilter( - "Gêneros", - arrayOf( - Pair("", ""), - Pair("Ação", "genero/acao/"), - Pair("Artes Marciais", "genero/artes-marciais/"), - Pair("Aventura", "genero/aventura/"), - Pair("BL", "genero/bl/"), - Pair("Comédia", "genero/comedia/"), - Pair("Drama", "genero/drama/"), - Pair("Escolar", "genero/escolar/"), - Pair("Fantasia", "genero/fantasia/"), - Pair("Ficção Científica", "genero/ficcao-cientifica/"), - Pair("Gourmet", "genero/gourmet/"), - Pair("Harem", "genero/harem/"), - Pair("Histórico", "genero/historico/"), - Pair("Mistério", "genero/misterio/"), - Pair("Mitologia", "genero/mitologia/"), - Pair("Reencarnação", "genero/reencarnacao/"), - Pair("Romance", "genero/romance/"), - Pair("Slice of Life", "genero/slice-of-life/"), - Pair("Sobrenatural", "genero/sobrenatural/"), - Pair("Suspense", "genero/suspense/"), - Pair("Vampiro", "genero/vampiro/"), - Pair("Viagem no Tempo", "genero/viagem-no-tempo/"), - Pair("Video Game", "genero/video-game/"), - ), - ) - - private class YearFilter : UriPartFilter( - "Anos", - arrayOf( - Pair("", ""), - Pair("2023", "ano/2023/"), - Pair("2022", "ano/2022/"), - Pair("2021", "ano/2021/"), - Pair("2020", "ano/2020/"), - Pair("2019", "ano/2019/"), - Pair("2018", "ano/2018/"), - Pair("2017", "ano/2017/"), - Pair("2016", "ano/2016/"), - Pair("2015", "ano/2015/"), - Pair("2014", "ano/2014/"), - ), - ) - - private class LetterFilter : UriPartFilter( - "Letra", - arrayOf( - Pair("", ""), - Pair("#", "letra/0-9"), - Pair("A", "letra/a"), - Pair("B", "letra/b"), - Pair("C", "letra/c"), - Pair("D", "letra/d"), - Pair("E", "letra/e"), - Pair("F", "letra/f"), - Pair("G", "letra/g"), - Pair("H", "letra/h"), - Pair("I", "letra/i"), - Pair("J", "letra/j"), - Pair("K", "letra/k"), - Pair("L", "letra/l"), - Pair("M", "letra/m"), - Pair("N", "letra/n"), - Pair("O", "letra/o"), - Pair("P", "letra/p"), - Pair("Q", "letra/q"), - Pair("R", "letra/r"), - Pair("S", "letra/s"), - Pair("T", "letra/t"), - Pair("U", "letra/u"), - Pair("V", "letra/v"), - Pair("W", "letra/w"), - Pair("X", "letra/x"), - Pair("Y", "letra/y"), - Pair("Z", "letra/z"), - ), - ) - - // ============================ Video Links ============================= - - override fun videoListParse(response: Response): List