From 2b6a6a38794c023fe4f4904dc03e1c9842e54ed7 Mon Sep 17 00:00:00 2001 From: hexated Date: Sun, 8 Oct 2023 08:37:12 +0700 Subject: [PATCH] small fix --- .../src/main/kotlin/com/hexated/Extractors.kt | 44 +++++++++++++++++++ .../kotlin/com/hexated/SoraStreamPlugin.kt | 3 ++ 2 files changed, 47 insertions(+) diff --git a/SoraStream/src/main/kotlin/com/hexated/Extractors.kt b/SoraStream/src/main/kotlin/com/hexated/Extractors.kt index c60359c2..dcc65e32 100644 --- a/SoraStream/src/main/kotlin/com/hexated/Extractors.kt +++ b/SoraStream/src/main/kotlin/com/hexated/Extractors.kt @@ -311,6 +311,50 @@ object NineTv { ) } +open class Streamruby : ExtractorApi() { + override val name = "Streamruby" + override val mainUrl = "https://streamruby.com" + override val requiresReferer = true + + override suspend fun getUrl( + url: String, + referer: String?, + subtitleCallback: (SubtitleFile) -> Unit, + callback: (ExtractorLink) -> Unit + ) { + val id = "/e/(\\w+)".toRegex().find(url)?.groupValues?.get(1) ?: return + val response = app.post("$mainUrl/dl", data = mapOf( + "op" to "embed", + "file_code" to id, + "auto" to "1", + "referer" to "", + ), referer = referer) + val script = if (!getPacked(response.text).isNullOrEmpty()) { + getAndUnpack(response.text) + } else { + response.document.selectFirst("script:containsData(sources:)")?.data() + } + val m3u8 = + Regex("file:\\s*\"(.*?m3u8.*?)\"").find(script ?: return)?.groupValues?.getOrNull(1) + M3u8Helper.generateM3u8( + name, + m3u8 ?: return, + mainUrl + ).forEach(callback) + } + +} + +class Streamwish : Filesim() { + override val name = "Streamwish" + override var mainUrl = "https://streamwish.to" +} + +class FilelionsTo : Filesim() { + override val name = "Filelions" + override var mainUrl = "https://filelions.to" +} + class Hubcloud : VCloud() { override val name = "Hubcloud" override val mainUrl = "https://hubcloud.in" diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraStreamPlugin.kt b/SoraStream/src/main/kotlin/com/hexated/SoraStreamPlugin.kt index 224dcc9b..130922d7 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraStreamPlugin.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraStreamPlugin.kt @@ -22,5 +22,8 @@ class SoraStreamPlugin: Plugin() { registerExtractorAPI(Pixeldra()) registerExtractorAPI(Hubcloud()) registerExtractorAPI(M4ufree()) + registerExtractorAPI(Streamruby()) + registerExtractorAPI(Streamwish()) + registerExtractorAPI(FilelionsTo()) } } \ No newline at end of file