fix(lib/playlistutils): Keep query for m3u8 requests (#3032)

This commit is contained in:
Secozzi 2024-03-10 13:18:28 +00:00 committed by GitHub
parent 49f8ed987e
commit 0bed9f97e5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -5,6 +5,7 @@ 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 okhttp3.Headers import okhttp3.Headers
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.internal.commonEmptyHeaders import okhttp3.internal.commonEmptyHeaders
@ -105,9 +106,8 @@ class PlaylistUtils(private val client: OkHttpClient, private val headers: Heade
val masterUrlBasePath = playlistHttpUrl.newBuilder().apply { val masterUrlBasePath = playlistHttpUrl.newBuilder().apply {
removePathSegment(playlistHttpUrl.pathSize - 1) removePathSegment(playlistHttpUrl.pathSize - 1)
addPathSegment("") addPathSegment("")
query(null)
fragment(null) fragment(null)
}.build().toString() }.build()
// Get subtitles // Get subtitles
val subtitleTracks = subtitleList + SUBTITLE_REGEX.findAll(masterPlaylist).mapNotNull { val subtitleTracks = subtitleList + SUBTITLE_REGEX.findAll(masterPlaylist).mapNotNull {
@ -146,14 +146,14 @@ class PlaylistUtils(private val client: OkHttpClient, private val headers: Heade
} }
} }
private fun getAbsoluteUrl(url: String, playlistUrl: String, masterBase: String): String? { private fun getAbsoluteUrl(url: String, playlistUrl: String, masterBase: HttpUrl): String? {
return when { return when {
url.isEmpty() -> null url.isEmpty() -> null
url.startsWith("http") -> url url.startsWith("http") -> url
url.startsWith("//") -> "https:$url" url.startsWith("//") -> "https:$url"
url.startsWith("/") -> playlistUrl.toHttpUrl().newBuilder().encodedPath("/").build().toString() url.startsWith("/") -> playlistUrl.toHttpUrl().newBuilder().encodedPath("/").build().toString()
.substringBeforeLast("/") + url .substringBeforeLast("/") + url
else -> masterBase + url else -> masterBase.newBuilder().addEncodedPathSegments(url).build().toString()
} }
} }