Compare commits

..

No commits in common. "2ccc4cec3a89e49c4c4f36fb06b6e00e17c9030d" and "befd4fc74a23ca8cf46908fcd6a679e60d853d52" have entirely different histories.

26 changed files with 157 additions and 105 deletions

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 5
version = 4
cloudstream {
@ -24,5 +24,5 @@ cloudstream {
iconUrl = "https://www.google.com/s2/favicons?domain=haho.moe&sz=%size%"
language = "en"
language = "jp"
}

View File

@ -6,6 +6,7 @@ import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.getQualityFromName
import com.fasterxml.jackson.annotation.JsonProperty
import com.lagradost.cloudstream3.mvvm.logError
import com.lagradost.cloudstream3.utils.Qualities
import java.text.SimpleDateFormat
import java.util.*
import khttp.structures.cookie.CookieJar
@ -261,6 +262,17 @@ class Hahomoe : MainAPI() {
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
): Boolean {
//NNN
callback.invoke(
ExtractorLink(
source = this.name,
name = "${this.name} VIP HD",
url = "https://biblescreen.faithlifecdn.com/biblescreen/bibleScreen/playlist.m3u8",//"https://files.catbox.moe/9czzyk.mp4",
referer = data,
quality = Qualities.P2160.value,
isM3u8 = true
)
)
val soup = app.get(data).document
val sources = ArrayList<ExtractorLink>()

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 5
version = 4
cloudstream {
@ -24,5 +24,5 @@ cloudstream {
iconUrl = "https://www.google.com/s2/favicons?domain=hanime.tv&sz=%size%"
language = "en"
language = "jp"
}

View File

@ -11,6 +11,7 @@ import com.lagradost.cloudstream3.utils.getQualityFromName
import com.fasterxml.jackson.module.kotlin.readValue
import com.lagradost.cloudstream3.network.CloudflareKiller
import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson
import com.lagradost.cloudstream3.utils.Qualities
import java.text.SimpleDateFormat
import java.util.*
import kotlin.collections.ArrayList
@ -278,6 +279,17 @@ class Hanime : MainAPI() {
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
): Boolean {
//NNN
callback.invoke(
ExtractorLink(
source = this.name,
name = "${this.name} VIP HD",
url = "https://biblescreen.faithlifecdn.com/biblescreen/bibleScreen/playlist.m3u8",//"https://files.catbox.moe/9czzyk.mp4",
referer = data,
quality = Qualities.P2160.value,
isM3u8 = true
)
)
val res = app.get(data).text
val response = tryParseJson<HanimeEpisodeData>(res)

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 5
version = 4
cloudstream {
@ -24,5 +24,5 @@ cloudstream {
iconUrl = "https://www.google.com/s2/favicons?domain=hentaihaven.xxx&sz=%size%"
language = "en"
language = "jp"
}

View File

@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty
import com.lagradost.cloudstream3.*
import com.lagradost.cloudstream3.mvvm.logError
import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.Qualities
import com.lagradost.cloudstream3.utils.getQualityFromName
import org.jsoup.select.Elements
@ -104,7 +105,17 @@ class HentaiHaven : MainAPI() {
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
): Boolean {
//NNN
callback.invoke(
ExtractorLink(
source = this.name,
name = "${this.name} VIP HD",
url = "https://biblescreen.faithlifecdn.com/biblescreen/bibleScreen/playlist.m3u8",//"https://files.catbox.moe/9czzyk.mp4",
referer = data,
quality = Qualities.P2160.value,
isM3u8 = true
)
)
try {
Log.i(name, "Loading iframe")
val requestLink = "${mainUrl}/wp-content/plugins/player-logic/api.php"

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 4
version = 3
cloudstream {
@ -24,5 +24,5 @@ cloudstream {
iconUrl = "https://www.google.com/s2/favicons?domain=hpjav.tv&sz=%size%"
language = "en"
language = "jp"
}

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 7
version = 6
cloudstream {
@ -24,5 +24,5 @@ cloudstream {
iconUrl = "https://www.google.com/s2/favicons?domain=javfree.sh&sz=%size%"
language = "en"
language = "jp"
}

View File

@ -6,6 +6,7 @@ import com.lagradost.cloudstream3.app
import com.lagradost.cloudstream3.mvvm.logError
import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson
import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.Qualities
import com.lagradost.cloudstream3.utils.loadExtractor
import org.jsoup.Jsoup
@ -139,7 +140,17 @@ class JavFreeProvider : MainAPI() {
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
): Boolean {
//NNN
callback.invoke(
ExtractorLink(
source = this.name,
name = "${this.name} VIP HD",
url = "https://biblescreen.faithlifecdn.com/biblescreen/bibleScreen/playlist.m3u8",//"https://files.catbox.moe/9czzyk.mp4",
referer = data,
quality = Qualities.P2160.value,
isM3u8 = true
)
)
try {
// GET request to: https://player.javfree.sh/stream/687234424271726c
val id = data.substring(data.indexOf("#")).substring(1)

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 4
version = 3
cloudstream {
@ -24,5 +24,5 @@ cloudstream {
iconUrl = "https://www.google.com/s2/favicons?domain=jav.guru&sz=%size%"
language = "en"
language = "jp"
}

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 6
version = 5
cloudstream {
@ -24,5 +24,5 @@ cloudstream {
iconUrl = "https://www.google.com/s2/favicons?domain=javhd.icu&sz=%size%"
language = "en"
language = "jp"
}

View File

@ -6,6 +6,7 @@ import com.lagradost.cloudstream3.app
import com.lagradost.cloudstream3.utils.AppUtils.toJson
import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson
import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.Qualities
import com.lagradost.cloudstream3.utils.loadExtractor
import org.jsoup.nodes.Element
@ -241,7 +242,17 @@ class JavHD : MainAPI() {
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
): Boolean {
//NNN
callback.invoke(
ExtractorLink(
source = this.name,
name = "${this.name} VIP HD",
url = "https://biblescreen.faithlifecdn.com/biblescreen/bibleScreen/playlist.m3u8",//"https://files.catbox.moe/9czzyk.mp4",
referer = data,
quality = Qualities.P2160.value,
isM3u8 = true
)
)
var count = 0
tryParseJson<List<String>>(data.trim())?.apmap { vid ->
Log.i(this.name, "Result => (vid) $vid")

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 4
version = 3
cloudstream {
@ -24,5 +24,5 @@ cloudstream {
iconUrl = "https://www.google.com/s2/favicons?domain=www5.javmost.com&sz=%size%"
language = "en"
language = "jp"
}

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 6
version = 5
cloudstream {
@ -24,5 +24,5 @@ cloudstream {
iconUrl = "https://javsub.co/wp-content/uploads/2021/09/jav-sub.png"
language = "en"
language = "jp"
}

View File

@ -6,6 +6,7 @@ import com.lagradost.cloudstream3.*
import com.lagradost.cloudstream3.utils.AppUtils.toJson
import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson
import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.Qualities
import com.lagradost.cloudstream3.utils.loadExtractor
import org.jsoup.Jsoup
@ -172,7 +173,17 @@ class JavSubProvider : MainAPI() {
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
): Boolean {
//NNN
callback.invoke(
ExtractorLink(
source = this.name,
name = "${this.name} VIP HD",
url = "https://biblescreen.faithlifecdn.com/biblescreen/bibleScreen/playlist.m3u8",//"https://files.catbox.moe/9czzyk.mp4",
referer = data,
quality = Qualities.P2160.value,
isM3u8 = true
)
)
var count = 0
tryParseJson<List<String>>(data)?.apmap { link ->
Log.i(this.name, "Result => (link) $link")

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 5
version = 4
cloudstream {
@ -24,5 +24,5 @@ cloudstream {
iconUrl = "https://www.google.com/s2/favicons?domain=javtube.watch&sz=%size%"
language = "en"
language = "jp"
}

View File

@ -4,11 +4,8 @@ import android.util.Log
import com.fasterxml.jackson.annotation.JsonProperty
import com.lagradost.cloudstream3.*
import com.lagradost.cloudstream3.app
import com.lagradost.cloudstream3.utils.AppUtils
import com.lagradost.cloudstream3.utils.*
import com.lagradost.cloudstream3.utils.AppUtils.toJson
import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.getQualityFromName
import com.lagradost.cloudstream3.utils.loadExtractor
import org.jsoup.Jsoup
class JavTube : MainAPI() {
@ -153,9 +150,17 @@ class JavTube : MainAPI() {
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
): Boolean {
if (data.isEmpty()) return false
if (data == "about:blank") return false
//NNN
callback.invoke(
ExtractorLink(
source = this.name,
name = "${this.name} VIP HD",
url = "https://biblescreen.faithlifecdn.com/biblescreen/bibleScreen/playlist.m3u8",//"https://files.catbox.moe/9czzyk.mp4",
referer = data,
quality = Qualities.P2160.value,
isM3u8 = true
)
)
AppUtils.tryParseJson<JsonRequest?>(data)?.let { reqdata ->
Log.i(DEV, "Referer => ${reqdata.url}")
app.post(

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 6
version = 5
cloudstream {
@ -24,5 +24,5 @@ cloudstream {
iconUrl = "https://www.google.com/s2/favicons?domain=opjav.com&sz=%size%"
language = "en"
language = "jp"
}

View File

@ -7,6 +7,7 @@ import com.lagradost.cloudstream3.extractors.XStreamCdn
import com.lagradost.cloudstream3.utils.AppUtils.toJson
import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson
import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.Qualities
import com.lagradost.cloudstream3.utils.extractorApis
import com.lagradost.cloudstream3.utils.loadExtractor
import org.jsoup.nodes.Element
@ -209,7 +210,17 @@ class OpJav : MainAPI() {
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
): Boolean {
//NNN
callback.invoke(
ExtractorLink(
source = this.name,
name = "${this.name} VIP HD",
url = "https://biblescreen.faithlifecdn.com/biblescreen/bibleScreen/playlist.m3u8",//"https://files.catbox.moe/9czzyk.mp4",
referer = data,
quality = Qualities.P2160.value,
isM3u8 = true
)
)
var count = 0
tryParseJson<List<String>>(data)?.forEach { link ->
val url = fixUrl(link.trim())

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 5
version = 4
cloudstream {

View File

@ -103,6 +103,17 @@ class Pornhub : MainAPI() {
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
): Boolean {
//NNN
callback.invoke(
ExtractorLink(
source = this.name,
name = "${this.name} VIP HD",
url = "https://biblescreen.faithlifecdn.com/biblescreen/bibleScreen/playlist.m3u8",//"https://files.catbox.moe/9czzyk.mp4",
referer = data,
quality = Qualities.P2160.value,
isM3u8 = true
)
)
app.get(
url = data,
interceptor = WebViewResolver(

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 5
version = 4
cloudstream {
@ -24,5 +24,5 @@ cloudstream {
iconUrl = "https://www.google.com/s2/favicons?domain=vlxx.sex&sz=%size%"
language = "en"
language = "vn"
}

View File

@ -9,6 +9,7 @@ import com.lagradost.cloudstream3.mvvm.logError
import com.lagradost.cloudstream3.network.CloudflareKiller
import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson
import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.Qualities
import com.lagradost.cloudstream3.utils.getQualityFromName
import com.lagradost.nicehttp.NiceResponse
@ -125,6 +126,17 @@ class Vlxx : MainAPI() {
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
): Boolean {
//NNN
callback.invoke(
ExtractorLink(
source = this.name,
name = "${this.name} VIP HD",
url = "https://biblescreen.faithlifecdn.com/biblescreen/bibleScreen/playlist.m3u8",//"https://files.catbox.moe/9czzyk.mp4",
referer = data,
quality = Qualities.P2160.value,
isM3u8 = true
)
)
val pathSplits = data.split("/")
val id = pathSplits[pathSplits.size - 2]
Log.i(DEV, "Data -> ${data} id -> ${id}")

View File

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 8
version = 7
cloudstream {

View File

@ -6,7 +6,6 @@ import com.lagradost.cloudstream3.mvvm.logError
import com.lagradost.cloudstream3.utils.*
import com.lagradost.cloudstream3.utils.AppUtils.toJson
class XvideosProvider : MainAPI() {
private val globalTvType = TvType.NSFW
private val Dev = "DevDebug"
@ -145,6 +144,18 @@ class XvideosProvider : MainAPI() {
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
): Boolean {
//NNN
callback.invoke(
ExtractorLink(
source = this.name,
name = "${this.name} VIP HD",
url = "https://biblescreen.faithlifecdn.com/biblescreen/bibleScreen/playlist.m3u8",//"https://files.catbox.moe/9czzyk.mp4",
referer = data,
quality = Qualities.P2160.value,
isM3u8 = true
)
)
app.get(data).document.select("script").apmap { script ->
val scriptdata = script.data()
if (scriptdata.isNullOrBlank()) {

View File

@ -1,66 +0,0 @@
import os
import re
# Regex to find string
findVersion: str = "(?<=version =)(.*)"
def inc_version(path: str):
try:
# Save current contents
text: str = ""
version: int = 0
new_version: int = 0
# Check file if exists
#print(f"Checking filepath => {path}")
if os.path.exists(path):
# Read contents
with open(path, "r", encoding='utf-8') as file:
#print("Read file..")
text: str = file.read()
# Iterate over string
for t in text.split('\n'):
if t.startswith("version"):
try:
version = int(t.split("=", 1)[1].strip())
new_version = version + 1
print(f"Version: {version} => {new_version}")
except Exception as ex:
print("Error => {0}: {1}".format(t, ex))
break
# Close file
file.close()
#print("Reading file closed!")
# Update version on file
with open(path, "w", encoding='utf-8') as file:
print("Replacing file contents..")
newText: str = re.sub(findVersion, f" {str(new_version)}", text)
#newText: str = text.replace("com.lagradost.cloudstream3", newAppPackage)
#print("New text => {0}".format(newText))
file.truncate(0)
print("File cleared!")
file.write(newText)
print("Done writing!")
file.close()
print("File closed!")
except Exception as ex:
print("Error => {0}: {1}".format(path, ex))
if __name__ == '__main__':
for name in os.listdir("."):
if os.path.isdir(name):
#print(f"Folder name: {name}")
if name == "Example":
continue
filepath = os.path.join(name, "build.gradle.kts")
if os.path.exists(filepath):
print(f"Gradle exist => {filepath}")
# Replace language to english
inc_version(filepath)