mirror of
https://github.com/hexated/cloudstream-extensions-hexated.git
synced 2024-08-15 00:03:22 +00:00
Yomovies: added new source
This commit is contained in:
parent
273b9238d2
commit
785eda47c2
5 changed files with 79 additions and 22 deletions
|
@ -1,5 +1,5 @@
|
||||||
// use an integer for version numbers
|
// use an integer for version numbers
|
||||||
version = 15
|
version = 16
|
||||||
|
|
||||||
|
|
||||||
cloudstream {
|
cloudstream {
|
||||||
|
|
37
YomoviesProvider/src/main/kotlin/com/hexated/Extractors.kt
Normal file
37
YomoviesProvider/src/main/kotlin/com/hexated/Extractors.kt
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
package com.hexated
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty
|
||||||
|
import com.lagradost.cloudstream3.SubtitleFile
|
||||||
|
import com.lagradost.cloudstream3.app
|
||||||
|
import com.lagradost.cloudstream3.extractors.SpeedoStream
|
||||||
|
import com.lagradost.cloudstream3.utils.AppUtils
|
||||||
|
import com.lagradost.cloudstream3.utils.ExtractorLink
|
||||||
|
import com.lagradost.cloudstream3.utils.M3u8Helper
|
||||||
|
import com.lagradost.cloudstream3.utils.getAndUnpack
|
||||||
|
|
||||||
|
class Streamoupload : SpeedoStream() {
|
||||||
|
override val mainUrl = "https://streamoupload.xyz"
|
||||||
|
override val name = "Streamoupload"
|
||||||
|
|
||||||
|
override suspend fun getUrl(
|
||||||
|
url: String,
|
||||||
|
referer: String?,
|
||||||
|
subtitleCallback: (SubtitleFile) -> Unit,
|
||||||
|
callback: (ExtractorLink) -> Unit
|
||||||
|
) {
|
||||||
|
val script = getAndUnpack(app.get(url, referer = referer).text)
|
||||||
|
val data = script.substringAfter("sources:[")
|
||||||
|
.substringBefore("],").replace("file", "\"file\"").trim()
|
||||||
|
AppUtils.tryParseJson<File>(data)?.let {
|
||||||
|
M3u8Helper.generateM3u8(
|
||||||
|
name,
|
||||||
|
it.file,
|
||||||
|
"$mainUrl/",
|
||||||
|
).forEach(callback)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private data class File(
|
||||||
|
@JsonProperty("file") val file: String,
|
||||||
|
)
|
||||||
|
}
|
23
YomoviesProvider/src/main/kotlin/com/hexated/Watchomovies.kt
Normal file
23
YomoviesProvider/src/main/kotlin/com/hexated/Watchomovies.kt
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
package com.hexated
|
||||||
|
|
||||||
|
import com.lagradost.cloudstream3.TvType
|
||||||
|
import com.lagradost.cloudstream3.mainPageOf
|
||||||
|
|
||||||
|
class Watchomovies : YomoviesProvider() {
|
||||||
|
override var mainUrl = "https://watchomovies.mom"
|
||||||
|
override var name = "Watchomovies"
|
||||||
|
override val hasMainPage = true
|
||||||
|
override var lang = "hi"
|
||||||
|
override val supportedTypes = setOf(
|
||||||
|
TvType.NSFW,
|
||||||
|
)
|
||||||
|
|
||||||
|
override val mainPage = mainPageOf(
|
||||||
|
"most-favorites" to "Most Viewed",
|
||||||
|
"genre/xxx-scenes" to "XXX Scenes",
|
||||||
|
"genre/18" to "18+ Movies",
|
||||||
|
"genre/erotic-movies" to "Erotic Movies Movies",
|
||||||
|
"genre/parody" to "Parody Movies",
|
||||||
|
"genre/tv-shows" to "TV Shows Movies",
|
||||||
|
)
|
||||||
|
}
|
|
@ -9,37 +9,32 @@ import com.lagradost.cloudstream3.utils.loadExtractor
|
||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
|
|
||||||
class YomoviesProvider : MainAPI() {
|
open class YomoviesProvider : MainAPI() {
|
||||||
override var mainUrl = "https://yomovies.baby"
|
override var mainUrl = "https://yomovies.baby"
|
||||||
private var directUrl = mainUrl
|
private var directUrl = ""
|
||||||
override var name = "Yomovies"
|
override var name = "Yomovies"
|
||||||
override val hasMainPage = true
|
override val hasMainPage = true
|
||||||
override var lang = "hi"
|
override var lang = "hi"
|
||||||
override val hasDownloadSupport = true
|
|
||||||
override val supportedTypes = setOf(
|
override val supportedTypes = setOf(
|
||||||
TvType.Movie,
|
TvType.Movie,
|
||||||
TvType.TvSeries,
|
TvType.TvSeries,
|
||||||
)
|
)
|
||||||
|
|
||||||
override val mainPage = mainPageOf(
|
override val mainPage = mainPageOf(
|
||||||
"$mainUrl/most-favorites/page/" to "Most Viewed",
|
"most-favorites" to "Most Viewed",
|
||||||
"$mainUrl/genre/web-series/page/" to "Web Series Movies",
|
"genre/web-series" to "Web Series Movies",
|
||||||
"$mainUrl/genre/dual-audio/page/" to "Dual Audio Movies",
|
"genre/dual-audio" to "Dual Audio Movies",
|
||||||
"$mainUrl/genre/bollywood/page/" to "Bollywood Movies",
|
"genre/bollywood" to "Bollywood Movies",
|
||||||
"$mainUrl/genre/tv-shows/page/" to "TV Shows Movies",
|
"genre/tv-shows" to "TV Shows Movies",
|
||||||
"$mainUrl/genre/hollywood/page/" to "Hollywood Movies",
|
"genre/hollywood" to "Hollywood Movies",
|
||||||
"$mainUrl/series/page/" to "All TV Series",
|
"series" to "All TV Series",
|
||||||
)
|
)
|
||||||
|
|
||||||
override suspend fun getMainPage(
|
override suspend fun getMainPage(
|
||||||
page: Int,
|
page: Int,
|
||||||
request: MainPageRequest
|
request: MainPageRequest
|
||||||
): HomePageResponse {
|
): HomePageResponse {
|
||||||
val document = if (page == 1) {
|
val document = app.get("$mainUrl/${request.data}/page/$page").document
|
||||||
app.get(request.data.removeSuffix("page/")).document
|
|
||||||
} else {
|
|
||||||
app.get(request.data + page).document
|
|
||||||
}
|
|
||||||
val home = document.select("div.ml-item").mapNotNull {
|
val home = document.select("div.ml-item").mapNotNull {
|
||||||
it.toSearchResult()
|
it.toSearchResult()
|
||||||
}
|
}
|
||||||
|
@ -129,12 +124,6 @@ class YomoviesProvider : MainAPI() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getBaseUrl(url: String): String {
|
|
||||||
return URI(url).let {
|
|
||||||
"${it.scheme}://${it.host}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun loadLinks(
|
override suspend fun loadLinks(
|
||||||
data: String,
|
data: String,
|
||||||
isCasting: Boolean,
|
isCasting: Boolean,
|
||||||
|
@ -175,4 +164,10 @@ class YomoviesProvider : MainAPI() {
|
||||||
return fixTitle(URI(this).host.substringBeforeLast(".").substringAfterLast("."))
|
return fixTitle(URI(this).host.substringBeforeLast(".").substringAfterLast("."))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getBaseUrl(url: String): String {
|
||||||
|
return URI(url).let {
|
||||||
|
"${it.scheme}://${it.host}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,5 +10,7 @@ class YomoviesProviderPlugin: Plugin() {
|
||||||
override fun load(context: Context) {
|
override fun load(context: Context) {
|
||||||
// All providers should be added in this manner. Please don't edit the providers list directly.
|
// All providers should be added in this manner. Please don't edit the providers list directly.
|
||||||
registerMainAPI(YomoviesProvider())
|
registerMainAPI(YomoviesProvider())
|
||||||
|
registerMainAPI(Watchomovies())
|
||||||
|
registerExtractorAPI(Streamoupload())
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue