Update AniSAGA.kt
This commit is contained in:
parent
ad93fe7001
commit
66d324e14f
1 changed files with 23 additions and 31 deletions
|
@ -1,7 +1,8 @@
|
||||||
package eu.kanade.tachiyomi.animeextension.hi.animesaga
|
package eu.kanade.tachiyomi.animeextension.hi.animesaga
|
||||||
|
|
||||||
import eu.kanade.tachiyomi.animesource.model.Video
|
import eu.kanade.tachiyomi.animeextension.hi.animesaga.extractors.PlyrXExtractor
|
||||||
import eu.kanade.tachiyomi.animesource.model.SubtitleFile
|
import eu.kanade.tachiyomi.animesource.model.SubtitleFile
|
||||||
|
import eu.kanade.tachiyomi.animesource.model.Video
|
||||||
import eu.kanade.tachiyomi.lib.chillxextractor.ChillxExtractor
|
import eu.kanade.tachiyomi.lib.chillxextractor.ChillxExtractor
|
||||||
import eu.kanade.tachiyomi.multisrc.dooplay.DooPlay
|
import eu.kanade.tachiyomi.multisrc.dooplay.DooPlay
|
||||||
import eu.kanade.tachiyomi.network.POST
|
import eu.kanade.tachiyomi.network.POST
|
||||||
|
@ -9,50 +10,42 @@ import eu.kanade.tachiyomi.util.asJsoup
|
||||||
import okhttp3.FormBody
|
import okhttp3.FormBody
|
||||||
import okhttp3.Response
|
import okhttp3.Response
|
||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
import eu.kanade.tachiyomi.animeextension.hi.animesaga.extractors.PlyrXExtractor
|
|
||||||
|
|
||||||
class AniSAGA : DooPlay(
|
class AniSAGA : DooPlay(
|
||||||
"hi",
|
"hi",
|
||||||
"AniSAGA",
|
"AniSAGA",
|
||||||
"https://www.anisaga.org",
|
"https://www.anisaga.org",
|
||||||
) {
|
) {
|
||||||
private val videoHost = "https://plyrxcdn.site/"
|
private val videoHost = "plyrxcdn.site"
|
||||||
private val chillxExtractor by lazy { ChillxExtractor(client, headers) }
|
|
||||||
private val plyrXExtractor by lazy { PlyrXExtractor(client) }
|
private val chillxExtractor by lazy { ChillxExtractor(client, headers) }
|
||||||
|
private val plyrXExtractor by lazy { PlyrXExtractor(network, headers) }
|
||||||
|
|
||||||
// ============================== Popular ===============================
|
|
||||||
override fun popularAnimeSelector() = "div.top-imdb-list > div.top-imdb-item"
|
override fun popularAnimeSelector() = "div.top-imdb-list > div.top-imdb-item"
|
||||||
|
|
||||||
// ============================ Video Links =============================
|
|
||||||
private var subtitleCallback: (SubtitleFile) -> Unit = {}
|
|
||||||
|
|
||||||
override fun setVideoLoadListener(subtitleCb: (SubtitleFile) -> Unit) {
|
|
||||||
subtitleCallback = subtitleCb
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun videoListParse(response: Response): List<Video> {
|
override fun videoListParse(response: Response): List<Video> {
|
||||||
val document = response.asJsoup()
|
val doc = response.asJsoup()
|
||||||
|
val playerUrls = doc.select("ul#playeroptionsul li:not([id=player-option-trailer])")
|
||||||
|
.map(::getPlayerUrl)
|
||||||
|
|
||||||
val players = document.select("ul#playeroptionsul li:not([id=player-option-trailer])")
|
|
||||||
val videoList = mutableListOf<Video>()
|
val videoList = mutableListOf<Video>()
|
||||||
|
playerUrls.forEach { url ->
|
||||||
players.forEach { player ->
|
val videos = getPlayerVideos(url) {
|
||||||
val url = getPlayerUrl(player)
|
subtitleList.add(it)
|
||||||
|
}
|
||||||
val videos = runCatching {
|
videoList += videos
|
||||||
getPlayerVideos(url)
|
|
||||||
}.getOrElse { emptyList() }
|
|
||||||
|
|
||||||
videoList.addAll(videos)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return videoList
|
return videoList
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getPlayerVideos(url: String): List<Video> {
|
private val subtitleList = mutableListOf<SubtitleFile>()
|
||||||
|
|
||||||
|
override fun subtitleListParse(response: Response): List<SubtitleFile> = subtitleList
|
||||||
|
|
||||||
|
private fun getPlayerVideos(url: String, subtitleCallback: (SubtitleFile) -> Unit = {}): List<Video> {
|
||||||
return when {
|
return when {
|
||||||
videoHost in url -> plyrXExtractor.videosFromUrl(url, baseUrl, subtitleCallback)
|
videoHost in url -> plyrXExtractor.videosFromUrl(url, baseUrl, subtitleCallback)
|
||||||
else -> chillxExtractor.videoFromUrl(url, baseUrl)
|
else -> chillxExtractor.videoFromUrl(url, "$baseUrl/") // fallback
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,11 +57,10 @@ class AniSAGA : DooPlay(
|
||||||
.add("type", player.attr("data-type"))
|
.add("type", player.attr("data-type"))
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
val response = client.newCall(POST("$baseUrl/wp-admin/admin-ajax.php", headers, body))
|
return client.newCall(POST("$baseUrl/wp-admin/admin-ajax.php", headers, body))
|
||||||
.execute()
|
.execute()
|
||||||
.body.string()
|
.body!!.string()
|
||||||
|
.substringAfter("\"embed_url\":\"")
|
||||||
return response.substringAfter("\"embed_url\":\"")
|
|
||||||
.substringBefore("\",")
|
.substringBefore("\",")
|
||||||
.replace("\\", "")
|
.replace("\\", "")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue