diff --git a/src/en/allanime/build.gradle b/src/en/allanime/build.gradle index b339ab445..86cf89dcf 100644 --- a/src/en/allanime/build.gradle +++ b/src/en/allanime/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'AllAnime' pkgNameSuffix = 'en.allanime' extClass = '.AllAnime' - extVersionCode = 23 + extVersionCode = 24 libVersion = '13' } diff --git a/src/en/allanime/src/eu/kanade/tachiyomi/animeextension/en/allanime/AllAnime.kt b/src/en/allanime/src/eu/kanade/tachiyomi/animeextension/en/allanime/AllAnime.kt index 215cf40fb..caf3bd725 100644 --- a/src/en/allanime/src/eu/kanade/tachiyomi/animeextension/en/allanime/AllAnime.kt +++ b/src/en/allanime/src/eu/kanade/tachiyomi/animeextension/en/allanime/AllAnime.kt @@ -305,7 +305,7 @@ class AllAnime : ConfigurableAnimeSource, AnimeHttpSource() { // list of alternative hosters val mappings = listOf( "streamsb" to listOf("streamsb"), - "vidstreaming" to listOf("vidstreaming", "https://gogo", "playgo1.cc"), + "vidstreaming" to listOf("vidstreaming", "https://gogo", "playgo1.cc", "playtaku"), "doodstream" to listOf("dood"), "okru" to listOf("ok.ru"), "mp4upload" to listOf("mp4upload.com"), @@ -339,7 +339,7 @@ class AllAnime : ConfigurableAnimeSource, AnimeHttpSource() { serverList.add(Server(videoUrl, "internal ${video.sourceName}", video.priority)) } altHosterSelection.contains("player") && video.type == "player" -> { - serverList.add(Server(videoUrl, "player", video.priority)) + serverList.add(Server(videoUrl, "player@${video.sourceName}", video.priority)) } matchingMapping != null -> { serverList.add(Server(videoUrl, matchingMapping.first, video.priority)) @@ -360,12 +360,23 @@ class AllAnime : ConfigurableAnimeSource, AnimeHttpSource() { Pair(it, server.priority) } ?: emptyList() } - sName == "player" -> { + sName.startsWith("player@") -> { + val endPoint = client.newCall(GET("${preferences.siteUrl}/getVersion")).execute() + .parseAs() + .episodeIframeHead + + val videoHeaders = headers.newBuilder() + .add("Accept", "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5") + .add("Host", server.sourceUrl.toHttpUrl().host) + .add("Referer", "$endPoint/") + .build() + listOf( Video( server.sourceUrl, - "Original (player ${server.sourceName})", + "Original (player ${server.sourceName.substringAfter("player@")})", server.sourceUrl, + headers = videoHeaders, ) to server.priority, ) } @@ -377,7 +388,7 @@ class AllAnime : ConfigurableAnimeSource, AnimeHttpSource() { Pair(it, server.priority) } ?: emptyList() } - sName == "gogo" -> { + sName == "vidstreaming" -> { val extractor = VidstreamingExtractor(client, json) runCatching { extractor.videosFromUrl(server.sourceUrl.replace(Regex("^//"), "https://")) @@ -429,6 +440,11 @@ class AllAnime : ConfigurableAnimeSource, AnimeHttpSource() { // ============================= Utilities ============================== + private inline fun Response.parseAs(transform: (String) -> String = { it }): T { + val responseBody = use { transform(it.body.string()) } + return json.decodeFromString(responseBody) + } + private fun prioritySort(pList: List>): List