diff --git a/src/fr/animevostfr/build.gradle b/src/fr/animevostfr/build.gradle deleted file mode 100644 index 61b89bbf..00000000 --- a/src/fr/animevostfr/build.gradle +++ /dev/null @@ -1,7 +0,0 @@ -ext { - extName = 'AnimeVostFr' - extClass = '.AnimeVostFr' - extVersionCode = 2 -} - -apply from: "$rootDir/common.gradle" diff --git a/src/fr/animevostfr/res/mipmap-hdpi/ic_launcher.png b/src/fr/animevostfr/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 30bfc959..00000000 Binary files a/src/fr/animevostfr/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/fr/animevostfr/res/mipmap-mdpi/ic_launcher.png b/src/fr/animevostfr/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 5b74bc50..00000000 Binary files a/src/fr/animevostfr/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/fr/animevostfr/res/mipmap-xhdpi/ic_launcher.png b/src/fr/animevostfr/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index fabbe6cf..00000000 Binary files a/src/fr/animevostfr/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/fr/animevostfr/res/mipmap-xxhdpi/ic_launcher.png b/src/fr/animevostfr/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 64b665fc..00000000 Binary files a/src/fr/animevostfr/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/fr/animevostfr/res/mipmap-xxxhdpi/ic_launcher.png b/src/fr/animevostfr/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index e523cf01..00000000 Binary files a/src/fr/animevostfr/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/fr/animevostfr/res/web_hi_res_512.png b/src/fr/animevostfr/res/web_hi_res_512.png deleted file mode 100644 index e411ed58..00000000 Binary files a/src/fr/animevostfr/res/web_hi_res_512.png and /dev/null differ diff --git a/src/fr/animevostfr/src/eu/kanade/tachiyomi/animeextension/fr/animevostfr/AnimeVostFr.kt b/src/fr/animevostfr/src/eu/kanade/tachiyomi/animeextension/fr/animevostfr/AnimeVostFr.kt deleted file mode 100644 index 94a29f3d..00000000 --- a/src/fr/animevostfr/src/eu/kanade/tachiyomi/animeextension/fr/animevostfr/AnimeVostFr.kt +++ /dev/null @@ -1,410 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.fr.animevostfr - -import android.app.Application -import android.content.SharedPreferences -import android.util.Log -import androidx.preference.ListPreference -import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.animeextension.fr.animevostfr.extractors.CdopeExtractor -import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource -import eu.kanade.tachiyomi.animesource.model.AnimeFilter -import eu.kanade.tachiyomi.animesource.model.AnimeFilterList -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.animesource.online.ParsedAnimeHttpSource -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.Headers -import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.Request -import okhttp3.Response -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get - -class AnimeVostFr : ConfigurableAnimeSource, ParsedAnimeHttpSource() { - - override val name = "AnimeVostFr" - - override val baseUrl = "https://animevostfr.tv" - - override val lang = "fr" - - override val supportsLatest = true - - private val preferences: SharedPreferences by lazy { - Injekt.get().getSharedPreferences("source_$id", 0x0000) - } - - override fun popularAnimeRequest(page: Int) = GET("$baseUrl/filter-advance/page/$page/") - - override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/filter-advance/page/$page/?status=ongoing") - - override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request { - val filterList = if (filters.isEmpty()) { - return GET("$baseUrl/?s=$query") - } else { - filters - } - val genreFilter = filterList.find { it is GenreFilter } as GenreFilter - val typeFilter = filterList.find { it is TypeFilter } as TypeFilter - val yearFilter = filterList.find { it is YearFilter } as YearFilter - val statusFilter = filterList.find { it is StatusFilter } as StatusFilter - val langFilter = filterList.find { it is LangFilter } as LangFilter - - val filterPath = if (query.isEmpty()) "/filter-advance" else "" - - var urlBuilder = "$baseUrl$filterPath/page/$page/".toHttpUrl().newBuilder() - - when { - query.isNotEmpty() -> - urlBuilder = - urlBuilder.addQueryParameter("s", query) - typeFilter.state != 0 -> - urlBuilder = - urlBuilder.addQueryParameter("topic", typeFilter.toUriPart()) - genreFilter.state != 0 -> - urlBuilder = - urlBuilder.addQueryParameter("genre", genreFilter.toUriPart()) - yearFilter.state != 0 -> - urlBuilder = - urlBuilder.addQueryParameter("years", yearFilter.toUriPart()) - statusFilter.state != 0 -> - urlBuilder = - urlBuilder.addQueryParameter("status", statusFilter.toUriPart()) - langFilter.state != 0 -> - urlBuilder = - urlBuilder.addQueryParameter("typesub", langFilter.toUriPart()) - } - - return GET(urlBuilder.build().toString()) - } - - override fun searchAnimeSelector() = "div.ml-item" - - override fun searchAnimeNextPageSelector() = "ul.pagination li:not(.active):last-child" - - override fun searchAnimeFromElement(element: Element): SAnime { - val a = element.select("a:has(img)") - val img = a.select("img") - val h2 = a.select("span.mli-info > h2") - return SAnime.create().apply { - title = h2.text() - setUrlWithoutDomain(a.attr("href")) - thumbnail_url = img.attr("data-original") - } - } - - override fun popularAnimeSelector() = searchAnimeSelector() - override fun latestUpdatesSelector() = searchAnimeSelector() - override fun popularAnimeNextPageSelector() = searchAnimeNextPageSelector() - override fun latestUpdatesNextPageSelector() = searchAnimeNextPageSelector() - override fun popularAnimeFromElement(element: Element) = searchAnimeFromElement(element) - override fun latestUpdatesFromElement(element: Element) = searchAnimeFromElement(element) - - override fun animeDetailsParse(response: Response): SAnime { - val document = response.asJsoup() - return SAnime.create().apply { - title = document.select("h1[itemprop=name]").text() - status = parseStatus( - document.select( - "div.mvici-right > p:contains(Statut) > a:last-child", - ).text(), - ) - genre = document.select("div.mvici-left > p:contains(Genres)") - .text().substringAfter("Genres: ") - thumbnail_url = document.select("div.thumb > img") - .firstOrNull()?.attr("data-lazy-src") - description = document.select("div[itemprop=description]") - .firstOrNull()?.wholeText()?.trim() - ?.substringAfter("\n") - } - } - - override fun episodeListParse(response: Response): List { - val document = response.asJsoup() - val type = document - .select("div.mvici-right > p:contains(Type) > a:last-child") - .text() - return if (type == "MOVIE") { - return listOf( - SEpisode.create().apply { - url = response.request.url.toString() - name = "Movie" - }, - ) - } else { - document.select(episodeListSelector()).map { episodeFromElement(it) }.reversed() - } - } - - override fun episodeListSelector() = "div#seasonss > div.les-title > a" - - override fun episodeFromElement(element: Element): SEpisode { - val number = element.text() - .substringAfterLast("-episode-") - .substringBefore("-") - return SEpisode.create().apply { - setUrlWithoutDomain(element.attr("href")) - name = "Épisode $number" - episode_number = number.toFloat() - } - } - - override suspend fun getVideoList(episode: SEpisode): List