fix(en/allanime): fix vid-mp4 & player host (#1877)
This commit is contained in:
@ -6,7 +6,7 @@ ext {
|
||||
extName = 'AllAnime'
|
||||
pkgNameSuffix = 'en.allanime'
|
||||
extClass = '.AllAnime'
|
||||
extVersionCode = 23
|
||||
extVersionCode = 24
|
||||
libVersion = '13'
|
||||
}
|
||||
|
||||
|
@ -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<AllAnimeExtractor.VersionResponse>()
|
||||
.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 <reified T> Response.parseAs(transform: (String) -> String = { it }): T {
|
||||
val responseBody = use { transform(it.body.string()) }
|
||||
return json.decodeFromString(responseBody)
|
||||
}
|
||||
|
||||
private fun prioritySort(pList: List<Pair<Video, Float>>): List<Video> {
|
||||
val prefServer = preferences.prefServer
|
||||
val quality = preferences.quality
|
||||
@ -553,14 +569,14 @@ class AllAnime : ConfigurableAnimeSource, AnimeHttpSource() {
|
||||
|
||||
private const val PREF_QUALITY_KEY = "preferred_quality"
|
||||
private val PREF_QUALITY_ENTRIES = arrayOf(
|
||||
"2160p",
|
||||
"1440p",
|
||||
"1080p",
|
||||
"720p",
|
||||
"480p",
|
||||
"360p",
|
||||
"240p",
|
||||
"80p",
|
||||
"1440p (okru only)",
|
||||
"2160p (okru only)",
|
||||
)
|
||||
private val PREF_QUALITY_ENTRY_VALUES = PREF_QUALITY_ENTRIES.map {
|
||||
it.substringBefore("p")
|
||||
|
@ -5,7 +5,6 @@ import eu.kanade.tachiyomi.animesource.model.Video
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import kotlinx.serialization.ExperimentalSerializationApi
|
||||
import kotlinx.serialization.decodeFromString
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import kotlinx.serialization.json.jsonArray
|
||||
|
Reference in New Issue
Block a user