diff --git a/Gomov/build.gradle.kts b/Gomov/build.gradle.kts index 5db843c0..58ecbc21 100644 --- a/Gomov/build.gradle.kts +++ b/Gomov/build.gradle.kts @@ -1,12 +1,12 @@ // use an integer for version numbers -version = 1 +version = 2 cloudstream { language = "id" // All of these properties are optional, you can safely remove them - // description = "Lorem Ipsum" + description = "Include: DutaMovie" authors = listOf("Hexated") /** diff --git a/Gomov/src/main/kotlin/com/hexated/DutaMovie.kt b/Gomov/src/main/kotlin/com/hexated/DutaMovie.kt new file mode 100644 index 00000000..01a903bb --- /dev/null +++ b/Gomov/src/main/kotlin/com/hexated/DutaMovie.kt @@ -0,0 +1,44 @@ +package com.hexated + +import com.lagradost.cloudstream3.* +import com.lagradost.cloudstream3.utils.ExtractorLink +import com.lagradost.cloudstream3.utils.httpsify +import com.lagradost.cloudstream3.utils.loadExtractor + +class DutaMovie : Gomov() { + override var mainUrl = "https://dutamovie21.live" + override var name = "DutaMovie" + override val hasMainPage = true + override var lang = "id" + override val supportedTypes = setOf( + TvType.Movie, + TvType.TvSeries, + TvType.AsianDrama + ) + + override val mainPage = mainPageOf( + "category/box-office/page/%d/" to "Box Office", + "category/serial-tv/page/%d/" to "Serial TV", + "category/animation/page/%d/" to "Animasi", + "country/korea/page/%d/" to "Serial TV Korea", + "country/indonesia/page/%d/" to "Serial TV Indonesia", + ) + + override suspend fun loadLinks( + data: String, + isCasting: Boolean, + subtitleCallback: (SubtitleFile) -> Unit, + callback: (ExtractorLink) -> Unit + ): Boolean { + + app.get(data).document.select("ul.muvipro-player-tabs li a").apmap { + val iframe = app.get(fixUrl(it.attr("href"))).document.selectFirst("div.gmr-embed-responsive iframe") + ?.attr("src") + loadExtractor(httpsify(iframe ?: return@apmap ), "$mainUrl/", subtitleCallback, callback) + } + + return true + } + + +} \ No newline at end of file diff --git a/Gomov/src/main/kotlin/com/hexated/Extractors.kt b/Gomov/src/main/kotlin/com/hexated/Extractors.kt new file mode 100644 index 00000000..25bd9f11 --- /dev/null +++ b/Gomov/src/main/kotlin/com/hexated/Extractors.kt @@ -0,0 +1,24 @@ +package com.hexated + +import com.lagradost.cloudstream3.extractors.Filesim +import com.lagradost.cloudstream3.extractors.Gdriveplayer +import com.lagradost.cloudstream3.extractors.StreamSB + +class Dutamovie21 : StreamSB() { + override var name = "Dutamovie21" + override var mainUrl = "https://dutamovie21.xyz" +} + +class Filelions : Filesim() { + override val name = "Filelions" + override var mainUrl = "https://filelions.to" +} + +class Likessb : StreamSB() { + override var name = "Likessb" + override var mainUrl = "https://likessb.com" +} + +class DbGdriveplayer : Gdriveplayer() { + override var mainUrl = "https://database.gdriveplayer.us" +} \ No newline at end of file diff --git a/Gomov/src/main/kotlin/com/hexated/Gomov.kt b/Gomov/src/main/kotlin/com/hexated/Gomov.kt index 3d92217d..2c2b1d36 100644 --- a/Gomov/src/main/kotlin/com/hexated/Gomov.kt +++ b/Gomov/src/main/kotlin/com/hexated/Gomov.kt @@ -3,13 +3,12 @@ package com.hexated import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.LoadResponse.Companion.addActors import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer -import com.lagradost.cloudstream3.extractors.* import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.httpsify import com.lagradost.cloudstream3.utils.loadExtractor import org.jsoup.nodes.Element -class Gomov : MainAPI() { +open class Gomov : MainAPI() { override var mainUrl = "https://gomov.bio" override var name = "Gomov" override val hasMainPage = true @@ -102,16 +101,18 @@ class Gomov : MainAPI() { } return if (tvType == TvType.TvSeries) { - val episodes = document.select("div.vid-episodes div.episode").map { eps -> - val href = fixUrl(eps.select("a").attr("href")) - val episode = eps.attr("data-epi").toIntOrNull() - val season = eps.attr("data-sea").toIntOrNull() + val episodes = document.select("div.vid-episodes a, div.gmr-listseries a").map { eps -> + val href = fixUrl(eps.attr("href")) + val name = eps.text() + val episode = name.split(" ").lastOrNull()?.filter { it.isDigit() }?.toIntOrNull() + val season = name.split(" ").firstOrNull()?.filter { it.isDigit() }?.toIntOrNull() Episode( href, + name, season = season, episode = episode, ) - } + }.filter { it.episode != null } newTvSeriesLoadResponse(title, url, TvType.TvSeries, episodes) { this.posterUrl = poster this.year = year @@ -159,18 +160,4 @@ class Gomov : MainAPI() { } -} - -class Filelions : Filesim() { - override val name = "Filelions" - override var mainUrl = "https://filelions.to" -} - -class Likessb : StreamSB() { - override var name = "Likessb" - override var mainUrl = "https://likessb.com" -} - -class DbGdriveplayer : Gdriveplayer() { - override var mainUrl = "https://database.gdriveplayer.us" } \ No newline at end of file diff --git a/Gomov/src/main/kotlin/com/hexated/GomovPlugin.kt b/Gomov/src/main/kotlin/com/hexated/GomovPlugin.kt index 05c8715b..99c3213d 100644 --- a/Gomov/src/main/kotlin/com/hexated/GomovPlugin.kt +++ b/Gomov/src/main/kotlin/com/hexated/GomovPlugin.kt @@ -10,8 +10,10 @@ class GomovPlugin: Plugin() { override fun load(context: Context) { // All providers should be added in this manner. Please don't edit the providers list directly. registerMainAPI(Gomov()) + registerMainAPI(DutaMovie()) registerExtractorAPI(Filelions()) registerExtractorAPI(Likessb()) registerExtractorAPI(DbGdriveplayer()) + registerExtractorAPI(Dutamovie21()) } } \ No newline at end of file diff --git a/YomoviesProvider/build.gradle.kts b/YomoviesProvider/build.gradle.kts index 42b439cd..f00bbb7e 100644 --- a/YomoviesProvider/build.gradle.kts +++ b/YomoviesProvider/build.gradle.kts @@ -6,7 +6,7 @@ cloudstream { language = "hi" // All of these properties are optional, you can safely remove them - // description = "Lorem Ipsum" + description = "Include: Watchomovies" authors = listOf("Hexated") /**