From 9f910735b2be5f36f37d4a7973f56288ce323ca3 Mon Sep 17 00:00:00 2001 From: Hayanek Date: Wed, 2 Apr 2025 19:20:57 +0200 Subject: [PATCH] fix(lib/lycoris&lulu&docchi): small change v4 --- .../lib/luluextractor/LuluExtractor.kt | 23 +++++++++++-------- .../animeextension/pl/docchi/Docchi.kt | 2 +- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/lulu-extractor/src/main/java/eu/kanade/tachiyomi/lib/luluextractor/LuluExtractor.kt b/lib/lulu-extractor/src/main/java/eu/kanade/tachiyomi/lib/luluextractor/LuluExtractor.kt index abfbd8c2..56b47132 100644 --- a/lib/lulu-extractor/src/main/java/eu/kanade/tachiyomi/lib/luluextractor/LuluExtractor.kt +++ b/lib/lulu-extractor/src/main/java/eu/kanade/tachiyomi/lib/luluextractor/LuluExtractor.kt @@ -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() } diff --git a/src/pl/docchi/src/eu/kanade/tachiyomi/animeextension/pl/docchi/Docchi.kt b/src/pl/docchi/src/eu/kanade/tachiyomi/animeextension/pl/docchi/Docchi.kt index 4621b611..d1222e65 100644 --- a/src/pl/docchi/src/eu/kanade/tachiyomi/animeextension/pl/docchi/Docchi.kt +++ b/src/pl/docchi/src/eu/kanade/tachiyomi/animeextension/pl/docchi/Docchi.kt @@ -278,7 +278,7 @@ class Docchi : ConfigurableAnimeSource, AnimeHttpSource() { val genres: List, 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,