LaA
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
ae>Ga#|4efBmbEKe16Z1(5EaJPqW=c7AnptR
literal 0
HcmV?d00001
diff --git a/src/pt/subanimes/res/mipmap-xhdpi/ic_launcher.png b/src/pt/subanimes/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..88745a5ce769c6530bfd9e4a62ac01016ff03050
GIT binary patch
literal 5161
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
G#Qq1?XosEv
literal 0
HcmV?d00001
diff --git a/src/pt/subanimes/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/subanimes/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d12d3187bfc4667d3fb581e7a0518d68ca0732e
GIT binary patch
literal 8295
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
literal 0
HcmV?d00001
diff --git a/src/pt/subanimes/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/subanimes/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4341dba4863a9820d32f045682346872aaed989
GIT binary patch
literal 11516
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
+ ) : AnimeFilter.Select(
+ displayName,
+ vals.map { it.first }.toTypedArray()
+ ) {
+
+ fun toQueryPart() = vals[state].second
+ }
+
+ private class CheckBoxVal(name: String, state: Boolean = false) : AnimeFilter.CheckBox(name, state)
+ open class CheckBoxFilterList(name: String, values: List) : AnimeFilter.Group(name, values)
+
+ private inline fun AnimeFilterList.getFirst(): R {
+ return this.filterIsInstance().first()
+ }
+
+ private inline fun AnimeFilterList.asQueryPart(): String {
+ return this.filterIsInstance().joinToString("") {
+ (it as QueryPartFilter).toQueryPart()
+ }
+ }
+
+ class AdultFilter : AnimeFilter.CheckBox("Exibir animes adultos", true)
+
+ class FormatFilter : QueryPartFilter("Tipo de série", SBFiltersData.formats)
+ class StatusFilter : QueryPartFilter("Status do anime", SBFiltersData.status)
+ class TypeFilter : QueryPartFilter("Tipo de áudio", SBFiltersData.types)
+
+ class GenresFilter : CheckBoxFilterList(
+ "Gêneros",
+ SBFiltersData.genres.map { CheckBoxVal(it.first, false) }
+ )
+
+ // Mimicking the order of filters on the source
+ val filterList = AnimeFilterList(
+ TypeFilter(),
+ StatusFilter(),
+ AdultFilter(),
+ FormatFilter(),
+ GenresFilter()
+ )
+
+ data class FilterSearchParams(
+ val adult: Boolean = true,
+ val format: String = "",
+ val genres: List = emptyList(),
+ val status: String = "",
+ val type: String = "",
+ )
+
+ internal fun getSearchParameters(filters: AnimeFilterList): FilterSearchParams {
+
+ if (filters.isEmpty()) return FilterSearchParams()
+
+ val genres = filters.getFirst().state
+ .mapNotNull { genre ->
+ if (genre.state) {
+ SBFiltersData.genres.find { it.first == genre.name }!!.second
+ } else { null }
+ }.toList()
+
+ return FilterSearchParams(
+ filters.getFirst().state,
+ filters.asQueryPart(),
+ genres,
+ filters.asQueryPart(),
+ filters.asQueryPart()
+ )
+ }
+
+ private object SBFiltersData {
+ val every = Pair("Qualquer um", "")
+
+ val types = arrayOf(
+ every,
+ Pair("Japonês/Legendado", "1"),
+ Pair("Português/Dublado", "2")
+ )
+
+ val status = arrayOf(
+ every,
+ Pair("Completo", "Completo"),
+ Pair("Em lançamento", "Lançamento")
+ )
+
+ val formats = arrayOf(
+ every,
+ Pair("Anime", "Anime"),
+ Pair("Filme", "Filme")
+ )
+
+ val genres = arrayOf(
+ Pair("Adulto", "334"),
+ Pair("Animação", "2374"),
+ Pair("Arte Marcial", "16"),
+ Pair("Avant Garde", "2846"),
+ Pair("Avant", "2845"),
+ Pair("Aventura", "4"),
+ Pair("Ação", "15"),
+ Pair("Boys Love", "2435"),
+ Pair("Card Battles", "1157"),
+ Pair("Carro", "605"),
+ Pair("China", "865"),
+ Pair("Comédia Romântica", "1254"),
+ Pair("Comédia", "5"),
+ Pair("Corridas", "1514"),
+ Pair("Crime", "1962"),
+ Pair("Culinária", "925"),
+ Pair("Cultivo", "1133"),
+ Pair("Demônio", "19"),
+ Pair("Drama", "36"),
+ Pair("Ecchi", "49"),
+ Pair("Escolar", "140"),
+ Pair("Espacial", "646"),
+ Pair("Esporte", "106"),
+ Pair("Família", "1431"),
+ Pair("Fantasia", "6"),
+ Pair("Ficção Científica", "99"),
+ Pair("Ficção Mítica", "1575"),
+ Pair("Gathering", "2756"),
+ Pair("Gourmet", "2813"),
+ Pair("Harém", "189"),
+ Pair("Histórico", "20"),
+ Pair("Horror", "256"),
+ Pair("Insanidade", "387"),
+ Pair("Isekai", "10"),
+ Pair("Jogos", "63"),
+ Pair("Josei", "733"),
+ Pair("Magia", "82"),
+ Pair("Maid", "2772"),
+ Pair("Mecha", "200"),
+ Pair("Militar", "58"),
+ Pair("Mistério", "50"),
+ Pair("Musical", "112"),
+ Pair("Novel", "951"),
+ Pair("Paródia", "171"),
+ Pair("Policial", "249"),
+ Pair("Psicológico", "66"),
+ Pair("Pós-Apocalíptico", "470"),
+ Pair("Reencarnação", "1134"),
+ Pair("Romance", "7"),
+ Pair("Samurai", "127"),
+ Pair("Sci-fi", "203"),
+ Pair("Seinen", "51"),
+ Pair("Seven", "1449"),
+ Pair("Shoujo Ai", "507"),
+ Pair("Shoujo", "78"),
+ Pair("Shounen Ai", "1326"),
+ Pair("Shounen", "17"),
+ Pair("Slice of Life", "79"),
+ Pair("Sobrenatural", "8"),
+ Pair("Studio Deen", "2451"),
+ Pair("Sunrise", "318"),
+ Pair("Super Poder", "18"),
+ Pair("Suspense", "134"),
+ Pair("Terror", "42"),
+ Pair("Thriller", "960"),
+ Pair("Tragédia", "264"),
+ Pair("Vampiros", "358"),
+ Pair("Vida Diaria", "1518"),
+ Pair("Vida Escolar", "67"),
+ Pair("Violência", "59"),
+ Pair("Yaoi", "1386"),
+ Pair("Yuri", "243"),
+ Pair("Zumbi", "574")
+ )
+ }
+}
diff --git a/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/SBUrlActivity.kt b/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/SBUrlActivity.kt
new file mode 100644
index 000000000..4d8287680
--- /dev/null
+++ b/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/SBUrlActivity.kt
@@ -0,0 +1,41 @@
+package eu.kanade.tachiyomi.animeextension.pt.subanimes
+
+import android.app.Activity
+import android.content.ActivityNotFoundException
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import kotlin.system.exitProcess
+
+/**
+ * Springboard that accepts https://subanimes.cc/anime/- intents
+ * and redirects them to the main Aniyomi process.
+ */
+class SBUrlActivity : Activity() {
+
+ private val TAG = "SBUrlActivity"
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ val pathSegments = intent?.data?.pathSegments
+ if (pathSegments != null && pathSegments.size > 1) {
+ val item = pathSegments[1]
+ val mainIntent = Intent().apply {
+ action = "eu.kanade.tachiyomi.ANIMESEARCH"
+ putExtra("query", "${SubAnimes.PREFIX_SEARCH}$item")
+ putExtra("filter", packageName)
+ }
+
+ try {
+ startActivity(mainIntent)
+ } catch (e: ActivityNotFoundException) {
+ Log.e(TAG, e.toString())
+ }
+ } else {
+ Log.e(TAG, "could not parse uri from intent $intent")
+ }
+
+ finish()
+ exitProcess(0)
+ }
+}
diff --git a/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/SubAnimes.kt b/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/SubAnimes.kt
new file mode 100644
index 000000000..9811858e6
--- /dev/null
+++ b/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/SubAnimes.kt
@@ -0,0 +1,252 @@
+package eu.kanade.tachiyomi.animeextension.pt.subanimes
+
+import eu.kanade.tachiyomi.animeextension.pt.subanimes.dto.AnimeDataDto
+import eu.kanade.tachiyomi.animeextension.pt.subanimes.dto.SearchResultDto
+import eu.kanade.tachiyomi.animeextension.pt.subanimes.extractors.SubAnimesExtractor
+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.POST
+import eu.kanade.tachiyomi.network.asObservableSuccess
+import eu.kanade.tachiyomi.util.asJsoup
+import kotlinx.serialization.decodeFromString
+import kotlinx.serialization.json.Json
+import okhttp3.FormBody
+import okhttp3.OkHttpClient
+import okhttp3.Request
+import okhttp3.Response
+import org.jsoup.nodes.Document
+import org.jsoup.nodes.Element
+import rx.Observable
+import uy.kohesive.injekt.api.get
+import kotlin.Exception
+
+class SubAnimes : ParsedAnimeHttpSource() {
+
+ override val name = "SubAnimes"
+
+ override val baseUrl = "https://subanimes.cc"
+ private val API_URL = "$baseUrl/wp-admin/admin-ajax.php"
+
+ override val lang = "pt-BR"
+
+ override val supportsLatest = true
+
+ override val client: OkHttpClient = network.client
+
+ private val json = Json {
+ ignoreUnknownKeys = true
+ }
+
+ // ============================== Popular ===============================
+ override fun popularAnimeSelector() = "div#hype div.aniItem > a"
+ override fun popularAnimeRequest(page: Int) = GET(baseUrl)
+ override fun popularAnimeNextPageSelector() = null // disable it
+ override fun popularAnimeFromElement(element: Element): SAnime =
+ latestUpdatesFromElement(element)
+
+ // ============================== Episodes ==============================
+ override fun episodeListSelector() = "div#episodios div.animeVideosItem > a"
+ private fun episodeListNextPageSelector() = latestUpdatesNextPageSelector()
+
+ override fun fetchEpisodeList(anime: SAnime): Observable
> {
+ return client.newCall(episodeListRequest(anime))
+ .asObservableSuccess()
+ .map { response ->
+ val realDoc = getRealDoc(response.asJsoup())
+ episodeListParse(realDoc).reversed()
+ }
+ }
+
+ override fun episodeListParse(response: Response): List {
+ return episodeListParse(response.asJsoup())
+ }
+
+ private fun episodeListParse(doc: Document): List {
+ val episodeList = mutableListOf()
+ val eps = doc.select(episodeListSelector()).map(::episodeFromElement)
+ episodeList.addAll(eps)
+ val nextPageElement = doc.selectFirst(episodeListNextPageSelector())
+ if (nextPageElement != null) {
+ val nextUrl = nextPageElement.attr("href")
+ val res = client.newCall(GET(nextUrl)).execute()
+ episodeList.addAll(episodeListParse(res))
+ }
+ return episodeList
+ }
+
+ override fun episodeFromElement(element: Element): SEpisode {
+ return SEpisode.create().apply {
+ setUrlWithoutDomain(element.attr("href"))
+ val title = element.attr("title")
+ name = title
+ episode_number = runCatching {
+ title.trim().substringAfterLast(" ").toFloat()
+ }.getOrDefault(0F)
+ }
+ }
+
+ // ============================ Video Links =============================
+ override fun videoListParse(response: Response): List