diff --git a/src/es/cuevana/build.gradle b/src/es/cuevana/build.gradle index 3831f9bec..8d48c2088 100644 --- a/src/es/cuevana/build.gradle +++ b/src/es/cuevana/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'Cuevana' pkgNameSuffix = 'es.cuevana' extClass = '.Cuevana' - extVersionCode = 17 + extVersionCode = 18 libVersion = '13' } @@ -15,6 +15,8 @@ dependencies { implementation project(path: ':lib-streamsb-extractor') implementation project(path: ':lib-okru-extractor') implementation project(path: ':lib-voe-extractor') + implementation project(path: ':lib-streamtape-extractor') + implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1" } apply from: "$rootDir/common.gradle" diff --git a/src/es/cuevana/src/eu/kanade/tachiyomi/animeextension/es/cuevana/Cuevana.kt b/src/es/cuevana/src/eu/kanade/tachiyomi/animeextension/es/cuevana/Cuevana.kt index 05f6a28c8..414f59283 100644 --- a/src/es/cuevana/src/eu/kanade/tachiyomi/animeextension/es/cuevana/Cuevana.kt +++ b/src/es/cuevana/src/eu/kanade/tachiyomi/animeextension/es/cuevana/Cuevana.kt @@ -4,6 +4,7 @@ import android.app.Application import android.content.SharedPreferences import androidx.preference.ListPreference import androidx.preference.PreferenceScreen +import eu.kanade.tachiyomi.animeextension.es.cuevana.extractors.StreamWishExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -14,6 +15,7 @@ import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor import eu.kanade.tachiyomi.lib.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.lib.voeextractor.VoeExtractor import eu.kanade.tachiyomi.lib.youruploadextractor.YourUploadExtractor import eu.kanade.tachiyomi.network.GET @@ -22,10 +24,8 @@ import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.jsonPrimitive -import okhttp3.MediaType.Companion.toMediaType import okhttp3.OkHttpClient import okhttp3.Request -import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.Response import org.jsoup.nodes.Document import org.jsoup.nodes.Element @@ -38,7 +38,7 @@ class Cuevana : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override val name = "Cuevana" - override val baseUrl = "https://n2.cuevana3.me" + override val baseUrl = "https://www12.cuevana3.ch" override val lang = "es" @@ -52,15 +52,15 @@ class Cuevana : ConfigurableAnimeSource, ParsedAnimeHttpSource() { Injekt.get().getSharedPreferences("source_$id", 0x0000) } - override fun popularAnimeSelector(): String = "section li.xxx.TPostMv div.TPost" + override fun popularAnimeSelector(): String = ".MovieList .TPostMv .TPost" - override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/peliculas/page/$page") + override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/peliculas?page=$page") override fun popularAnimeFromElement(element: Element): SAnime { val anime = SAnime.create() anime.setUrlWithoutDomain(element.selectFirst("a")!!.attr("href")) anime.title = element.select("a .Title").text() - anime.thumbnail_url = element.select("a .Image figure.Objf img").attr("data-src") + anime.thumbnail_url = element.select("a .Image figure.Objf img").attr("abs:data-src") return anime } @@ -70,13 +70,13 @@ class Cuevana : ConfigurableAnimeSource, ParsedAnimeHttpSource() { val episodes = mutableListOf() val document = response.asJsoup() if (response.request.url.toString().contains("/serie/")) { - document.select("[id*=season-]").mapIndexed { idxSeason, season -> + document.select("[id*=season-]").reversed().mapIndexed { idxSeason, season -> val noSeason = try { season.attr("id").substringAfter("season-").toInt() } catch (e: Exception) { idxSeason } - season.select(".TPostMv article.TPost").mapIndexed { idxCap, cap -> + season.select(".TPostMv article.TPost").reversed().mapIndexed { idxCap, cap -> val epNum = try { cap.select("a div.Image span.Year").text().substringAfter("x").toFloat() } catch (e: Exception) { idxCap.toFloat() } val episode = SEpisode.create() val date = cap.select("a > p").text() @@ -90,8 +90,7 @@ class Cuevana : ConfigurableAnimeSource, ParsedAnimeHttpSource() { } } else { val episode = SEpisode.create().apply { - val epnum = 1 - episode_number = epnum.toFloat() + episode_number = 1f name = "PELÍCULA" } episode.setUrlWithoutDomain(response.request.url.toString()) @@ -107,13 +106,12 @@ class Cuevana : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override fun videoListParse(response: Response): List