fix(en/allanime): fix vid-mp4 & player host (#1877)
This commit is contained in:
@ -6,7 +6,7 @@ ext {
|
|||||||
extName = 'AllAnime'
|
extName = 'AllAnime'
|
||||||
pkgNameSuffix = 'en.allanime'
|
pkgNameSuffix = 'en.allanime'
|
||||||
extClass = '.AllAnime'
|
extClass = '.AllAnime'
|
||||||
extVersionCode = 23
|
extVersionCode = 24
|
||||||
libVersion = '13'
|
libVersion = '13'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -305,7 +305,7 @@ class AllAnime : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||||||
// list of alternative hosters
|
// list of alternative hosters
|
||||||
val mappings = listOf(
|
val mappings = listOf(
|
||||||
"streamsb" to listOf("streamsb"),
|
"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"),
|
"doodstream" to listOf("dood"),
|
||||||
"okru" to listOf("ok.ru"),
|
"okru" to listOf("ok.ru"),
|
||||||
"mp4upload" to listOf("mp4upload.com"),
|
"mp4upload" to listOf("mp4upload.com"),
|
||||||
@ -339,7 +339,7 @@ class AllAnime : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||||||
serverList.add(Server(videoUrl, "internal ${video.sourceName}", video.priority))
|
serverList.add(Server(videoUrl, "internal ${video.sourceName}", video.priority))
|
||||||
}
|
}
|
||||||
altHosterSelection.contains("player") && video.type == "player" -> {
|
altHosterSelection.contains("player") && video.type == "player" -> {
|
||||||
serverList.add(Server(videoUrl, "player", video.priority))
|
serverList.add(Server(videoUrl, "player@${video.sourceName}", video.priority))
|
||||||
}
|
}
|
||||||
matchingMapping != null -> {
|
matchingMapping != null -> {
|
||||||
serverList.add(Server(videoUrl, matchingMapping.first, video.priority))
|
serverList.add(Server(videoUrl, matchingMapping.first, video.priority))
|
||||||
@ -360,12 +360,23 @@ class AllAnime : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||||||
Pair(it, server.priority)
|
Pair(it, server.priority)
|
||||||
} ?: emptyList()
|
} ?: 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(
|
listOf(
|
||||||
Video(
|
Video(
|
||||||
server.sourceUrl,
|
server.sourceUrl,
|
||||||
"Original (player ${server.sourceName})",
|
"Original (player ${server.sourceName.substringAfter("player@")})",
|
||||||
server.sourceUrl,
|
server.sourceUrl,
|
||||||
|
headers = videoHeaders,
|
||||||
) to server.priority,
|
) to server.priority,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -377,7 +388,7 @@ class AllAnime : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||||||
Pair(it, server.priority)
|
Pair(it, server.priority)
|
||||||
} ?: emptyList()
|
} ?: emptyList()
|
||||||
}
|
}
|
||||||
sName == "gogo" -> {
|
sName == "vidstreaming" -> {
|
||||||
val extractor = VidstreamingExtractor(client, json)
|
val extractor = VidstreamingExtractor(client, json)
|
||||||
runCatching {
|
runCatching {
|
||||||
extractor.videosFromUrl(server.sourceUrl.replace(Regex("^//"), "https://"))
|
extractor.videosFromUrl(server.sourceUrl.replace(Regex("^//"), "https://"))
|
||||||
@ -429,6 +440,11 @@ class AllAnime : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||||||
|
|
||||||
// ============================= Utilities ==============================
|
// ============================= 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> {
|
private fun prioritySort(pList: List<Pair<Video, Float>>): List<Video> {
|
||||||
val prefServer = preferences.prefServer
|
val prefServer = preferences.prefServer
|
||||||
val quality = preferences.quality
|
val quality = preferences.quality
|
||||||
@ -553,14 +569,14 @@ class AllAnime : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||||||
|
|
||||||
private const val PREF_QUALITY_KEY = "preferred_quality"
|
private const val PREF_QUALITY_KEY = "preferred_quality"
|
||||||
private val PREF_QUALITY_ENTRIES = arrayOf(
|
private val PREF_QUALITY_ENTRIES = arrayOf(
|
||||||
|
"2160p",
|
||||||
|
"1440p",
|
||||||
"1080p",
|
"1080p",
|
||||||
"720p",
|
"720p",
|
||||||
"480p",
|
"480p",
|
||||||
"360p",
|
"360p",
|
||||||
"240p",
|
"240p",
|
||||||
"80p",
|
"80p",
|
||||||
"1440p (okru only)",
|
|
||||||
"2160p (okru only)",
|
|
||||||
)
|
)
|
||||||
private val PREF_QUALITY_ENTRY_VALUES = PREF_QUALITY_ENTRIES.map {
|
private val PREF_QUALITY_ENTRY_VALUES = PREF_QUALITY_ENTRIES.map {
|
||||||
it.substringBefore("p")
|
it.substringBefore("p")
|
||||||
|
@ -5,7 +5,6 @@ import eu.kanade.tachiyomi.animesource.model.Video
|
|||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
import eu.kanade.tachiyomi.util.asJsoup
|
import eu.kanade.tachiyomi.util.asJsoup
|
||||||
import kotlinx.serialization.ExperimentalSerializationApi
|
import kotlinx.serialization.ExperimentalSerializationApi
|
||||||
import kotlinx.serialization.decodeFromString
|
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import kotlinx.serialization.json.JsonObject
|
import kotlinx.serialization.json.JsonObject
|
||||||
import kotlinx.serialization.json.jsonArray
|
import kotlinx.serialization.json.jsonArray
|
||||||
|
Reference in New Issue
Block a user