feat(en/dramacool): Add StreamWishExtractor (#2034)
This commit is contained in:
@ -5,7 +5,7 @@ ext {
|
||||
extName = 'DramaCool'
|
||||
pkgNameSuffix = 'en.dramacool'
|
||||
extClass = '.DramaCool'
|
||||
extVersionCode = 38
|
||||
extVersionCode = 39
|
||||
libVersion = '13'
|
||||
}
|
||||
|
||||
@ -13,6 +13,8 @@ dependencies {
|
||||
implementation(project(':lib-streamtape-extractor'))
|
||||
implementation(project(':lib-streamsb-extractor'))
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
implementation(project(':lib-playlist-utils'))
|
||||
implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1"
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
@ -7,6 +7,7 @@ import androidx.preference.EditTextPreference
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.PreferenceScreen
|
||||
import eu.kanade.tachiyomi.AppInfo
|
||||
import eu.kanade.tachiyomi.animeextension.en.dramacool.extractors.StreamWishExtractor
|
||||
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimesPage
|
||||
@ -169,6 +170,11 @@ class DramaCool : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
}
|
||||
}
|
||||
|
||||
url.contains("dwish") -> {
|
||||
val video = StreamWishExtractor(client, headers).videosFromUrl(url)
|
||||
videoList.addAll(video)
|
||||
}
|
||||
|
||||
url.contains("streamtape") -> {
|
||||
val video = StreamTapeExtractor(client).videoFromUrl(url)
|
||||
if (video != null) {
|
||||
|
@ -0,0 +1,24 @@
|
||||
package eu.kanade.tachiyomi.animeextension.en.dramacool.extractors
|
||||
|
||||
import dev.datlag.jsunpacker.JsUnpacker
|
||||
import eu.kanade.tachiyomi.animesource.model.Video
|
||||
import eu.kanade.tachiyomi.lib.playlistutils.PlaylistUtils
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import okhttp3.Headers
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class StreamWishExtractor(private val client: OkHttpClient, private val headers: Headers) {
|
||||
fun videosFromUrl(url: String, videoNameGen: (String) -> String = { quality -> "StreamWish - $quality" }): List<Video> {
|
||||
val doc = client.newCall(GET(url, headers = headers)).execute().asJsoup()
|
||||
val jsEval = doc.selectFirst("script:containsData(m3u8)")?.data() ?: return emptyList()
|
||||
|
||||
val masterUrl = JsUnpacker.unpackAndCombine(jsEval)
|
||||
?.substringAfter("source")
|
||||
?.substringAfter("file:\"")
|
||||
?.substringBefore("\"")
|
||||
?: return emptyList()
|
||||
|
||||
return PlaylistUtils(client, headers).extractFromHls(masterUrl, videoNameGen = videoNameGen)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user