parent
d50732286a
commit
3c91f2a834
@ -3,7 +3,7 @@ ext {
|
|||||||
extClass = '.EternalMangasFactory'
|
extClass = '.EternalMangasFactory'
|
||||||
themePkg = 'mangaesp'
|
themePkg = 'mangaesp'
|
||||||
baseUrl = 'https://eternalmangas.com'
|
baseUrl = 'https://eternalmangas.com'
|
||||||
overrideVersionCode = 4
|
overrideVersionCode = 5
|
||||||
isNsfw = true
|
isNsfw = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import eu.kanade.tachiyomi.source.model.MangasPage
|
|||||||
import eu.kanade.tachiyomi.source.model.Page
|
import eu.kanade.tachiyomi.source.model.Page
|
||||||
import eu.kanade.tachiyomi.source.model.SChapter
|
import eu.kanade.tachiyomi.source.model.SChapter
|
||||||
import eu.kanade.tachiyomi.source.model.SManga
|
import eu.kanade.tachiyomi.source.model.SManga
|
||||||
|
import eu.kanade.tachiyomi.util.asJsoup
|
||||||
import kotlinx.serialization.decodeFromString
|
import kotlinx.serialization.decodeFromString
|
||||||
import kotlinx.serialization.json.contentOrNull
|
import kotlinx.serialization.json.contentOrNull
|
||||||
import kotlinx.serialization.json.jsonObject
|
import kotlinx.serialization.json.jsonObject
|
||||||
@ -57,23 +58,32 @@ open class EternalMangas(
|
|||||||
query: String,
|
query: String,
|
||||||
filters: FilterList,
|
filters: FilterList,
|
||||||
): MangasPage {
|
): MangasPage {
|
||||||
val body = response.body.string()
|
val (apiComicsUrl, jsonHeaders, useApi, scriptSelector, comicsRegex) = client.newCall(GET(dataUrl)).execute().body.string().split("\n")
|
||||||
val data = client.newCall(GET(dataUrl)).execute().body.string().split("\n")
|
val apiSearch = useApi == "1"
|
||||||
val headersJson = json.parseToJsonElement(data[1]).jsonObject
|
comicsList = if (apiSearch) {
|
||||||
val apiHeaders = headersBuilder()
|
val headersJson = json.parseToJsonElement(jsonHeaders).jsonObject
|
||||||
headersJson.forEach { (key, jsonElement) ->
|
val apiHeaders = headersBuilder()
|
||||||
var value = jsonElement.jsonPrimitive.contentOrNull.orEmpty()
|
headersJson.forEach { (key, jsonElement) ->
|
||||||
if (value.startsWith("1-")) {
|
var value = jsonElement.jsonPrimitive.contentOrNull.orEmpty()
|
||||||
val match = value.substringAfter("-").toRegex().find(body)
|
if (value.startsWith("1-")) {
|
||||||
value = match?.groupValues?.get(1).orEmpty()
|
val match = value.substringAfter("-").toRegex().find(response.body.string())
|
||||||
} else {
|
value = match?.groupValues?.get(1).orEmpty()
|
||||||
value = value.substringAfter("-")
|
} else {
|
||||||
|
value = value.substringAfter("-")
|
||||||
|
}
|
||||||
|
apiHeaders.add(key, value)
|
||||||
}
|
}
|
||||||
apiHeaders.add(key, value)
|
val apiResponse = client.newCall(GET(apiComicsUrl, apiHeaders.build())).execute()
|
||||||
|
json.decodeFromString<List<SeriesDto>>(apiResponse.body.string()).toMutableList()
|
||||||
|
} else {
|
||||||
|
val script = response.asJsoup().select(scriptSelector).joinToString { it.data() }
|
||||||
|
val jsonString = comicsRegex.toRegex().find(script)?.groupValues?.get(1)
|
||||||
|
?: throw Exception(intl["comics_list_error"])
|
||||||
|
val unescapedJson = jsonString.unescape()
|
||||||
|
json.decodeFromString<List<SeriesDto>>(unescapedJson).toMutableList()
|
||||||
}
|
}
|
||||||
|
|
||||||
val apiResponse = client.newCall(GET(data[0], apiHeaders.build())).execute()
|
return parseComicsList(page, query, filters)
|
||||||
return super.searchMangaParse(apiResponse, page, query, filters)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun mangaDetailsParse(response: Response) = SManga.create().apply {
|
override fun mangaDetailsParse(response: Response) = SManga.create().apply {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user