fix(lib/lycoris&lulu&docchi): small change v4

This commit is contained in:
Hayanek 2025-04-02 19:20:57 +02:00
parent 4289c079c5
commit 9f910735b2
2 changed files with 14 additions and 11 deletions

View file

@ -3,14 +3,15 @@ package eu.kanade.tachiyomi.lib.luluextractor
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import okhttp3.Headers
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.OkHttpClient
import java.util.regex.Pattern
class LuluExtractor(private val client: OkHttpClient, headers: Headers) {
private val headers = headers.newBuilder()
.add("Referer", "https://luluvdo.com")
.add("Origin", "https://luluvdo.com")
.add("Referer", "https://luluvdo.com/")
.add("Origin", "https://luluvdo.com/")
.build()
//Credit: https://github.com/skoruppa/docchi-stremio-addon/blob/main/app/players/lulustream.py
@ -21,7 +22,7 @@ class LuluExtractor(private val client: OkHttpClient, headers: Headers) {
val html = client.newCall(GET(url, headers)).execute().use { it.body.string() }
val m3u8Url = extractM3u8Url(html) ?: return emptyList()
val fixedUrl = fixM3u8Link(m3u8Url)
val quality = getResolution(fixedUrl, headers)
val quality = getResolution(fixedUrl)
videos.add(Video(fixedUrl, "${prefix}Lulu - $quality", fixedUrl, headers))
} catch (e: Exception) {
@ -77,16 +78,18 @@ class LuluExtractor(private val client: OkHttpClient, headers: Headers) {
val baseUrl = link.split("?")[0]
val fixedLink = StringBuilder(baseUrl)
val orderedParams = paramOrder.filter { paramDict.containsKey(it) }.map { "$it=${paramDict[it]}" }
val fixedLink = baseUrl.toHttpUrl().newBuilder()
paramOrder.filter { paramDict.containsKey(it) }.forEach { key ->
fixedLink.addQueryParameter(key, paramDict[key])
}
extraParams.forEach { (key, value) ->
fixedLink.addQueryParameter(key, value)
}
fixedLink.append("?").append(orderedParams.joinToString("&"))
fixedLink.append("&").append(extraParams.entries.joinToString("&") { "${it.key}=${it.value}" })
return fixedLink.toString()
return fixedLink.build().toString()
}
private fun getResolution(m3u8Url: String, headers: Headers): String {
private fun getResolution(m3u8Url: String): String {
return try {
val content = client.newCall(GET(m3u8Url, headers)).execute()
.use { it.body.string() }

View file

@ -278,7 +278,7 @@ class Docchi : ConfigurableAnimeSource, AnimeHttpSource() {
val genres: List<String>,
val broadcast_day: String?,
val aired_from: String?,
val episodes: Int,
val episodes: Int?,
val season: String,
val season_year: Int,
val series_type: String,