mirror of
https://github.com/hexated/cloudstream-extensions-hexated.git
synced 2024-08-15 00:03:22 +00:00
fix #254
This commit is contained in:
parent
62d9783705
commit
f511569c34
8 changed files with 137 additions and 33 deletions
|
@ -1,5 +1,5 @@
|
|||
// use an integer for version numbers
|
||||
version = 8
|
||||
version = 9
|
||||
|
||||
|
||||
cloudstream {
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
package com.hexated
|
||||
|
||||
import com.lagradost.cloudstream3.extractors.Filesim
|
||||
import com.lagradost.cloudstream3.extractors.Gdriveplayer
|
||||
import com.lagradost.cloudstream3.extractors.StreamSB
|
||||
import com.lagradost.cloudstream3.extractors.*
|
||||
|
||||
class Doods : DoodLaExtractor() {
|
||||
override var name = "Doods"
|
||||
override var mainUrl = "https://doods.pro"
|
||||
}
|
||||
|
||||
class Dutamovie21 : StreamSB() {
|
||||
override var name = "Dutamovie21"
|
||||
|
|
|
@ -18,6 +18,7 @@ class GomovPlugin: Plugin() {
|
|||
registerExtractorAPI(DbGdriveplayer())
|
||||
registerExtractorAPI(Dutamovie21())
|
||||
registerExtractorAPI(Embedwish())
|
||||
registerExtractorAPI(Doods())
|
||||
registerExtractorAPI(Lylxan())
|
||||
}
|
||||
}
|
|
@ -26,16 +26,30 @@ class Nodrakorid : DutaMovie() {
|
|||
is TvSeriesLoadResponse -> {
|
||||
val doc = app.get(url).document
|
||||
this.comingSoon = false
|
||||
this.episodes = doc.select("div.entry-content p:contains(Episode)").distinctBy {
|
||||
it.text()
|
||||
}.map { eps ->
|
||||
val num = eps.text()
|
||||
val endSibling = eps.nextElementSiblings().select("p:contains(Episode)").firstOrNull() ?: eps.nextElementSiblings().select("div.content-moviedata").firstOrNull()
|
||||
val siblings = eps.nextElementSiblingsUntil(endSibling).map { ele ->
|
||||
ele.ownText().filter { it.isDigit() }.toIntOrNull() to ele.select("a")
|
||||
.map { it.attr("href") to it.text() }
|
||||
}.filter { it.first != null }
|
||||
Episode(siblings.toJson(), episode = Regex("Episode\\s?([0-9]+)").find(num)?.groupValues?.getOrNull(1)?.toIntOrNull())
|
||||
this.episodes = when {
|
||||
doc.select("div.vid-episodes a, div.gmr-listseries a").isNotEmpty() -> this.episodes
|
||||
doc.select("div#download").isEmpty() -> {
|
||||
doc.select("div.entry-content p:contains(Episode)").distinctBy {
|
||||
it.text()
|
||||
}.mapNotNull { eps ->
|
||||
val endSibling = eps.nextElementSiblings().select("p:contains(Episode)").firstOrNull() ?: eps.nextElementSiblings().select("div.content-moviedata").firstOrNull()
|
||||
val siblings = eps.nextElementSiblingsUntil(endSibling).map { ele ->
|
||||
ele.ownText().filter { it.isDigit() }.toIntOrNull() to ele.select("a")
|
||||
.map { it.attr("href") to it.text() }
|
||||
}.filter { it.first != null }
|
||||
Episode(siblings.toJson(), episode = eps.text().toEpisode())
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
doc.select("div#download h3.title-download").mapNotNull { eps ->
|
||||
val siblings = eps.nextElementSibling()?.select("li")?.map { ele ->
|
||||
ele.text().filter { it.isDigit() }.toIntOrNull() to ele.select("a").map {
|
||||
it.attr("href") to it.text().split(" ").first()
|
||||
}
|
||||
}?.filter { it.first != null }
|
||||
Episode(siblings?.toJson() ?: return@mapNotNull null, episode = eps.text().toEpisode())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -83,6 +97,10 @@ class Nodrakorid : DutaMovie() {
|
|||
}
|
||||
}
|
||||
|
||||
private fun String.toEpisode() : Int? {
|
||||
return Regex("(?i)Episode\\s?([0-9]+)").find(this)?.groupValues?.getOrNull(1)?.toIntOrNull()
|
||||
}
|
||||
|
||||
private fun getBaseUrl(url: String): String {
|
||||
return URI(url).let {
|
||||
"${it.scheme}://${it.host}"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue