Compare commits

..

No commits in common. "895dfb7d5f0dcf41ba62cdc1eb3f9373184e8649" and "ffb97eb6c6a52014bbad82295d317ea6c17fb86b" have entirely different histories.

34 changed files with 54 additions and 53 deletions

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 6 version = 5
dependencies{ dependencies{
implementation("com.google.code.gson:gson:2.9.0") implementation("com.google.code.gson:gson:2.9.0")

View file

@ -209,7 +209,7 @@ class AnimeONProvider : MainAPI() {
source = "${dub.fundub.name} (${dub.player[0].name})", source = "${dub.fundub.name} (${dub.player[0].name})",
streamUrl = getM3U(app.get("${apiUrl}/player/episode/${epd.id}").parsedSafe<FundubVideoUrl>()!!.videoUrl), streamUrl = getM3U(app.get("${apiUrl}/player/episode/${epd.id}").parsedSafe<FundubVideoUrl>()!!.videoUrl),
referer = "https://animeon.club" referer = "https://animeon.club"
).last().let(callback) ).forEach(callback)
} }
} }
return true return true
@ -220,7 +220,7 @@ class AnimeONProvider : MainAPI() {
source = "${dub.fundub.name} (${dub.player[0].name})", source = "${dub.fundub.name} (${dub.player[0].name})",
streamUrl = getM3U(app.get("${apiUrl}/player/${dub.player[0].id}/${dub.fundub.id}").parsedSafe<FundubVideoUrl>()!!.videoUrl), streamUrl = getM3U(app.get("${apiUrl}/player/${dub.player[0].id}/${dub.fundub.id}").parsedSafe<FundubVideoUrl>()!!.videoUrl),
referer = "https://animeon.club" referer = "https://animeon.club"
).last().let(callback) ).forEach(callback)
} }
return true return true

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 6 version = 5
cloudstream { cloudstream {

View file

@ -181,7 +181,7 @@ class AnimeUAProvider : MainAPI() {
source = dataList[0], source = dataList[0],
streamUrl = m3u8Url, streamUrl = m3u8Url,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
return true return true
} }
@ -200,7 +200,7 @@ class AnimeUAProvider : MainAPI() {
source = dubs.title, source = dubs.title,
streamUrl = episode.file, streamUrl = episode.file,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
} }
} }
} }

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 10 version = 9
cloudstream { cloudstream {

View file

@ -197,14 +197,14 @@ class AnitubeinuaProvider : MainAPI() {
source = "${it.urls.playerName} (${it.urls.name})", source = "${it.urls.playerName} (${it.urls.name})",
streamUrl = AshdiExtractor().ParseM3U8(this.urls.url), streamUrl = AshdiExtractor().ParseM3U8(this.urls.url),
referer = "https://tortuga.wtf/") referer = "https://tortuga.wtf/")
.last().let(callback) .forEach(callback)
} }
it.urls.url.contains("https://ashdi.vip/vod") -> { it.urls.url.contains("https://ashdi.vip/vod") -> {
M3u8Helper.generateM3u8( M3u8Helper.generateM3u8(
source = "${it.urls.playerName} (${it.urls.name})", source = "${it.urls.playerName} (${it.urls.name})",
streamUrl = AshdiExtractor().ParseM3U8(this.urls.url), streamUrl = AshdiExtractor().ParseM3U8(this.urls.url),
referer = "https://qeruya.cyou") referer = "https://qeruya.cyou")
.last().let(callback) .forEach(callback)
} }
it.urls.url.contains("https://www.udrop.com") -> { it.urls.url.contains("https://www.udrop.com") -> {
callback.invoke( callback.invoke(
@ -274,14 +274,14 @@ class AnitubeinuaProvider : MainAPI() {
source = dub.playerName, source = dub.playerName,
streamUrl = AshdiExtractor().ParseM3U8(this), streamUrl = AshdiExtractor().ParseM3U8(this),
referer = "https://tortuga.wtf/") referer = "https://tortuga.wtf/")
.last().let(callback) .forEach(callback)
} }
contains("https://ashdi.vip/vod") -> { contains("https://ashdi.vip/vod") -> {
M3u8Helper.generateM3u8( M3u8Helper.generateM3u8(
source = dub.playerName, source = dub.playerName,
streamUrl = AshdiExtractor().ParseM3U8(this), streamUrl = AshdiExtractor().ParseM3U8(this),
referer = "https://qeruya.cyou") referer = "https://qeruya.cyou")
.last().let(callback) .forEach(callback)
} }
contains("https://www.udrop.com") -> { contains("https://www.udrop.com") -> {
callback.invoke( callback.invoke(

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 5 version = 4
dependencies { dependencies {
implementation("com.google.code.gson:gson:2.9.0") implementation("com.google.code.gson:gson:2.9.0")

View file

@ -205,7 +205,7 @@ class BambooUAProvider : MainAPI() {
source = it.attr("data-title"), source = it.attr("data-title"),
streamUrl = it.attr("data-file"), streamUrl = it.attr("data-file"),
referer = "" referer = ""
).last().let(callback) ).forEach(callback)
} }
return true return true
} }
@ -215,7 +215,7 @@ class BambooUAProvider : MainAPI() {
source = "Bambooua", source = "Bambooua",
streamUrl = data, streamUrl = data,
referer = "" referer = ""
).last().let(callback) ).forEach(callback)
return true return true
} }

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 6 version = 5
cloudstream { cloudstream {

View file

@ -156,7 +156,7 @@ class EneyidaProvider : MainAPI() {
source = dataList[0], source = dataList[0],
streamUrl = m3u8Url.replace("https://", "http://"), streamUrl = m3u8Url.replace("https://", "http://"),
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
val subtitleUrl = app.get(dataList[1]).document.select("script").html() val subtitleUrl = app.get(dataList[1]).document.select("script").html()
.substringAfterLast("subtitle: \"") .substringAfterLast("subtitle: \"")
@ -186,7 +186,7 @@ class EneyidaProvider : MainAPI() {
source = dubs.title, source = dubs.title,
streamUrl = episode.file.replace("https://", "http://"), streamUrl = episode.file.replace("https://", "http://"),
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
if(episode.subtitle.isBlank()) return true if(episode.subtitle.isBlank()) return true
subtitleCallback.invoke( subtitleCallback.invoke(

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 6 version = 5
dependencies{ dependencies{
implementation("com.google.code.gson:gson:2.9.0") implementation("com.google.code.gson:gson:2.9.0")

View file

@ -222,7 +222,7 @@ class HigoTVProvider : MainAPI() {
source = it.title, source = it.title,
streamUrl = it.file!!, streamUrl = it.file!!,
referer = "https://moonanime.art" referer = "https://moonanime.art"
).last().let(callback) ).forEach(callback)
} }
} }
} }

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 4 version = 3
cloudstream { cloudstream {

View file

@ -174,7 +174,7 @@ class KinoTronProvider : MainAPI() {
source = dataList[0], source = dataList[0],
streamUrl = m3u8Url, streamUrl = m3u8Url,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
return true return true
} }
@ -193,7 +193,7 @@ class KinoTronProvider : MainAPI() {
source = dubs.title, source = dubs.title,
streamUrl = episode.file, streamUrl = episode.file,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
} }
} }
} }

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 5 version = 4
cloudstream { cloudstream {

View file

@ -147,7 +147,7 @@ class KinoVezhaProvider : MainAPI() {
source = dataList[0], source = dataList[0],
streamUrl = m3u8Url, streamUrl = m3u8Url,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
return true return true
} }
@ -166,7 +166,7 @@ class KinoVezhaProvider : MainAPI() {
source = dubs.title, source = dubs.title,
streamUrl = episode.file, streamUrl = episode.file,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
} }
} }
} }

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 6 version = 5
cloudstream { cloudstream {

View file

@ -188,7 +188,7 @@ class KlonTVProvider : MainAPI() {
source = dataList[0], source = dataList[0],
streamUrl = m3u8Url, streamUrl = m3u8Url,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
val subtitleUrl = app.get(dataList[1]).document.select("script").html() val subtitleUrl = app.get(dataList[1]).document.select("script").html()
.substringAfterLast("subtitle: \"") .substringAfterLast("subtitle: \"")
@ -218,7 +218,7 @@ class KlonTVProvider : MainAPI() {
source = dubs.title, source = dubs.title,
streamUrl = episode.file, streamUrl = episode.file,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
if(episode.subtitle.isBlank()) return true if(episode.subtitle.isBlank()) return true
subtitleCallback.invoke( subtitleCallback.invoke(

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 3 version = 2
cloudstream { cloudstream {

View file

@ -163,7 +163,7 @@ class SerialnoProvider : MainAPI() {
source = dubs.title, source = dubs.title,
streamUrl = episode.file, streamUrl = episode.file,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
} }
} }
} }

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 2 version = 1
dependencies{ dependencies{
implementation("com.google.code.gson:gson:2.9.0") implementation("com.google.code.gson:gson:2.9.0")

View file

@ -150,7 +150,7 @@ class TeleportalProvider : MainAPI() {
source = video.projectName, source = video.projectName,
streamUrl = video.mediaHlsNoAdv, streamUrl = video.mediaHlsNoAdv,
referer = mainUrl referer = mainUrl
).last().let(callback) ).forEach(callback)
return true return true
} }

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 3 version = 2
dependencies { dependencies {
implementation("com.google.code.gson:gson:2.9.0") implementation("com.google.code.gson:gson:2.9.0")

View file

@ -242,7 +242,7 @@ class UAFlixProvider : MainAPI() {
source = "UAFlix", source = "UAFlix",
streamUrl = playerRawJson, streamUrl = playerRawJson,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
return true return true
} }
val playerRawJson = app.get(playerUrl).document.select("script").html() val playerRawJson = app.get(playerUrl).document.select("script").html()
@ -255,7 +255,7 @@ class UAFlixProvider : MainAPI() {
source = dubs.title, source = dubs.title,
streamUrl = dubs.folder[0].folder[0].file, streamUrl = dubs.folder[0].folder[0].file,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
} }
} }
@ -276,7 +276,7 @@ class UAFlixProvider : MainAPI() {
source = dubs.title, source = dubs.title,
streamUrl = episode.file.replace("https://", "http://"), streamUrl = episode.file.replace("https://", "http://"),
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
} }
} }
} }

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 8 version = 7
dependencies { dependencies {
implementation("com.google.code.gson:gson:2.9.0") implementation("com.google.code.gson:gson:2.9.0")

View file

@ -161,7 +161,7 @@ open class UASerialProvider(url: String, name: String) : MainAPI() {
source = "Movie", source = "Movie",
streamUrl = m3u8Url, streamUrl = m3u8Url,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
return true return true
} }
@ -187,7 +187,7 @@ open class UASerialProvider(url: String, name: String) : MainAPI() {
source = "${dub.text()} (${player.attr("data-player-id").replaceFirstChar { it.uppercase() }})", source = "${dub.text()} (${player.attr("data-player-id").replaceFirstChar { it.uppercase() }})",
streamUrl = m3u8Url, streamUrl = m3u8Url,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
} }
} }
// selecto__dropdown-item // selecto__dropdown-item

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 6 version = 5
dependencies { dependencies {
implementation("com.google.code.gson:gson:2.9.0") implementation("com.google.code.gson:gson:2.9.0")

View file

@ -227,7 +227,7 @@ class UASerialsProProvider : MainAPI() {
source = dataList[0], source = dataList[0],
streamUrl = m3u8Url.replace("https://", "http://"), streamUrl = m3u8Url.replace("https://", "http://"),
referer = "https://tortuga.wtf/", referer = "https://tortuga.wtf/",
).last().let(callback) ).forEach(callback)
return true return true
} }
@ -251,7 +251,7 @@ class UASerialsProProvider : MainAPI() {
source = episode.title, source = episode.title,
streamUrl = m3u8Url.replace("https://", "http://"), streamUrl = m3u8Url.replace("https://", "http://"),
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
} }
return true return true
} }

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 11 version = 10
cloudstream { cloudstream {

View file

@ -1,5 +1,6 @@
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
@ -215,6 +216,7 @@ class UakinoProvider : MainAPI() {
): Boolean { ): Boolean {
val dataList = data.split(",") val dataList = data.split(",")
// TODO: OPTIMIZE code!!! Remove this shitty code as soon as possible!!!!!! // TODO: OPTIMIZE code!!! Remove this shitty code as soon as possible!!!!!!
Log.d("CakesTwix-Debug", data)
if (dataList.size == 1) { if (dataList.size == 1) {
val id = data.split("/").last().split("-").first() val id = data.split("/").last().split("-").first()
val responseGet = val responseGet =
@ -253,7 +255,7 @@ class UakinoProvider : MainAPI() {
streamUrl = m3uLink, streamUrl = m3uLink,
referer = "https://ashdi.vip/" referer = "https://ashdi.vip/"
) )
.last().let(callback) .forEach(callback)
} }
} }
} }
@ -281,7 +283,7 @@ class UakinoProvider : MainAPI() {
streamUrl = m3uLink, streamUrl = m3uLink,
referer = "https://ashdi.vip/" referer = "https://ashdi.vip/"
) )
.last().let(callback) .forEach(callback)
} }
} }
} }
@ -300,7 +302,6 @@ class UakinoProvider : MainAPI() {
Jsoup.parse(it) Jsoup.parse(it)
.select("div.playlists-videos li:contains(${dataList[1]})") .select("div.playlists-videos li:contains(${dataList[1]})")
.mapNotNull { eps -> .mapNotNull { eps ->
if (eps.text() != dataList[1]) return@mapNotNull
var href = eps.attr("data-file") // ashdi var href = eps.attr("data-file") // ashdi
// Can be without https: // Can be without https:
if (!href.contains("https://")) { if (!href.contains("https://")) {
@ -324,7 +325,7 @@ class UakinoProvider : MainAPI() {
streamUrl = m3uLink, streamUrl = m3uLink,
referer = "https://ashdi.vip/" referer = "https://ashdi.vip/"
) )
.last().let(callback) .forEach(callback)
} }
} }
} }
@ -351,7 +352,7 @@ class UakinoProvider : MainAPI() {
streamUrl = m3uLink, streamUrl = m3uLink,
referer = "https://ashdi.vip/" referer = "https://ashdi.vip/"
) )
.last().let(callback) .forEach(callback)
} }
} }
} }

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 10 version = 9
dependencies{ dependencies{
implementation("com.google.code.gson:gson:2.9.0") implementation("com.google.code.gson:gson:2.9.0")

View file

@ -156,7 +156,7 @@ class UnimayProvider : MainAPI() {
source = "Unimay", source = "Unimay",
streamUrl = episode.hls.master, streamUrl = episode.hls.master,
referer = "https://www.unimay.media" referer = "https://www.unimay.media"
).last().let(callback) ).forEach(callback)
return true return true
} }

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 2 version = 1
dependencies { dependencies {
implementation("com.google.code.gson:gson:2.9.0") implementation("com.google.code.gson:gson:2.9.0")

View file

@ -226,7 +226,7 @@ class VodneriloProvider : MainAPI() {
source = dataList[0], source = dataList[0],
streamUrl = m3u8Url, streamUrl = m3u8Url,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
return true return true
} }
@ -245,7 +245,7 @@ class VodneriloProvider : MainAPI() {
source = dubs.title, source = dubs.title,
streamUrl = episode.file, streamUrl = episode.file,
referer = "https://tortuga.wtf/" referer = "https://tortuga.wtf/"
).last().let(callback) ).forEach(callback)
} }
} }
} }