From 774dc97f0ee12b15aeb0c31f9c4dc28b19528f26 Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Mon, 19 Sep 2022 06:25:14 -0300 Subject: [PATCH] New source: AnimesOnlinex (#873) * AnimesOnlineX: Create extension base It needs more extractors, i'll make them soon. * AnimesOnlineX: add some extractors * AnimesOnlineX: Fix problems at animeDetails / episodeList* * AnimesOnlineX: Fix anicdn video extraction * AnimesOnlineX: get all urls/qualities from .m3u8's * AnimesOnlineX: Add more qualities and normalize them * AnimesOnlineX: Fix anime description (again) --- src/pt/animesonlinex/AndroidManifest.xml | 24 ++ src/pt/animesonlinex/build.gradle | 12 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 4233 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2824 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 5616 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 8255 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10889 bytes .../pt/animesonlinex/AOXConstants.kt | 10 + .../pt/animesonlinex/AOXFilters.kt | 71 ++++ .../pt/animesonlinex/AOXUrlActivity.kt | 42 +++ .../pt/animesonlinex/AnimesOnlineX.kt | 346 ++++++++++++++++++ .../extractors/GenericExtractor.kt | 32 ++ .../extractors/GuiaNoticiarioBypasser.kt | 42 +++ .../extractors/QualitiesExtractor.kt | 32 ++ 14 files changed, 611 insertions(+) create mode 100644 src/pt/animesonlinex/AndroidManifest.xml create mode 100644 src/pt/animesonlinex/build.gradle create mode 100644 src/pt/animesonlinex/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/pt/animesonlinex/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/pt/animesonlinex/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/pt/animesonlinex/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/pt/animesonlinex/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/pt/animesonlinex/src/eu/kanade/tachiyomi/animeextension/pt/animesonlinex/AOXConstants.kt create mode 100644 src/pt/animesonlinex/src/eu/kanade/tachiyomi/animeextension/pt/animesonlinex/AOXFilters.kt create mode 100644 src/pt/animesonlinex/src/eu/kanade/tachiyomi/animeextension/pt/animesonlinex/AOXUrlActivity.kt create mode 100644 src/pt/animesonlinex/src/eu/kanade/tachiyomi/animeextension/pt/animesonlinex/AnimesOnlineX.kt create mode 100644 src/pt/animesonlinex/src/eu/kanade/tachiyomi/animeextension/pt/animesonlinex/extractors/GenericExtractor.kt create mode 100644 src/pt/animesonlinex/src/eu/kanade/tachiyomi/animeextension/pt/animesonlinex/extractors/GuiaNoticiarioBypasser.kt create mode 100644 src/pt/animesonlinex/src/eu/kanade/tachiyomi/animeextension/pt/animesonlinex/extractors/QualitiesExtractor.kt diff --git a/src/pt/animesonlinex/AndroidManifest.xml b/src/pt/animesonlinex/AndroidManifest.xml new file mode 100644 index 000000000..3b21acebe --- /dev/null +++ b/src/pt/animesonlinex/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + diff --git a/src/pt/animesonlinex/build.gradle b/src/pt/animesonlinex/build.gradle new file mode 100644 index 000000000..1551ced3b --- /dev/null +++ b/src/pt/animesonlinex/build.gradle @@ -0,0 +1,12 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + extName = 'AnimesOnlineX' + pkgNameSuffix = 'pt.animesonlinex' + extClass = '.AnimesOnlineX' + extVersionCode = 1 + libVersion = '13' +} + +apply from: "$rootDir/common.gradle" diff --git a/src/pt/animesonlinex/res/mipmap-hdpi/ic_launcher.png b/src/pt/animesonlinex/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..9b0e3c5b77af2609057a298d65aa62fedb0742ec GIT binary patch literal 4233 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 SL=rET0Zff7F_i``_x}xAd?vmC literal 0 HcmV?d00001 diff --git a/src/pt/animesonlinex/res/mipmap-xhdpi/ic_launcher.png b/src/pt/animesonlinex/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b2255225657cf0f5392693ae6be80bb8c6744016 GIT binary patch literal 5616 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 CzpbeN literal 0 HcmV?d00001 diff --git a/src/pt/animesonlinex/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/animesonlinex/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..977138e3ce1000a3196c835dac8e47ad9440696c GIT binary patch literal 10889 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 vAW{xz5Ge5Q|Fq!g> + ) : AnimeFilter.Select( + displayName, + vals.map { it.first }.toTypedArray() + ) { + fun toQueryPart() = vals[state].second + } + + private inline fun AnimeFilterList.asQueryPart(): String { + return this.filterIsInstance().joinToString("") { + (it as QueryPartFilter).toQueryPart() + } + } + + class GenreFilter : QueryPartFilter("Gênero", AOXFiltersData.genres) + + val filterList = AnimeFilterList( + AnimeFilter.Header(AOXFiltersData.IGNORE_SEARCH_MSG), + GenreFilter() + ) + + data class FilterSearchParams( + val genre: String = "" + ) + + internal fun getSearchParameters(filters: AnimeFilterList): FilterSearchParams { + return FilterSearchParams(filters.asQueryPart()) + } + + private object AOXFiltersData { + + const val IGNORE_SEARCH_MSG = "NOTA: O filtro por gênero será IGNORADO ao usar a pesquisa por nome." + + val genres = arrayOf( + Pair("Artes Marciais", "artes-marciais"), + Pair("Aventura", "aventura"), + Pair("Ação", "acao"), + Pair("Comédia", "comedia"), + Pair("Crime", "crime"), + Pair("Demônio", "demonio"), + Pair("Drama", "drama"), + Pair("Ecchi", "ecchi"), + Pair("Escolar", "escolar"), + Pair("Esporte", "esport"), + Pair("Fantasia", "fantasia"), + Pair("Ficção Cientifica", "ficcao-cientifica"), + Pair("Histórico", "historico"), + Pair("Josei", "josei"), + Pair("Magia", "magia"), + Pair("Mecha", "mecha"), + Pair("Militar", "militar"), + Pair("Mistério", "misterio"), + Pair("Romance", "romance"), + Pair("Seinen", "seinen"), + Pair("Shoujo", "shoujo"), + Pair("Shounen Ai", "shounen-ai"), + Pair("Shounen", "shounen"), + Pair("Slice of Life", "slice-of-life"), + Pair("Terror", "terror") + ) + } +} diff --git a/src/pt/animesonlinex/src/eu/kanade/tachiyomi/animeextension/pt/animesonlinex/AOXUrlActivity.kt b/src/pt/animesonlinex/src/eu/kanade/tachiyomi/animeextension/pt/animesonlinex/AOXUrlActivity.kt new file mode 100644 index 000000000..7c3104739 --- /dev/null +++ b/src/pt/animesonlinex/src/eu/kanade/tachiyomi/animeextension/pt/animesonlinex/AOXUrlActivity.kt @@ -0,0 +1,42 @@ +package eu.kanade.tachiyomi.animeextension.pt.animesonlinex + +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://animesonlinex.cc/animes/ intents + * and redirects them to the main Aniyomi process. + */ +class AOXUrlActivity : Activity() { + + private val TAG = "AOXUrlActivity" + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val pathSegments = intent?.data?.pathSegments + if (pathSegments != null && pathSegments.size > 1) { + val slug = pathSegments[1] + val searchQuery = AOXConstants.PREFIX_SEARCH + slug + val mainIntent = Intent().apply { + action = "eu.kanade.tachiyomi.ANIMESEARCH" + putExtra("query", searchQuery) + 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/animesonlinex/src/eu/kanade/tachiyomi/animeextension/pt/animesonlinex/AnimesOnlineX.kt b/src/pt/animesonlinex/src/eu/kanade/tachiyomi/animeextension/pt/animesonlinex/AnimesOnlineX.kt new file mode 100644 index 000000000..71de01ff0 --- /dev/null +++ b/src/pt/animesonlinex/src/eu/kanade/tachiyomi/animeextension/pt/animesonlinex/AnimesOnlineX.kt @@ -0,0 +1,346 @@ +package eu.kanade.tachiyomi.animeextension.pt.animesonlinex + +import android.app.Application +import android.content.SharedPreferences +import android.net.Uri +import androidx.preference.ListPreference +import androidx.preference.PreferenceScreen +import eu.kanade.tachiyomi.animeextension.pt.animesonlinex.extractors.GenericExtractor +import eu.kanade.tachiyomi.animeextension.pt.animesonlinex.extractors.GuiaNoticiarioBypasser +import eu.kanade.tachiyomi.animeextension.pt.animesonlinex.extractors.QualitiesExtractor +import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource +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.asObservableSuccess +import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.Headers +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.Injekt +import uy.kohesive.injekt.api.get +import java.lang.Exception +import java.text.SimpleDateFormat +import java.util.Locale + +class AnimesOnlineX : ConfigurableAnimeSource, ParsedAnimeHttpSource() { + + override val name = "AnimesOnlineX" + + override val baseUrl = "https://animesonlinex.cc" + + override val lang = "pt-BR" + + override val supportsLatest = true + + override val client: OkHttpClient = network.client + + override fun headersBuilder(): Headers.Builder = Headers.Builder() + .add("Referer", baseUrl) + .add("Accept-Language", AOXConstants.ACCEPT_LANGUAGE) + .add("User-Agent", AOXConstants.USER_AGENT) + + private val preferences: SharedPreferences by lazy { + Injekt.get().getSharedPreferences("source_$id", 0x0000) + } + + // ============================== Popular =============================== + override fun popularAnimeSelector(): String = "article.w_item_a > a" + + override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/animes/") + + override fun popularAnimeFromElement(element: Element): SAnime { + val anime = SAnime.create() + val img = element.selectFirst("img") + val url = element.selectFirst("a")?.attr("href") ?: element.attr("href") + anime.setUrlWithoutDomain(url) + anime.title = img.attr("alt") + anime.thumbnail_url = img.attr("src") + return anime + } + + override fun popularAnimeNextPageSelector() = throw Exception("not used") + + override fun popularAnimeParse(response: Response): AnimesPage { + val document = response.asJsoup() + val animes = document.select(popularAnimeSelector()).map { element -> + popularAnimeFromElement(element) + } + return AnimesPage(animes, false) + } + + // ============================== Episodes ============================== + override fun episodeListSelector(): String = "ul.episodios > li" + + override fun episodeListParse(response: Response): List { + val doc = getRealDoc(response.asJsoup()) + val epList = doc.select(episodeListSelector()) + if (epList.size < 1) { + val episode = SEpisode.create() + episode.setUrlWithoutDomain(response.request.url.toString()) + episode.episode_number = 1F + episode.name = "Filme" + return listOf(episode) + } + return epList.reversed().map { episodeFromElement(it) } + } + + override fun episodeFromElement(element: Element): SEpisode { + val episode = SEpisode.create() + val origName = element.selectFirst("div.numerando").text() + + episode.episode_number = origName.substringAfter("- ") + .replace("-", "") + .toFloat() + if ("Dub" in origName) 0.5F else 0F + episode.name = "Temp " + origName.replace(" - ", ": Ep ") + episode.setUrlWithoutDomain(element.selectFirst("a").attr("href")) + episode.date_upload = element.selectFirst("span.date") + ?.text() + ?.toDate() ?: 0L + return episode + } + + // ============================ Video Links ============================= + + override fun videoListParse(response: Response): List