From aa25976a1be87c6256c56b38b7df773a89654111 Mon Sep 17 00:00:00 2001 From: hexated Date: Sun, 21 May 2023 23:49:00 +0700 Subject: [PATCH] sora: small fix in crunchy --- .../src/main/kotlin/com/hexated/SoraExtractor.kt | 8 ++++---- SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt | 10 ++++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt index db166185..d6103df1 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt @@ -1474,14 +1474,14 @@ object SoraExtractor : SoraStream() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val id = getCrunchyrollId(aniId) ?: return + val id = getCrunchyrollId(aniId) val audioLocal = listOf( "ja-JP", "en-US", "zh-CN", ) val headers = getCrunchyrollToken() - val seasonIdData = app.get("$crunchyrollAPI/content/v2/cms/series/$id/seasons", headers = headers) + val seasonIdData = app.get("$crunchyrollAPI/content/v2/cms/series/${id ?: return}/seasons", headers = headers) .parsedSafe()?.data?.let { s -> if (s.size == 1) { s.firstOrNull() @@ -1496,9 +1496,9 @@ object SoraExtractor : SoraStream() { } } val seasonId = seasonIdData?.versions?.filter { it.audio_locale in audioLocal } - ?.map { it.guid to it.audio_locale } + ?.map { it.guid to it.audio_locale } ?: listOf(seasonIdData?.id to "ja-JP") - seasonId?.apmap { (sId, audioL) -> + seasonId.apmap { (sId, audioL) -> val streamsLink = app.get( "$crunchyrollAPI/content/v2/cms/seasons/${sId ?: return@apmap}/episodes", diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt b/SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt index 960d3dfe..dfcc8ec9 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt @@ -957,10 +957,12 @@ suspend fun getCrunchyrollId(aniId: String?): String? { "variables" to variables ).toJson().toRequestBody(RequestBodyTypes.JSON.toMediaTypeOrNull()) - return app.post("https://graphql.anilist.co", requestBody = data) - .parsedSafe()?.data?.Media?.externalLinks?.find { it.site == "VRV" }?.url?.let { - Regex("series/(\\w+)/?").find(it)?.groupValues?.get(1) - } + val externalLinks = app.post("https://graphql.anilist.co", requestBody = data) + .parsedSafe()?.data?.Media?.externalLinks + + return (externalLinks?.find { it.site == "VRV" } ?: externalLinks?.find { it.site == "Crunchyroll" })?.url?.let { + Regex("series/(\\w+)/?").find(it)?.groupValues?.get(1) + } } suspend fun extractPutlockerSources(url: String?): NiceResponse? {