From 485b97251c286f6e8f2135725e8fcf72bad9c0ca Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Fri, 4 Aug 2023 05:48:15 -0300 Subject: [PATCH] feat(src/pt): New source: Animes Games (#2003) --- src/pt/animesgames/AndroidManifest.xml | 22 ++ src/pt/animesgames/build.gradle | 14 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 4053 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2170 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 6281 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 12110 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 18717 bytes .../pt/animesgames/AnimesGames.kt | 282 ++++++++++++++++++ .../pt/animesgames/AnimesGamesFilters.kt | 157 ++++++++++ .../pt/animesgames/AnimesGamesUrlActivity.kt | 41 +++ .../extractors/BloggerExtractor.kt | 28 ++ 11 files changed, 544 insertions(+) create mode 100644 src/pt/animesgames/AndroidManifest.xml create mode 100644 src/pt/animesgames/build.gradle create mode 100644 src/pt/animesgames/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/pt/animesgames/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/pt/animesgames/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/pt/animesgames/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/pt/animesgames/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/pt/animesgames/src/eu/kanade/tachiyomi/animeextension/pt/animesgames/AnimesGames.kt create mode 100644 src/pt/animesgames/src/eu/kanade/tachiyomi/animeextension/pt/animesgames/AnimesGamesFilters.kt create mode 100644 src/pt/animesgames/src/eu/kanade/tachiyomi/animeextension/pt/animesgames/AnimesGamesUrlActivity.kt create mode 100644 src/pt/animesgames/src/eu/kanade/tachiyomi/animeextension/pt/animesgames/extractors/BloggerExtractor.kt diff --git a/src/pt/animesgames/AndroidManifest.xml b/src/pt/animesgames/AndroidManifest.xml new file mode 100644 index 000000000..1c467da2a --- /dev/null +++ b/src/pt/animesgames/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + diff --git a/src/pt/animesgames/build.gradle b/src/pt/animesgames/build.gradle new file mode 100644 index 000000000..c228981e5 --- /dev/null +++ b/src/pt/animesgames/build.gradle @@ -0,0 +1,14 @@ +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.serialization) +} + +ext { + extName = 'Animes Games' + pkgNameSuffix = 'pt.animesgames' + extClass = '.AnimesGames' + extVersionCode = 1 +} + +apply from: "$rootDir/common.gradle" diff --git a/src/pt/animesgames/res/mipmap-hdpi/ic_launcher.png b/src/pt/animesgames/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f20822d1aee85db04fbcb763ab8e5238088b3b39 GIT binary patch literal 4053 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 Hu0mjfA^e7* literal 0 HcmV?d00001 diff --git a/src/pt/animesgames/res/mipmap-mdpi/ic_launcher.png b/src/pt/animesgames/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ae8a62c90ed6a91b067b17c903f4277422fc4b2f GIT binary patch literal 2170 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≺f{FrZwrvjiR0b!0-EOK&#k-rG#OA#~& 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 literal 0 HcmV?d00001 diff --git a/src/pt/animesgames/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/animesgames/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1af79ea0b8f33c03a52b5c9577aed03dd2547899 GIT binary patch literal 12110 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 Rt5E;|002ovPDHLkV1h2V1~32s literal 0 HcmV?d00001 diff --git a/src/pt/animesgames/src/eu/kanade/tachiyomi/animeextension/pt/animesgames/AnimesGames.kt b/src/pt/animesgames/src/eu/kanade/tachiyomi/animeextension/pt/animesgames/AnimesGames.kt new file mode 100644 index 000000000..29a899c91 --- /dev/null +++ b/src/pt/animesgames/src/eu/kanade/tachiyomi/animeextension/pt/animesgames/AnimesGames.kt @@ -0,0 +1,282 @@ +package eu.kanade.tachiyomi.animeextension.pt.animesgames + +import eu.kanade.tachiyomi.animeextension.pt.animesgames.extractors.BloggerExtractor +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.Serializable +import kotlinx.serialization.json.Json +import okhttp3.FormBody +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import okhttp3.Response +import org.jsoup.Jsoup +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import rx.Observable +import uy.kohesive.injekt.injectLazy +import java.text.SimpleDateFormat +import java.util.Locale + +class AnimesGames : ParsedAnimeHttpSource() { + + override val name = "Animes Games" + + override val baseUrl = "https://animesgames.net" + + override val lang = "pt-BR" + + override val supportsLatest = true + + override fun headersBuilder() = super.headersBuilder() + .add("Referer", baseUrl) + .add("Origin", baseUrl) + + private val json: Json by injectLazy() + + // ============================== Popular =============================== + override fun popularAnimeRequest(page: Int) = GET(baseUrl) + + override fun popularAnimeSelector() = "ul.top10 > li > a" + + override fun popularAnimeFromElement(element: Element) = SAnime.create().apply { + setUrlWithoutDomain(element.attr("href")) + title = element.text() + } + + override fun popularAnimeNextPageSelector() = null + + // =============================== Latest =============================== + override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/lancamentos/page/$page") + + override fun latestUpdatesSelector() = "div.conteudo section.episodioItem > a" + + override fun latestUpdatesFromElement(element: Element) = SAnime.create().apply { + setUrlWithoutDomain(element.attr("href")) + title = element.selectFirst("div.tituloEP")!!.text() + thumbnail_url = element.selectFirst("img")!!.attr("data-lazy-src") + } + + override fun latestUpdatesNextPageSelector() = "ol.pagination > a:contains(>)" + + // =============================== Search =============================== + override fun fetchSearchAnime(page: Int, query: String, filters: AnimeFilterList): Observable { + return if (query.startsWith(PREFIX_SEARCH)) { // URL intent handler + val id = query.removePrefix(PREFIX_SEARCH) + client.newCall(GET("$baseUrl/animes/$id")) + .asObservableSuccess() + .map(::searchAnimeByIdParse) + } else { + super.fetchSearchAnime(page, query, filters) + } + } + + private fun searchAnimeByIdParse(response: Response): AnimesPage { + val details = animeDetailsParse(response.asJsoup()) + return AnimesPage(listOf(details), false) + } + + @Serializable + data class SearchResponseDto( + val results: List, + val page: Int, + val total_page: Int = 1, + ) + + private val searchToken by lazy { + client.newCall(GET("$baseUrl/lista-de-animes", headers)).execute() + .use { it.asJsoup() } + .selectFirst("div.menu_filter_box")!! + .attr("data-secury") + } + + override fun getFilterList() = AnimesGamesFilters.FILTER_LIST + + override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request { + val params = AnimesGamesFilters.getSearchParameters(filters) + val body = FormBody.Builder().apply { + add("pagina", "$page") + add("type", "lista") + add("type_url", "anime") + add("limit", "30") + add("token", searchToken) + add("search", query.ifBlank { "0" }) + val filterData = baseUrl.toHttpUrl().newBuilder().apply { + addQueryParameter("filter_audio", params.audio) + addQueryParameter("filter_letter", params.letter) + addQueryParameter("filter_order", params.orderBy) + addQueryParameter("filter_sort", "abc") + }.build().encodedQuery + + val genres = params.genres.joinToString { "\"$it\"" } + val delgenres = params.deleted_genres.joinToString { "\"$it\"" } + + add("filters", """{"filter_data": "$filterData", "filter_genre_add": [$genres], "filter_genre_del": [$delgenres]}""") + }.build() + + return POST("$baseUrl/func/listanime", body = body, headers = headers) + } + + override fun searchAnimeParse(response: Response): AnimesPage { + return runCatching { + val data = response.parseAs() + val animes = data.results.map(Jsoup::parse) + .mapNotNull { it.selectFirst(searchAnimeSelector()) } + .map(::searchAnimeFromElement) + val hasNext = data.total_page > data.page + AnimesPage(animes, hasNext) + }.getOrElse { AnimesPage(emptyList(), false) } + } + + override fun searchAnimeSelector() = "section.animeItem > a" + + override fun searchAnimeFromElement(element: Element) = SAnime.create().apply { + setUrlWithoutDomain(element.attr("href")) + title = element.selectFirst("div.tituloAnime")!!.text() + thumbnail_url = element.selectFirst("img")!!.attr("src") + } + + override fun searchAnimeNextPageSelector(): String? { + throw UnsupportedOperationException("Not used.") + } + + // =========================== Anime Details ============================ + override fun animeDetailsParse(document: Document) = SAnime.create().apply { + val doc = getRealDoc(document) + setUrlWithoutDomain(doc.location()) + val content = doc.selectFirst("section.conteudoPost")!! + title = content.selectFirst("section > h1")!!.text() + .removePrefix("Assistir ") + .removeSuffix("Temporada Online") + thumbnail_url = content.selectFirst("img")!!.attr("data-lazy-src") + description = content.select("section.sinopseEp p").eachText().joinToString("\n") + + val infos = content.selectFirst("div.info > ol")!! + + author = infos.getInfo("Autor") ?: infos.getInfo("Diretor") + artist = infos.getInfo("Estúdio") + status = when (infos.getInfo("Status")) { + "Completo" -> SAnime.COMPLETED + "Lançamento" -> SAnime.ONGOING + else -> SAnime.UNKNOWN + } + } + + private fun Element.getInfo(info: String) = + selectFirst("li:has(span:contains($info))")?.let { + it.selectFirst("span[data]")?.text() ?: it.ownText() + } + + // ============================== Episodes ============================== + override fun episodeListParse(response: Response): List { + return getRealDoc(response.use { it.asJsoup() }) + .select(episodeListSelector()) + .map(::episodeFromElement) + .reversed() + } + + override fun episodeListSelector() = "div.listaEp > section.episodioItem > a" + + override fun episodeFromElement(element: Element) = SEpisode.create().apply { + setUrlWithoutDomain(element.attr("href")) + element.selectFirst("div.tituloEP")!!.text().also { + name = it + episode_number = it.substringAfterLast(" ").toFloatOrNull() ?: 1F + } + date_upload = element.selectFirst("span.data")?.text()?.toDate() ?: 0L + } + + // ============================ Video Links ============================= + private val bloggerExtractor by lazy { BloggerExtractor(client) } + override fun videoListParse(response: Response): List