From ec7b24052bf45f533c7a3eb9274d1190f516bd88 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 17 Jan 2024 19:51:51 +0700 Subject: [PATCH] update --- .../src/main/kotlin/com/hexated/Extractors.kt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Minioppai/src/main/kotlin/com/hexated/Extractors.kt b/Minioppai/src/main/kotlin/com/hexated/Extractors.kt index 02582a4e..3b8b8470 100644 --- a/Minioppai/src/main/kotlin/com/hexated/Extractors.kt +++ b/Minioppai/src/main/kotlin/com/hexated/Extractors.kt @@ -36,12 +36,16 @@ open class Streampai : ExtractorApi() { val res = app.get(url, referer = referer).document val data = res.selectFirst("script:containsData(player =)")?.data() ?: return - val sources = data.substringAfter("sources: [").substringBefore("]").replace("\'", "\"") + val sources = data.substringAfter("sources: [").substringBefore("]") .addMarks("src") .addMarks("type") .addMarks("size") .replace("\'", "\"") + val tracks = data.substringAfter("tracks: [").substringBefore("]") + .replace("\'", "\"") + + tryParseJson>("[$sources]")?.forEach { callback.invoke( ExtractorLink( @@ -56,6 +60,15 @@ open class Streampai : ExtractorApi() { ) ) } + + tryParseJson>("[$tracks]")?.forEach { + subtitleCallback.invoke( + SubtitleFile( + fixTitle(it.label ?: return@forEach), + fixUrl(it.src) + ) + ) + } } private fun String.addMarks(str: String): String { @@ -65,6 +78,7 @@ open class Streampai : ExtractorApi() { data class Responses( @JsonProperty("src") val src: String, @JsonProperty("type") val type: String?, + @JsonProperty("label") val label: String?, @JsonProperty("size") val size: Int? )