Compare commits
5 Commits
cbd39e1c35
...
a50fcc8cf5
Author | SHA1 | Date |
---|---|---|
Zaw | a50fcc8cf5 | |
Zaw | 36744a22a3 | |
Zaw | b408afe008 | |
yoyzo | 3c0e78cacc | |
Zaw | 6c34ee698e |
|
@ -9,8 +9,8 @@ on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
# choose your default branch
|
# choose your default branch
|
||||||
- master
|
# - master
|
||||||
# - main
|
- main
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '*.md'
|
- '*.md'
|
||||||
- '*.html'
|
- '*.html'
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
version = 2
|
version = 3
|
||||||
|
|
||||||
cloudstream {
|
cloudstream {
|
||||||
description = ""
|
description = ""
|
||||||
|
|
|
@ -7,7 +7,7 @@ import org.jsoup.nodes.Element
|
||||||
|
|
||||||
class ArabSeed : MainAPI() {
|
class ArabSeed : MainAPI() {
|
||||||
override var lang = "ar"
|
override var lang = "ar"
|
||||||
override var mainUrl = "https://m5.arabseed.ink"
|
override var mainUrl = "https://e.arabseed.ink"
|
||||||
override var name = "ArabSeed"
|
override var name = "ArabSeed"
|
||||||
override val usesWebView = false
|
override val usesWebView = false
|
||||||
override val hasMainPage = true
|
override val hasMainPage = true
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
version = 2
|
version = 3
|
||||||
|
|
||||||
cloudstream {
|
cloudstream {
|
||||||
description = "Some LinkBox links are broken idk why"
|
description = "Some LinkBox links are broken idk why"
|
||||||
|
|
|
@ -128,15 +128,19 @@ class EgyDead : MainAPI() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
data class LinkBox (
|
data class LinkBox (
|
||||||
@JsonProperty("data" ) var data : Data? = Data(),
|
@JsonProperty("data" ) var data : Data? = Data(),
|
||||||
)
|
)
|
||||||
data class Data (
|
data class Data (
|
||||||
@JsonProperty("rList" ) var rList : ArrayList<RList> = arrayListOf(),
|
@JsonProperty("itemInfo" ) var itemInfo : ItemInfo? = ItemInfo(),
|
||||||
)
|
)
|
||||||
data class RList (
|
data class ItemInfo (
|
||||||
|
@JsonProperty("resolutionList" ) var resolutionList : ArrayList<ResolutionList> = arrayListOf(),
|
||||||
|
)
|
||||||
|
data class ResolutionList (
|
||||||
|
|
||||||
@JsonProperty("resolution" ) var resolution : String? = null,
|
@JsonProperty("resolution" ) var resolution : String? = null,
|
||||||
@JsonProperty("size" ) var size : Double? = null,
|
@JsonProperty("size" ) var size : Double? = null,
|
||||||
// @JsonProperty("sub_type" ) var subType : String? = null,
|
@JsonProperty("sub_type" ) var subType : String? = null,
|
||||||
@JsonProperty("url" ) var url : String? = null,
|
@JsonProperty("url" ) var url : String? = null,
|
||||||
|
|
||||||
)
|
)
|
||||||
|
@ -153,14 +157,33 @@ class EgyDead : MainAPI() {
|
||||||
callback: (ExtractorLink) -> Unit
|
callback: (ExtractorLink) -> Unit
|
||||||
): Boolean {
|
): Boolean {
|
||||||
val doc = app.post(data, data = mapOf("View" to "1")).document
|
val doc = app.post(data, data = mapOf("View" to "1")).document
|
||||||
|
doc.select(".donwload-servers-list > li").apmap { element ->
|
||||||
|
val url = element.select("a").attr("href")
|
||||||
|
if(url.contains("www.linkbox.to")) {
|
||||||
|
val apiUrl = "https://" + URI(url).host + "/api/file/detail?itemId=" + url.substringAfter("/file/")
|
||||||
|
val json = app.get(apiUrl).parsed<LinkBox>()
|
||||||
|
json.data?.itemInfo?.resolutionList?.forEach {
|
||||||
|
callback.invoke(
|
||||||
|
ExtractorLink(
|
||||||
|
this.name,
|
||||||
|
"LinkBox " + bytesToHumanReadableSize(it.size ?: 0.0),
|
||||||
|
it.url ?: return@forEach,
|
||||||
|
mainUrl,
|
||||||
|
it.resolution?.replace("p","")?.toInt() ?: Qualities.Unknown.value,
|
||||||
|
false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else loadExtractor(url, data, subtitleCallback, callback)
|
||||||
|
}
|
||||||
val watchList = doc.select("ul.serversList > li")
|
val watchList = doc.select("ul.serversList > li")
|
||||||
watchList.apmap { li ->
|
watchList.apmap { li ->
|
||||||
val iframeUrl = li.attr("data-link")
|
val iframeUrl = li.attr("data-link")
|
||||||
val quality = li.select("small").text().getIntFromText() ?: Qualities.Unknown.value
|
val quality = li.select("small").text().getIntFromText() ?: Qualities.Unknown.value
|
||||||
if(iframeUrl.contains("www.linkbox.to")) {
|
if(iframeUrl.contains("www.linkbox.to")) {
|
||||||
val apiUrl = "https://" + URI(iframeUrl).host + "/api/open/get_url?itemId=" + iframeUrl.substringAfter("id=").substringBefore("&")
|
val apiUrl = "https://" + URI(iframeUrl).host + "/api/file/detail?itemId=" + iframeUrl.substringAfter("id=").substringBefore("&")
|
||||||
val json = app.get(apiUrl).parsed<LinkBox>()
|
val json = app.get(apiUrl).parsed<LinkBox>()
|
||||||
json.data?.rList?.forEach {
|
json.data?.itemInfo?.resolutionList?.forEach {
|
||||||
callback.invoke(
|
callback.invoke(
|
||||||
ExtractorLink(
|
ExtractorLink(
|
||||||
this.name,
|
this.name,
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.movizland
|
package com.movizland
|
||||||
|
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import com.lagradost.cloudstream3.*
|
import com.lagradost.cloudstream3.*
|
||||||
import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer
|
import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer
|
||||||
import com.lagradost.cloudstream3.utils.ExtractorLink
|
import com.lagradost.cloudstream3.utils.ExtractorLink
|
||||||
|
@ -71,6 +72,7 @@ class Movizland : MainAPI() {
|
||||||
return newHomePageResponse(request.name, list)
|
return newHomePageResponse(request.name, list)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("SuspiciousIndentation")
|
||||||
override suspend fun search(query: String): List<SearchResponse> {
|
override suspend fun search(query: String): List<SearchResponse> {
|
||||||
val q = query.replace(" ".toRegex(), "%20")
|
val q = query.replace(" ".toRegex(), "%20")
|
||||||
val result = arrayListOf<SearchResponse>()
|
val result = arrayListOf<SearchResponse>()
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
version = 5
|
version = 6
|
||||||
|
|
||||||
cloudstream {
|
cloudstream {
|
||||||
description = ""
|
description = ""
|
||||||
|
|
|
@ -5,12 +5,13 @@ import com.lagradost.cloudstream3.*
|
||||||
import com.lagradost.cloudstream3.LoadResponse.Companion.addActors
|
import com.lagradost.cloudstream3.LoadResponse.Companion.addActors
|
||||||
import com.lagradost.cloudstream3.utils.AppUtils.parseJson
|
import com.lagradost.cloudstream3.utils.AppUtils.parseJson
|
||||||
import com.lagradost.cloudstream3.utils.ExtractorLink
|
import com.lagradost.cloudstream3.utils.ExtractorLink
|
||||||
|
import com.lagradost.cloudstream3.utils.loadExtractor
|
||||||
import org.jsoup.Jsoup
|
import org.jsoup.Jsoup
|
||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
|
|
||||||
class MyCima : MainAPI() {
|
class MyCima : MainAPI() {
|
||||||
override var lang = "ar"
|
override var lang = "ar"
|
||||||
override var mainUrl = "https://mycima.tv"
|
override var mainUrl = "https://wecima.tube"
|
||||||
override var name = "MyCima"
|
override var name = "MyCima"
|
||||||
override val usesWebView = false
|
override val usesWebView = false
|
||||||
override val hasMainPage = true
|
override val hasMainPage = true
|
||||||
|
@ -308,8 +309,12 @@ class MyCima : MainAPI() {
|
||||||
subtitleCallback: (SubtitleFile) -> Unit,
|
subtitleCallback: (SubtitleFile) -> Unit,
|
||||||
callback: (ExtractorLink) -> Unit
|
callback: (ExtractorLink) -> Unit
|
||||||
): Boolean {
|
): Boolean {
|
||||||
app.get(data).document
|
val doc = app.get(data).document
|
||||||
.select("ul.List--Download--Mycima--Single:nth-child(2) li").map {
|
doc.select(".WatchServersList > ul > li").apmap {
|
||||||
|
val url = it.select("btn").attr("data-url")
|
||||||
|
loadExtractor(url, data, subtitleCallback, callback)
|
||||||
|
}
|
||||||
|
doc.select("ul.List--Download--Mycima--Single:nth-child(2) li").apmap {
|
||||||
it.select("a").map { linkElement ->
|
it.select("a").map { linkElement ->
|
||||||
callback.invoke(
|
callback.invoke(
|
||||||
ExtractorLink(
|
ExtractorLink(
|
||||||
|
|
|
@ -53,7 +53,7 @@ open class JWPlayer : ExtractorApi() {
|
||||||
)
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
class VidHD : JWPlayer() {
|
class VidHDJW : JWPlayer() {
|
||||||
override val name = "VidHD"
|
override val name = "VidHD"
|
||||||
override val mainUrl = "https://vidhd.fun"
|
override val mainUrl = "https://vidhd.fun"
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,8 +7,8 @@ import android.content.Context
|
||||||
class Shahid4uPlugin: Plugin() {
|
class Shahid4uPlugin: Plugin() {
|
||||||
override fun load(context: Context) {
|
override fun load(context: Context) {
|
||||||
registerMainAPI(Shahid4u())
|
registerMainAPI(Shahid4u())
|
||||||
|
registerExtractorAPI(VidHDJW())
|
||||||
registerExtractorAPI(VidHD())
|
registerExtractorAPI(VidHD())
|
||||||
registerExtractorAPI(GoStream())
|
registerExtractorAPI(GoStream())
|
||||||
registerExtractorAPI(Vidbom())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue