mirror of
https://github.com/Jacekun/cs3xxx-repo.git
synced 2024-08-14 23:57:09 +00:00
Xvideos - Fix extension on sources name. Cleanups.
This commit is contained in:
parent
d2bfc2eb25
commit
f68cd7e3e7
2 changed files with 61 additions and 70 deletions
|
@ -1,5 +1,5 @@
|
||||||
// use an integer for version numbers
|
// use an integer for version numbers
|
||||||
version = 5
|
version = 6
|
||||||
|
|
||||||
|
|
||||||
cloudstream {
|
cloudstream {
|
||||||
|
|
|
@ -17,27 +17,11 @@ class XvideosProvider : MainAPI() {
|
||||||
override val hasDownloadSupport = true
|
override val hasDownloadSupport = true
|
||||||
override val supportedTypes = setOf(TvType.NSFW)
|
override val supportedTypes = setOf(TvType.NSFW)
|
||||||
|
|
||||||
fun getDurationFromTitle(title: String?): Int? {
|
fun getLinkAndExt(text: String) : Pair<String, String> {
|
||||||
if (title.isNullOrBlank()) {
|
val validlink = text.trim().trim('"').trim('\'')
|
||||||
return null
|
val valindlinkext = validlink.substringAfterLast(".")
|
||||||
}
|
.substringBeforeLast("?").trim().uppercase()
|
||||||
var seconds = 0
|
return Pair(validlink, valindlinkext)
|
||||||
"(\\s\\d+\\shr)|(\\s\\d+\\shour)|(\\s\\d+\\smin)|(\\s\\d+\\ssec)".toRegex()
|
|
||||||
.findAll(title).forEach {
|
|
||||||
//Output: 5 hr, 41 min, 30 sec
|
|
||||||
val time_text = it.value
|
|
||||||
val time = time_text.filter { s -> s.isDigit() }.trim().toInt()
|
|
||||||
val scale = time_text.filter { s -> !s.isDigit() }.trim()
|
|
||||||
//println("Scale: $scale")
|
|
||||||
val timeval = when (scale) {
|
|
||||||
"hr", "hour" -> time * 60 * 60
|
|
||||||
"min" -> time * 60
|
|
||||||
"sec" -> time
|
|
||||||
else -> 0
|
|
||||||
}
|
|
||||||
seconds += timeval
|
|
||||||
}
|
|
||||||
return if (seconds > 0) { seconds / 60 } else 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override val mainPage = mainPageOf(
|
override val mainPage = mainPageOf(
|
||||||
|
@ -149,7 +133,7 @@ class XvideosProvider : MainAPI() {
|
||||||
this.posterUrl = poster
|
this.posterUrl = poster
|
||||||
this.plot = title
|
this.plot = title
|
||||||
this.tags = tags
|
this.tags = tags
|
||||||
this.duration = getDurationFromTitle(title)
|
this.duration = getDurationFromString(title)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -234,17 +218,18 @@ class XvideosProvider : MainAPI() {
|
||||||
"(?<=contentUrl\\\":)(.*)(?=\\\",)".toRegex(setOfRegexOption)
|
"(?<=contentUrl\\\":)(.*)(?=\\\",)".toRegex(setOfRegexOption)
|
||||||
.findAll(scriptdata).forEach {
|
.findAll(scriptdata).forEach {
|
||||||
it.groupValues.forEach { link ->
|
it.groupValues.forEach { link ->
|
||||||
val validlink = link.trim().trim('"').trim('\'')
|
val validLinkVal = getLinkAndExt(link)
|
||||||
val valindlinkext = validlink.substringAfterLast(".").trim().uppercase()
|
val validlink = validLinkVal.first
|
||||||
|
val validlinkext = validLinkVal.second
|
||||||
Log.i(Dev, "Result Default => $validlink")
|
Log.i(Dev, "Result Default => $validlink")
|
||||||
callback(
|
callback(
|
||||||
ExtractorLink(
|
ExtractorLink(
|
||||||
source = this.name,
|
source = this.name,
|
||||||
name = "${this.name} $valindlinkext",
|
name = "${this.name} $validlinkext",
|
||||||
url = validlink,
|
url = validlink,
|
||||||
referer = data,
|
referer = data,
|
||||||
quality = Qualities.Unknown.value,
|
quality = Qualities.Unknown.value,
|
||||||
isM3u8 = valindlinkext.startsWith("M3")
|
isM3u8 = validlinkext.startsWith("M3")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -252,15 +237,17 @@ class XvideosProvider : MainAPI() {
|
||||||
}
|
}
|
||||||
//Fetch HLS links
|
//Fetch HLS links
|
||||||
Log.i(Dev, "Fetching HLS Low link..")
|
Log.i(Dev, "Fetching HLS Low link..")
|
||||||
"(?<=setVideoUrlLow\\()(.*?)(?=\\);)".toRegex(setOfRegexOption)
|
Regex("(?<=setVideoUrlLow\\()(.*?)(?=\\);)", setOfRegexOption).findAll(scriptdata)
|
||||||
.findAll(scriptdata).forEach {
|
.forEach {
|
||||||
it.groupValues.forEach { link ->
|
it.groupValues.forEach { link ->
|
||||||
val validlink = link.trim().trim('"').trim('\'')
|
val validLinkVal = getLinkAndExt(link)
|
||||||
|
val validlink = validLinkVal.first
|
||||||
|
val validlinkext = validLinkVal.second
|
||||||
Log.i(Dev, "Result HLS Low => $validlink")
|
Log.i(Dev, "Result HLS Low => $validlink")
|
||||||
callback(
|
callback(
|
||||||
ExtractorLink(
|
ExtractorLink(
|
||||||
source = this.name,
|
source = this.name,
|
||||||
name = "${this.name} MP4 Low",
|
name = "${this.name} $validlinkext Low",
|
||||||
url = validlink,
|
url = validlink,
|
||||||
referer = data,
|
referer = data,
|
||||||
quality = Qualities.Unknown.value
|
quality = Qualities.Unknown.value
|
||||||
|
@ -270,15 +257,17 @@ class XvideosProvider : MainAPI() {
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.i(Dev, "Fetching HLS High link..")
|
Log.i(Dev, "Fetching HLS High link..")
|
||||||
"(?<=setVideoUrlHigh\\()(.*?)(?=\\);)".toRegex(setOfRegexOption)
|
Regex("(?<=setVideoUrlHigh\\()(.*?)(?=\\);)", setOfRegexOption).findAll(scriptdata)
|
||||||
.findAll(scriptdata).forEach {
|
.forEach {
|
||||||
it.groupValues.forEach { link ->
|
it.groupValues.forEach { link ->
|
||||||
val validlink = link.trim().trim('"').trim('\'')
|
val validLinkVal = getLinkAndExt(link)
|
||||||
|
val validlink = validLinkVal.first
|
||||||
|
val validlinkext = validLinkVal.second
|
||||||
Log.i(Dev, "Result HLS High => $validlink")
|
Log.i(Dev, "Result HLS High => $validlink")
|
||||||
callback(
|
callback(
|
||||||
ExtractorLink(
|
ExtractorLink(
|
||||||
source = this.name,
|
source = this.name,
|
||||||
name = "${this.name} MP4 High",
|
name = "${this.name} $validlinkext High",
|
||||||
url = validlink,
|
url = validlink,
|
||||||
referer = data,
|
referer = data,
|
||||||
quality = Qualities.Unknown.value
|
quality = Qualities.Unknown.value
|
||||||
|
@ -288,15 +277,17 @@ class XvideosProvider : MainAPI() {
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.i(Dev, "Fetching HLS Default link..")
|
Log.i(Dev, "Fetching HLS Default link..")
|
||||||
"(?<=setVideoHLS\\()(.*?)(?=\\);)".toRegex(setOfRegexOption)
|
Regex("(?<=setVideoHLS\\()(.*?)(?=\\);)", setOfRegexOption).findAll(scriptdata)
|
||||||
.findAll(scriptdata).forEach {
|
.forEach {
|
||||||
it.groupValues.forEach { link ->
|
it.groupValues.forEach { link ->
|
||||||
val validlink = link.trim().trim('"').trim('\'')
|
val validLinkVal = getLinkAndExt(link)
|
||||||
|
val validlink = validLinkVal.first
|
||||||
|
val validlinkext = validLinkVal.second
|
||||||
Log.i(Dev, "Result HLS Default => $validlink")
|
Log.i(Dev, "Result HLS Default => $validlink")
|
||||||
callback(
|
callback(
|
||||||
ExtractorLink(
|
ExtractorLink(
|
||||||
source = this.name,
|
source = this.name,
|
||||||
name = "${this.name} Default",
|
name = "${this.name} $validlinkext Default",
|
||||||
url = validlink,
|
url = validlink,
|
||||||
referer = data,
|
referer = data,
|
||||||
quality = Qualities.Unknown.value,
|
quality = Qualities.Unknown.value,
|
||||||
|
|
Loading…
Reference in a new issue