From 70b5e3a6d96c987544d74852121133b36478379f Mon Sep 17 00:00:00 2001 From: hexated Date: Mon, 6 Mar 2023 08:27:16 +0700 Subject: [PATCH] sora: using consumet again for crunchyroll --- SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt | 8 ++++---- SoraStream/src/main/kotlin/com/hexated/SoraStream.kt | 7 ++++--- SoraStream/src/main/kotlin/com/hexated/SoraStreamLite.kt | 2 +- SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt | 6 +++--- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt index 95243cf2..8bf948a1 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt @@ -1524,7 +1524,7 @@ object SoraExtractor : SoraStream() { callback: (ExtractorLink) -> Unit ) { val id = searchCrunchyrollAnimeId(title ?: return) ?: return - val detail = app.get("$consumetCrunchyrollAPI/info?id=$id&mediaType=series").text + val detail = app.get("$consumetCrunchyrollAPI/info/$id?fetchAllSeasons=true").text val epsId = tryParseJson(detail)?.findCrunchyrollId( title, season, @@ -1534,13 +1534,13 @@ object SoraExtractor : SoraStream() { epsId.apmap { val json = - app.get("$consumetCrunchyrollAPI/watch?episodeId=${it?.first ?: return@apmap null}") + app.get("$consumetCrunchyrollAPI/watch/${it?.first ?: return@apmap null}") .parsedSafe() json?.sources?.map source@{ source -> callback.invoke( ExtractorLink( - "Crunchyroll [${it.second ?: ""}]", + "Crunchyroll", "Crunchyroll [${it.second ?: ""}]", source.url ?: return@source null, "https://static.crunchyroll.com/", @@ -1553,7 +1553,7 @@ object SoraExtractor : SoraStream() { json?.subtitles?.map subtitle@{ sub -> subtitleCallback.invoke( SubtitleFile( - sub.lang ?: "", + fixCrunchyrollLang(sub.lang ?: return@subtitle null) ?: sub.lang, sub.url ?: return@subtitle null ) ) diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt b/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt index 49faa873..60fe4ee4 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt @@ -6,6 +6,7 @@ import com.hexated.SoraExtractor.invokeAnimes import com.hexated.SoraExtractor.invokeBlackmovies import com.hexated.SoraExtractor.invokeBollyMaza import com.hexated.SoraExtractor.invokeCodexmovies +import com.hexated.SoraExtractor.invokeCrunchyroll import com.hexated.SoraExtractor.invokeDbgo import com.hexated.SoraExtractor.invokeFilmxy import com.hexated.SoraExtractor.invokeFlixhq @@ -98,8 +99,8 @@ open class SoraStream : TmdbProvider() { const val xMovieAPI = "https://xemovies.to" const val haikeiFlixhqAPI = "https://api.haikei.xyz/movies/flixhq" // disabled const val consumetZoroAPI = "https://api.consumet.org/anime/zoro" - const val consumetCrunchyrollAPI = "https://api.consumet.org/anime/crunchyroll" // dead - const val kickassanimeAPI = "https://www2.kickassanime.ro" + const val consumetCrunchyrollAPI = "https://cronchy.consumet.stream" + const val kickassanimeAPI = "https://www2.kickassanime.ro" // disabled due to consumet const val kissKhAPI = "https://kisskh.me" const val lingAPI = "https://ling-online.net" const val uhdmoviesAPI = "https://uhdmovies.world" @@ -411,7 +412,7 @@ open class SoraStream : TmdbProvider() { ) }, { - if (res.season != null && res.isAnime) invokeKickassanime( + if (res.season != null && res.isAnime) invokeCrunchyroll( res.title, res.epsTitle, res.season, diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraStreamLite.kt b/SoraStream/src/main/kotlin/com/hexated/SoraStreamLite.kt index 3ff4851e..774dff71 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraStreamLite.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraStreamLite.kt @@ -108,7 +108,7 @@ class SoraStreamLite : SoraStream() { ) }, { - if (res.season != null && res.isAnime) invokeKickassanime( + if (res.season != null && res.isAnime) invokeCrunchyroll( res.title, res.epsTitle, res.season, diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt b/SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt index da5cee5d..b3a07427 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt @@ -539,7 +539,7 @@ suspend fun invokeSapphire( res?.subtitles?.map { sub -> subtitleCallback.invoke( SubtitleFile( - getKaaLanguage(sub.language ?: return@map null) ?: sub.language, + fixCrunchyrollLang(sub.language ?: return@map null) ?: sub.language, sub.url ?: return@map null ) ) @@ -729,7 +729,7 @@ fun Document.findTvMoviesIframe(): String? { } suspend fun searchCrunchyrollAnimeId(title: String): String? { - val res = app.get("${consumetCrunchyrollAPI}/$title") + val res = app.get("${consumetCrunchyrollAPI}/search/$title") .parsedSafe()?.results return (if (res?.size == 1) { res.firstOrNull() @@ -991,7 +991,7 @@ fun getDbgoLanguage(str: String): String { } } -fun getKaaLanguage(language: String?): String? { +fun fixCrunchyrollLang(language: String?): String? { return SubtitleHelper.fromTwoLettersToLanguage(language ?: return null) ?: SubtitleHelper.fromTwoLettersToLanguage(language.substringBefore("-")) }