NepNep: Grab cover URL early to avoid extra call (#12664)

* NepNep: Grab cover URL quickly to avoid extra call

* NepNep: bump baseVersionCode

* replace directoryFromResponse with directoryFromDocument
This commit is contained in:
beerpsi 2022-07-22 09:21:14 +07:00 committed by GitHub
parent e4a6bf97f0
commit d0ca4888dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 6 deletions

View File

@ -20,6 +20,7 @@ import kotlinx.serialization.json.jsonPrimitive
import okhttp3.Headers import okhttp3.Headers
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import org.jsoup.nodes.Document
import rx.Observable import rx.Observable
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@ -74,15 +75,17 @@ abstract class NepNep(
} }
// don't use ";" for substringBefore() ! // don't use ";" for substringBefore() !
private fun directoryFromResponse(response: Response): JsonArray { private fun directoryFromDocument(document: Document): JsonArray {
val str = response.asJsoup().select("script:containsData(MainFunction)").first().data() val str = document.select("script:containsData(MainFunction)").first().data()
.substringAfter("vm.Directory = ").substringBefore("vm.GetIntValue").trim() .substringAfter("vm.Directory = ").substringBefore("vm.GetIntValue").trim()
.replace(";", " ") .replace(";", " ")
return json.parseToJsonElement(str).jsonArray return json.parseToJsonElement(str).jsonArray
} }
override fun popularMangaParse(response: Response): MangasPage { override fun popularMangaParse(response: Response): MangasPage {
directory = directoryFromResponse(response).sortedByDescending { it.getString("v") } val document = response.asJsoup()
thumbnailUrl = document.select(".SearchResult > .SearchResultCover img").first().attr("ng-src")
directory = directoryFromDocument(document).sortedByDescending { it.getString("v") }
return parseDirectory(1) return parseDirectory(1)
} }
@ -130,7 +133,7 @@ abstract class NepNep(
override fun latestUpdatesRequest(page: Int): Request = popularMangaRequest(1) override fun latestUpdatesRequest(page: Int): Request = popularMangaRequest(1)
override fun latestUpdatesParse(response: Response): MangasPage { override fun latestUpdatesParse(response: Response): MangasPage {
directory = directoryFromResponse(response).sortedByDescending { it.getString("lt") } directory = directoryFromDocument(response.asJsoup()).sortedByDescending { it.getString("lt") }
return parseDirectory(1) return parseDirectory(1)
} }
@ -152,7 +155,7 @@ abstract class NepNep(
private fun searchMangaParse(response: Response, query: String, filters: FilterList): MangasPage { private fun searchMangaParse(response: Response, query: String, filters: FilterList): MangasPage {
val trimmedQuery = query.trim() val trimmedQuery = query.trim()
directory = directoryFromResponse(response) directory = directoryFromDocument(response.asJsoup())
.filter { .filter {
// Comparing query with display name // Comparing query with display name
it.getString("s")!!.contains(trimmedQuery, ignoreCase = true) or it.getString("s")!!.contains(trimmedQuery, ignoreCase = true) or
@ -198,6 +201,7 @@ abstract class NepNep(
Filter.TriState.STATE_EXCLUDE -> genresNo.add(genre.name) Filter.TriState.STATE_EXCLUDE -> genresNo.add(genre.name)
} }
} }
else -> continue
} }
} }
if (genres.isNotEmpty()) genres.map { genre -> if (genres.isNotEmpty()) genres.map { genre ->

View File

@ -9,7 +9,7 @@ class NepNepGenerator : ThemeSourceGenerator {
override val themeClass = "NepNep" override val themeClass = "NepNep"
override val baseVersionCode: Int = 10 override val baseVersionCode: Int = 11
override val sources = listOf( override val sources = listOf(
SingleLang("MangaSee", "https://mangasee123.com", "en", overrideVersionCode = 20), SingleLang("MangaSee", "https://mangasee123.com", "en", overrideVersionCode = 20),