diff --git a/src/es/doramasflix/build.gradle b/src/es/doramasflix/build.gradle index 56f221bdb6..8f65940b3e 100644 --- a/src/es/doramasflix/build.gradle +++ b/src/es/doramasflix/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Doramasflix' extClass = '.Doramasflix' - extVersionCode = 18 + extVersionCode = 19 } apply from: "$rootDir/common.gradle" diff --git a/src/es/doramasflix/src/eu/kanade/tachiyomi/animeextension/es/doramasflix/DataModel.kt b/src/es/doramasflix/src/eu/kanade/tachiyomi/animeextension/es/doramasflix/DataModel.kt index 2614f31875..e4dcff67cb 100644 --- a/src/es/doramasflix/src/eu/kanade/tachiyomi/animeextension/es/doramasflix/DataModel.kt +++ b/src/es/doramasflix/src/eu/kanade/tachiyomi/animeextension/es/doramasflix/DataModel.kt @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.es.doramasflix import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import kotlinx.serialization.json.JsonObject // -----------------------Season models------------------------// @Serializable @@ -27,7 +26,6 @@ data class ListSeason( @SerialName("serie_name") val serieName: String?, val poster: String?, - val backdrop: String?, @SerialName("__typename") val typename: String, ) @@ -53,50 +51,17 @@ data class ListEpisode( val serieName: String?, @SerialName("serie_name_es") val serieNameEs: String?, - @SerialName("serie_id") - val serieId: String?, - @SerialName("still_path") - val stillPath: String?, @SerialName("air_date") val airDate: String?, @SerialName("season_number") val seasonNumber: Long?, @SerialName("episode_number") val episodeNumber: Long?, - // val languages: List, val poster: String?, - val backdrop: String?, @SerialName("__typename") val typename: String, ) -// -----------------------Details Model------------------------// - -data class DetailsModel( - val props: Props, - val page: String, - val query: Query, - val buildId: String, - val isFallback: Boolean, - val gip: Boolean, -) - -data class Props( - val pageProps: PageProps, -) - -data class PageProps( - val deviceType: String, - val slug: String, - // val apolloClient: Any?, - val apolloState: HashMap>, - val ssrComplete: Boolean, -) - -data class Query( - val slug: String, -) - // -----------------------Pagination Model------------------------// @Serializable @@ -136,67 +101,16 @@ data class Item( @SerialName("name_es") val nameEs: String?, val slug: String, - val cast: List = emptyList(), val names: String?, val overview: String?, - val languages: List = emptyList(), - @SerialName("created_by") - val createdBy: List = emptyList(), - val popularity: Double?, @SerialName("poster_path") val posterPath: String?, - @SerialName("backdrop_path") - val backdropPath: String?, - @SerialName("first_air_date") - val firstAirDate: String?, - @SerialName("isTVShow") - val isTvshow: Boolean?, val poster: String?, - val backdrop: String?, val genres: List = emptyList(), - val networks: List = emptyList(), @SerialName("__typename") val typename: String, ) -@Serializable -data class Cast( - val adult: Boolean?, - val gender: Long?, - val id: Long?, - @SerialName("known_for_department") - val knownForDepartment: String?, - val name: String?, - @SerialName("original_name") - val originalName: String?, - val popularity: Double?, - @SerialName("profile_path") - val profilePath: String?, - val character: String?, - @SerialName("credit_id") - val creditId: String?, - val order: Long?, -) - -@Serializable -data class CreatedBy( - val adult: Boolean?, - val gender: Long?, - val id: Long?, - @SerialName("known_for_department") - val knownForDepartment: String?, - val name: String?, - @SerialName("original_name") - val originalName: String?, - val popularity: Double?, - @SerialName("profile_path") - val profilePath: String?, - @SerialName("credit_id") - val creditId: String?, - val department: String?, - val job: String?, -) - @Serializable data class Genre( val name: String?, @@ -205,14 +119,6 @@ data class Genre( val typename: String?, ) -@Serializable -data class Network( - val name: String?, - val slug: String?, - @SerialName("__typename") - val typename: String?, -) - // -----------------------Search Model------------------------// @Serializable data class SearchModel( @@ -241,18 +147,6 @@ data class SearchDorama( ) // ------------------------------------------------------- -@Serializable -data class VideoModel( - val json: JsonVideo = JsonVideo(), -) - -@Serializable -data class JsonVideo( - val lang: String? = "", - val page: String? = "", - val link: String? = "", - val server: String? = "", -) @Serializable data class VideoToken( @@ -274,7 +168,6 @@ data class TokenModel( val isFallback: Boolean? = false, val isExperimentalCompile: Boolean? = false, val gssp: Boolean? = false, - // val scriptLoader: List, ) @Serializable diff --git a/src/es/jkanime/build.gradle b/src/es/jkanime/build.gradle index 9e256a163d..947b682b7d 100644 --- a/src/es/jkanime/build.gradle +++ b/src/es/jkanime/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Jkanime' extClass = '.Jkanime' - extVersionCode = 19 + extVersionCode = 20 } apply from: "$rootDir/common.gradle" @@ -10,4 +10,8 @@ dependencies { implementation(project(':lib:okru-extractor')) implementation(project(':lib:mixdrop-extractor')) implementation(project(':lib:streamwish-extractor')) + implementation(project(':lib:mp4upload-extractor')) + implementation(project(':lib:filemoon-extractor')) + implementation(project(':lib:streamtape-extractor')) + implementation(project(':lib:voe-extractor')) } diff --git a/src/es/jkanime/src/eu/kanade/tachiyomi/animeextension/es/jkanime/Jkanime.kt b/src/es/jkanime/src/eu/kanade/tachiyomi/animeextension/es/jkanime/Jkanime.kt index 3ee0a64a97..64d679c12d 100644 --- a/src/es/jkanime/src/eu/kanade/tachiyomi/animeextension/es/jkanime/Jkanime.kt +++ b/src/es/jkanime/src/eu/kanade/tachiyomi/animeextension/es/jkanime/Jkanime.kt @@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.animeextension.es.jkanime import android.app.Application import android.content.SharedPreferences +import android.util.Base64 import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.es.jkanime.extractors.JkanimeExtractor @@ -13,11 +14,18 @@ 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.lib.filemoonextractor.FilemoonExtractor import eu.kanade.tachiyomi.lib.mixdropextractor.MixDropExtractor +import eu.kanade.tachiyomi.lib.mp4uploadextractor.Mp4uploadExtractor import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.lib.streamwishextractor.StreamWishExtractor +import eu.kanade.tachiyomi.lib.voeextractor.VoeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup +import eu.kanade.tachiyomi.util.parallelCatchingFlatMapBlocking +import eu.kanade.tachiyomi.util.parseAs +import kotlinx.serialization.Serializable import okhttp3.Request import okhttp3.Response import org.jsoup.nodes.Document @@ -49,13 +57,15 @@ class Jkanime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { private val QUALITY_LIST = arrayOf("1080", "720", "480", "360") private const val PREF_SERVER_KEY = "preferred_server" - private const val PREF_SERVER_DEFAULT = "Nozomi" + private const val PREF_SERVER_DEFAULT = "Voe" private val SERVER_LIST = arrayOf( "Okru", "Mixdrop", "StreamWish", - "Xtreme S", - "HentaiJk", + "Filemoon", + "Mp4Upload", + "StreamTape", + "Desuka", "Nozomi", "Desu", ) @@ -114,33 +124,74 @@ class Jkanime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override fun episodeFromElement(element: Element) = throw UnsupportedOperationException() - override fun videoListParse(response: Response): List