refactor: Make extensions use Streamlare lib (#1913)

This commit is contained in:
Claudemirovsky
2023-07-17 00:12:50 +00:00
committed by GitHub
parent b73b4b8ce6
commit 5bc10f3b8b
24 changed files with 26 additions and 309 deletions

View File

@ -11,6 +11,7 @@ ext {
}
dependencies {
implementation(project(':lib-streamlare-extractor'))
implementation(project(':lib-mp4upload-extractor'))
implementation(project(':lib-yourupload-extractor'))
implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1"

View File

@ -9,7 +9,6 @@ import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.id.kuronime.extractors.AnimekuExtractor
import eu.kanade.tachiyomi.animeextension.id.kuronime.extractors.HxFileExtractor
import eu.kanade.tachiyomi.animeextension.id.kuronime.extractors.LinkBoxExtractor
import eu.kanade.tachiyomi.animeextension.id.kuronime.extractors.StreamlareExtractor
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
import eu.kanade.tachiyomi.animesource.model.SAnime
@ -17,6 +16,7 @@ import eu.kanade.tachiyomi.animesource.model.SEpisode
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
import eu.kanade.tachiyomi.lib.mp4uploadextractor.Mp4uploadExtractor
import eu.kanade.tachiyomi.lib.streamlareextractor.StreamlareExtractor
import eu.kanade.tachiyomi.lib.youruploadextractor.YourUploadExtractor
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
@ -151,7 +151,7 @@ class Kuronime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
videoList.addAll(YourUploadExtractor(client).videoFromUrl(decoded, headers, opt.text(), "Original - "))
}
hosterSelection.contains("streamlare") && decoded.contains("streamlare.com") -> {
videoList.addAll(StreamlareExtractor(client).videosFromUrl(decoded, opt.text()))
videoList.addAll(StreamlareExtractor(client).videosFromUrl(decoded, suffix = "- " + opt.text()))
}
hosterSelection.contains("hxfile") && decoded.contains("hxfile.co") -> {
videoList.addAll(HxFileExtractor(client).getVideoFromUrl(decoded, opt.text()))

View File

@ -1,31 +0,0 @@
package eu.kanade.tachiyomi.animeextension.id.kuronime.extractors
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.POST
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient
import okhttp3.RequestBody.Companion.toRequestBody
class StreamlareExtractor(private val client: OkHttpClient) {
fun videosFromUrl(url: String, name: String): List<Video> {
val id = url.split("/").last()
val videoList = mutableListOf<Video>()
val playlist = client.newCall(
POST(
"https://slwatch.co/api/video/stream/get",
body = "{\"id\":\"$id\"}"
.toRequestBody("application/json".toMediaType()),
),
).execute().body.string()
playlist.substringAfter("\"label\":\"").split("\"label\":\"").forEach {
val quality = it.substringAfter("\"label\":\"").substringBefore("\",") + " - $name"
val token = it.substringAfter("\"file\":\"https:\\/\\/larecontent.com\\/video?token=")
.substringBefore("\",")
val response = client.newCall(POST("https://larecontent.com/video?token=$token")).execute()
val videoUrl = response.request.url.toString()
videoList.add(Video(videoUrl, quality, videoUrl))
}
return videoList
}
}