From 14e8cf2f0fc56e2f849f0e0dd9e445341a4c1fa3 Mon Sep 17 00:00:00 2001 From: Jace <54625750+Jacekun@users.noreply.github.com> Date: Mon, 22 Aug 2022 07:52:43 +0800 Subject: [PATCH] Minor optimizations --- JavFreeProvider/build.gradle.kts | 2 +- .../kotlin/com/jacekun/JavFreeProvider.kt | 42 ++++++++++--------- JavSubProvider/build.gradle.kts | 2 +- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/JavFreeProvider/build.gradle.kts b/JavFreeProvider/build.gradle.kts index c1759e9..ddd4083 100644 --- a/JavFreeProvider/build.gradle.kts +++ b/JavFreeProvider/build.gradle.kts @@ -1,5 +1,5 @@ // use an integer for version numbers -version = 1 +version = 2 cloudstream { diff --git a/JavFreeProvider/src/main/kotlin/com/jacekun/JavFreeProvider.kt b/JavFreeProvider/src/main/kotlin/com/jacekun/JavFreeProvider.kt index 76c7497..005e58f 100644 --- a/JavFreeProvider/src/main/kotlin/com/jacekun/JavFreeProvider.kt +++ b/JavFreeProvider/src/main/kotlin/com/jacekun/JavFreeProvider.kt @@ -27,7 +27,7 @@ class JavFreeProvider : MainAPI() { @JsonProperty("active") val active: Int? ) - fun String.cleanText() : String = this.trim().removePrefix("Watch JAV Free") + private fun String.cleanText() : String = this.trim().removePrefix("Watch JAV Free") .removeSuffix("HD Free Online on JAVFree.SH").trim() .removePrefix("Watch JAV").trim() @@ -39,26 +39,25 @@ class JavFreeProvider : MainAPI() { val document = Jsoup.parse(html) val all = ArrayList() - val mainbody = document.getElementsByTag("body").select("div#page") + document.getElementsByTag("body").select("div#page") .select("div#content").select("div#primary") .select("main") - - mainbody.select("section").forEach { it2 -> + .select("section").forEach { it2 -> // Fetch row title val title = it2?.select("h2.widget-title")?.text() ?: "Unnamed Row" // Fetch list of items and map - it2.select("div.videos-list") - .select("article").let { inner -> + it2.select("div.videos-list").select("article") + .let { inner -> - val elements: List = inner.map { + val elements: List = inner.mapNotNull { val aa = it.select("a").firstOrNull() - val link = fixUrl(aa?.attr("href") ?: "") + val link = fixUrlNull(aa?.attr("href")) ?: return@mapNotNull null val name = aa?.attr("title") ?: "" - var image = aa?.select("div")?.select("img")?.attr("data-src") ?: "" - if (image == "") { - image = aa?.select("div")?.select("video")?.attr("poster") ?: "" + var image = aa?.select("div")?.select("img")?.attr("data-src") + if (image.isNullOrBlank()) { + image = aa?.select("div")?.select("video")?.attr("poster") } val year = null @@ -85,21 +84,24 @@ class JavFreeProvider : MainAPI() { } override suspend fun search(query: String): List { - val url = "$mainUrl/search/movie/${query}" - val html = app.get(url).text - val document = Jsoup.parse(html).select("div.videos-list").select("article[id^=post]") + val searchUrl = "$mainUrl/search/movie/${query}" + val document = app.get(searchUrl).document + .select("div.videos-list").select("article[id^=post]") - return document.map { - val aa = it.select("a") + return document.mapNotNull { + val aa = it?.select("a") ?: return@mapNotNull null + val url = fixUrlNull(aa.attr("href")) ?: return@mapNotNull null val title = aa.attr("title") - val href = fixUrl(aa.attr("href")) val year = null - val image = aa.select("div.post-thumbnail.thumbs-rotation") + var image = aa.select("div.post-thumbnail.thumbs-rotation") .select("img").attr("data-src") + if (image.isNullOrBlank()) { + image = aa.select("div").select("video").attr("poster").toString() + } MovieSearchResponse( name = title, - url = href, + url = url, apiName = this.name, type = tvType, posterUrl = image, @@ -174,7 +176,7 @@ class JavFreeProvider : MainAPI() { return true } } catch (e: Exception) { - e.printStackTrace() + //e.printStackTrace() logError(e) } return false diff --git a/JavSubProvider/build.gradle.kts b/JavSubProvider/build.gradle.kts index dda01ea..105ec04 100644 --- a/JavSubProvider/build.gradle.kts +++ b/JavSubProvider/build.gradle.kts @@ -5,7 +5,7 @@ version = 1 cloudstream { // All of these properties are optional, you can safely remove them - description = "High quality JAV subbed" + description = "High quality JAV with English sub" authors = listOf("Jace") /**