uakino: Redo the logic. Put dubs to sources
This commit is contained in:
parent
e61bc00168
commit
9f6a877b02
1 changed files with 20 additions and 34 deletions
|
@ -1,10 +1,8 @@
|
||||||
package com.lagradost
|
package com.lagradost
|
||||||
|
|
||||||
import android.util.Log
|
|
||||||
import com.lagradost.cloudstream3.*
|
import com.lagradost.cloudstream3.*
|
||||||
import com.lagradost.cloudstream3.LoadResponse.Companion.addActors
|
import com.lagradost.cloudstream3.LoadResponse.Companion.addActors
|
||||||
import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer
|
import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer
|
||||||
import com.lagradost.cloudstream3.mvvm.safeApiCall
|
|
||||||
import com.lagradost.cloudstream3.utils.ExtractorLink
|
import com.lagradost.cloudstream3.utils.ExtractorLink
|
||||||
import com.lagradost.cloudstream3.utils.M3u8Helper
|
import com.lagradost.cloudstream3.utils.M3u8Helper
|
||||||
import org.jsoup.Jsoup
|
import org.jsoup.Jsoup
|
||||||
|
@ -105,7 +103,7 @@ class UakinoProvider : MainAPI() {
|
||||||
val name = eps.text().trim() // Серія 1
|
val name = eps.text().trim() // Серія 1
|
||||||
if (href.isNotEmpty()) {
|
if (href.isNotEmpty()) {
|
||||||
Episode(
|
Episode(
|
||||||
href,
|
"$href,$name",
|
||||||
name,
|
name,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
|
@ -139,46 +137,34 @@ class UakinoProvider : MainAPI() {
|
||||||
|
|
||||||
// It works when I click to view the series
|
// It works when I click to view the series
|
||||||
override suspend fun loadLinks(
|
override suspend fun loadLinks(
|
||||||
data: String, // Link from load -> Episode -> data (https://uakino.club/engine/ajax/playlists.php?news_id=16379&xfield=playlist&time=1676477550880)
|
data: String, // link, episode name
|
||||||
isCasting: Boolean,
|
isCasting: Boolean,
|
||||||
subtitleCallback: (SubtitleFile) -> Unit,
|
subtitleCallback: (SubtitleFile) -> Unit,
|
||||||
callback: (ExtractorLink) -> Unit
|
callback: (ExtractorLink) -> Unit
|
||||||
): Boolean {
|
): Boolean {
|
||||||
|
val dataList = data.split(",")
|
||||||
|
|
||||||
val links = ArrayList<String>()
|
app.get(dataList[0]) // Link
|
||||||
// TODO: Redo the logic. Put voices in sources
|
.parsedSafe<Responses>()?.response.let {
|
||||||
if (data.startsWith("https://ashdi.vip")) {
|
Jsoup.parse(it.toString()).select("div.playlists-videos li:contains(${dataList[1]})").mapNotNull { eps ->
|
||||||
links.add(data)
|
val href = eps.attr("data-file") // ashdi
|
||||||
} else {
|
val dub = eps.attr("data-voice") // FanWoxUA
|
||||||
val iframeUrl = app.get(data).document.selectFirst("iframe#pre")?.attr("src")
|
|
||||||
if (iframeUrl.isNullOrEmpty()) {
|
// Get m3u from player script
|
||||||
val id = data.split("/").last().split("-").first()
|
app.get("https:$href", referer = "$mainUrl/").document.select("script").map { script ->
|
||||||
app.get("$mainUrl/engine/ajax/playlists.php?news_id=$id&xfield=playlist&time=${Date().time}")
|
if (script.data().contains("var player = new Playerjs({")) {
|
||||||
.parsedSafe<Responses>()?.response.let {
|
val m3uLink = script.data().substringAfterLast("file:\"").substringBefore("\",")
|
||||||
Jsoup.parse(it.toString()).select("ul > li").mapNotNull { mirror ->
|
|
||||||
links.add(fixUrl(mirror.attr("data-file")))
|
// Add as source
|
||||||
|
M3u8Helper.generateM3u8(
|
||||||
|
source = dub,
|
||||||
|
streamUrl = m3uLink,
|
||||||
|
referer = "https://ashdi.vip/"
|
||||||
|
).forEach(callback)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
links.add(iframeUrl)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
links.apmap { link ->
|
|
||||||
safeApiCall {
|
|
||||||
app.get(link, referer = "$mainUrl/").document.select("script").map { script ->
|
|
||||||
if (script.data().contains("var player = new Playerjs({")) {
|
|
||||||
val m3uLink =
|
|
||||||
script.data().substringAfterLast("file:\"").substringBefore("\",")
|
|
||||||
M3u8Helper.generateM3u8(
|
|
||||||
source = this.name,
|
|
||||||
streamUrl = m3uLink,
|
|
||||||
referer = "https://ashdi.vip/"
|
|
||||||
).forEach(callback)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue