diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e51cd920..90cbe6a2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,11 +19,11 @@ kotlin-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", ver coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines_version" } coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines_version" } -injekt-core = { module = "com.github.inorichi.injekt:injekt-core", version = "65b0440" } +injekt = "com.github.mihonapp:injekt:91edab2317" rxjava = { module = "io.reactivex:rxjava", version = "1.3.8" } jsoup = { module = "org.jsoup:jsoup", version = "1.16.1" } okhttp = { module = "com.squareup.okhttp3:okhttp", version = "5.0.0-alpha.11" } quickjs = { module = "app.cash.quickjs:quickjs-android", version = "0.9.2" } [bundles] -common = ["kotlin-stdlib", "injekt-core", "rxjava", "kotlin-protobuf", "kotlin-json", "jsoup", "okhttp", "aniyomi-lib", "quickjs", "coroutines-core", "coroutines-android"] +common = ["kotlin-stdlib", "injekt", "rxjava", "kotlin-protobuf", "kotlin-json", "jsoup", "okhttp", "aniyomi-lib", "quickjs", "coroutines-core", "coroutines-android"] diff --git a/src/all/torrentioanime/build.gradle b/src/all/torrentioanime/build.gradle index c7de4b40..05d1795d 100644 --- a/src/all/torrentioanime/build.gradle +++ b/src/all/torrentioanime/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Torrentio Anime (Torrent / Debrid)' extClass = '.Torrentio' - extVersionCode = 8 + extVersionCode = 9 containsNsfw = false } diff --git a/src/all/torrentioanime/src/eu/kanade/tachiyomi/animeextension/all/torrentioanime/Torrentio.kt b/src/all/torrentioanime/src/eu/kanade/tachiyomi/animeextension/all/torrentioanime/Torrentio.kt index dcc8c677..d3a2f6f0 100644 --- a/src/all/torrentioanime/src/eu/kanade/tachiyomi/animeextension/all/torrentioanime/Torrentio.kt +++ b/src/all/torrentioanime/src/eu/kanade/tachiyomi/animeextension/all/torrentioanime/Torrentio.kt @@ -75,7 +75,7 @@ class Torrentio : ConfigurableAnimeSource, AnimeHttpSource() { currentPage hasNextPage } - media(type: ANIME, sort: ${"$"}sort, search: ${"$"}search, status_in:[RELEASING,FINISHED]) { + media(type: ANIME, sort: ${"$"}sort, search: ${"$"}search, status_in:[RELEASING,FINISHED,NOT_YET_RELEASED]) { id title { romaji diff --git a/src/en/aniplay/build.gradle b/src/en/aniplay/build.gradle index 64a3a7ab..33076e1d 100644 --- a/src/en/aniplay/build.gradle +++ b/src/en/aniplay/build.gradle @@ -2,7 +2,7 @@ ext { extName = 'AniPlay' extClass = '.AniPlay' themePkg = 'anilist' - overrideVersionCode = 2 + overrideVersionCode = 3 } apply from: "$rootDir/common.gradle" diff --git a/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlay.kt b/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlay.kt index 661201f9..d8ba1518 100644 --- a/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlay.kt +++ b/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlay.kt @@ -1,6 +1,7 @@ package eu.kanade.tachiyomi.animeextension.en.aniplay import android.app.Application +import android.net.Uri import android.util.Base64 import android.util.Log import android.widget.Toast @@ -14,7 +15,6 @@ import eu.kanade.tachiyomi.animesource.model.Track import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.lib.playlistutils.PlaylistUtils import eu.kanade.tachiyomi.multisrc.anilist.AniListAnimeHttpSource -import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.util.parallelFlatMapBlocking import eu.kanade.tachiyomi.util.parseAs @@ -73,14 +73,27 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { val httpUrl = anime.url.toHttpUrl() val animeId = httpUrl.pathSegments[2] - return GET("$baseUrl/api/anime/episode/$animeId") + val requestBody = "[\"${animeId}\",true,false]" + .toRequestBody("text/plain;charset=UTF-8".toMediaType()) + + val headersWithAction = + headers.newBuilder() + // next.js stuff I guess + .add("Next-Action", HEADER_NEXT_ACTION_EPISODE_LIST_VALUE) + .build() + + return POST(url = "$baseUrl/anime/info/$animeId", headersWithAction, requestBody) } override fun episodeListParse(response: Response): List { val isMarkFiller = preferences.getBoolean(PREF_MARK_FILLER_EPISODE_KEY, PREF_MARK_FILLER_EPISODE_DEFAULT) val episodeListUrl = response.request.url - val animeId = episodeListUrl.pathSegments[3] - val providers = response.parseAs>() + val animeId = episodeListUrl.pathSegments[2] + + val responseString = response.body.string() + val episodesArrayString = responseString.split("1:").last() + + val providers = episodesArrayString.parseAs>() val episodes = mutableMapOf() val episodeExtras = mutableMapOf>() @@ -94,6 +107,7 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { val episodeExtra = EpisodeExtra( source = provider.providerId, episodeId = episode.id, + episodeNum = episode.number, hasDub = episode.hasDub, ) episodeExtras[episodeNumber] = existingEpisodeExtras + listOf(episodeExtra) @@ -142,7 +156,7 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { override suspend fun getVideoList(episode: SEpisode): List