diff --git a/src/pt/animesaria/AndroidManifest.xml b/src/pt/animesaria/AndroidManifest.xml
deleted file mode 100644
index 8abc9cb9f..000000000
--- a/src/pt/animesaria/AndroidManifest.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/pt/animesaria/build.gradle b/src/pt/animesaria/build.gradle
deleted file mode 100644
index fea3742d3..000000000
--- a/src/pt/animesaria/build.gradle
+++ /dev/null
@@ -1,7 +0,0 @@
-ext {
- extName = 'Animes Aria'
- extClass = '.AnimesAria'
- extVersionCode = 2
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/pt/animesaria/res/mipmap-hdpi/ic_launcher.png b/src/pt/animesaria/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 44beffdb4..000000000
Binary files a/src/pt/animesaria/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/pt/animesaria/res/mipmap-mdpi/ic_launcher.png b/src/pt/animesaria/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index e81b08685..000000000
Binary files a/src/pt/animesaria/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/pt/animesaria/res/mipmap-xhdpi/ic_launcher.png b/src/pt/animesaria/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 36ea0ab4a..000000000
Binary files a/src/pt/animesaria/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/pt/animesaria/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/animesaria/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 13dbec3a0..000000000
Binary files a/src/pt/animesaria/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/pt/animesaria/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/animesaria/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index a834a4faa..000000000
Binary files a/src/pt/animesaria/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/pt/animesaria/src/eu/kanade/tachiyomi/animeextension/pt/animesaria/AnimesAria.kt b/src/pt/animesaria/src/eu/kanade/tachiyomi/animeextension/pt/animesaria/AnimesAria.kt
deleted file mode 100644
index 9db48111a..000000000
--- a/src/pt/animesaria/src/eu/kanade/tachiyomi/animeextension/pt/animesaria/AnimesAria.kt
+++ /dev/null
@@ -1,186 +0,0 @@
-package eu.kanade.tachiyomi.animeextension.pt.animesaria
-
-import eu.kanade.tachiyomi.animeextension.pt.animesaria.extractors.LinkfunBypasser
-import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
-import eu.kanade.tachiyomi.animesource.model.AnimesPage
-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.network.awaitSuccess
-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
-
-class AnimesAria : ParsedAnimeHttpSource() {
-
- override val name = "Animes Aria"
-
- override val baseUrl = "https://animesaria.com"
-
- override val lang = "pt-BR"
-
- override val supportsLatest = true
-
- // ============================== Popular ===============================
- override fun popularAnimeRequest(page: Int) = GET("$baseUrl/novos/animes?page=$page")
-
- override fun popularAnimeSelector() = "div.item > a"
-
- override fun popularAnimeFromElement(element: Element) = SAnime.create().apply {
- setUrlWithoutDomain(element.attr("href"))
- title = element.attr("title")
- thumbnail_url = element.selectFirst("img")!!.attr("src")
- }
-
- override fun popularAnimeNextPageSelector() = latestUpdatesNextPageSelector()
-
- // =============================== Latest ===============================
- override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/novos/episodios?page=$page")
-
- override fun latestUpdatesSelector() = "div.item > div.pos-rlt"
-
- override fun latestUpdatesFromElement(element: Element) = SAnime.create().apply {
- thumbnail_url = element.selectFirst("img")?.attr("src")
- val ahref = element.selectFirst("a")!!
- title = ahref.attr("title")
- setUrlWithoutDomain(ahref.attr("href").substringBefore("/episodio/"))
- }
-
- override fun latestUpdatesNextPageSelector() = "a:containsOwn(Próximo):not(.disabled)"
-
- // =============================== Search ===============================
- override fun getFilterList() = AnimesAriaFilters.FILTER_LIST
-
- override suspend fun getSearchAnime(page: Int, query: String, filters: AnimeFilterList): AnimesPage {
- return if (query.startsWith(PREFIX_SEARCH)) { // URL intent handler
- val id = query.removePrefix(PREFIX_SEARCH)
- client.newCall(GET("$baseUrl/anime/$id"))
- .awaitSuccess()
- .use(::searchAnimeByIdParse)
- } else {
- super.getSearchAnime(page, query, filters)
- }
- }
-
- private fun searchAnimeByIdParse(response: Response): AnimesPage {
- val details = animeDetailsParse(response.asJsoup())
- return AnimesPage(listOf(details), false)
- }
-
- override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request {
- val params = AnimesAriaFilters.getSearchParameters(filters)
- val url = "$baseUrl/anime/buscar".toHttpUrl().newBuilder()
- .addQueryParameter("q", query)
- .addQueryParameter("page", page.toString())
- .addQueryParameter("tipo", params.type)
- .addQueryParameter("genero", params.genre)
- .addQueryParameter("status", params.status)
- .addQueryParameter("letra", params.letter)
- .addQueryParameter("audio", params.audio)
- .addQueryParameter("ano", params.year)
- .addQueryParameter("temporada", params.season)
- .build()
- return GET(url.toString())
- }
-
- override fun searchAnimeFromElement(element: Element) = popularAnimeFromElement(element)
-
- override fun searchAnimeNextPageSelector() = latestUpdatesNextPageSelector()
-
- override fun searchAnimeSelector() = popularAnimeSelector()
-
- // =========================== Anime Details ============================
- override fun animeDetailsParse(document: Document) = SAnime.create().apply {
- setUrlWithoutDomain(document.location())
- val row = document.selectFirst("div.anime_background_w div.row")!!
- title = row.selectFirst("h1 > span")!!.text()
- status = row.selectFirst("div.clear span.btn")?.text().toStatus()
- thumbnail_url = document.selectFirst("link[as=image]")?.attr("href")
- genre = row.select("div.clear a.btn").eachText().joinToString()
-
- description = buildString {
- document.selectFirst("li.active > small")!!
- .ownText()
- .substringAfter(": ")
- .also(::append)
-
- append("\n\n")
-
- row.selectFirst("h1 > small")?.text()?.also {
- append("Títulos Alternativos: $it\n")
- }
-
- // Additional info
- row.select("div.pull-right > a").forEach {
- val title = it.selectFirst("small")!!.text()
- val value = it.selectFirst("span")!!.text()
- append("$title: $value\n")
- }
- }
- }
-
- // ============================== Episodes ==============================
- override fun episodeListParse(response: Response) = super.episodeListParse(response).reversed()
-
- override fun episodeFromElement(element: Element) = SEpisode.create().apply {
- element.parent()!!.selectFirst("a > b")!!.ownText().also {
- name = it
- episode_number = it.substringAfter(" ").toFloatOrNull() ?: 0F
- }
- setUrlWithoutDomain(element.attr("href"))
- scanlator = element.text().substringAfter(" ") // sub/dub
- }
-
- override fun episodeListSelector() = "td div.clear > a.btn-xs"
-
- // ============================ Video Links =============================
- override fun videoListParse(response: Response): List