Cleanup E-Hentai

This commit is contained in:
Jobobby04 2020-08-18 18:31:00 -04:00
parent 6ce4612aa7
commit 20aa5b9aa1

View File

@ -19,6 +19,7 @@ import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.asObservableSuccess import eu.kanade.tachiyomi.network.asObservableSuccess
import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.Filter
import eu.kanade.tachiyomi.source.model.FilterList import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.MangasPage
import eu.kanade.tachiyomi.source.model.MetadataMangasPage import eu.kanade.tachiyomi.source.model.MetadataMangasPage
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
@ -79,7 +80,7 @@ class EHentai(
) : HttpSource(), LewdSource<EHentaiSearchMetadata, Document>, UrlImportableSource { ) : HttpSource(), LewdSource<EHentaiSearchMetadata, Document>, UrlImportableSource {
override val metaClass = EHentaiSearchMetadata::class override val metaClass = EHentaiSearchMetadata::class
val domain: String private val domain: String
get() = if (exh) { get() = if (exh) {
"exhentai.org" "exhentai.org"
} else { } else {
@ -92,7 +93,7 @@ class EHentai(
override val lang = "all" override val lang = "all"
override val supportsLatest = true override val supportsLatest = true
private val prefs: PreferencesHelper by injectLazy() private val preferences: PreferencesHelper by injectLazy()
private val updateHelper: EHentaiUpdateHelper by injectLazy() private val updateHelper: EHentaiUpdateHelper by injectLazy()
/** /**
@ -105,11 +106,11 @@ class EHentai(
val parsedMangas = select(".itg > tbody > tr").filter { val parsedMangas = select(".itg > tbody > tr").filter {
// Do not parse header and ads // Do not parse header and ads
it.selectFirst("th") == null && it.selectFirst(".itd") == null it.selectFirst("th") == null && it.selectFirst(".itd") == null
}.map { }.map { body ->
val thumbnailElement = it.selectFirst(".gl1e img, .gl2c .glthumb img") val thumbnailElement = body.selectFirst(".gl1e img, .gl2c .glthumb img")
val column2 = it.selectFirst(".gl3e, .gl2c") val column2 = body.selectFirst(".gl3e, .gl2c")
val linkElement = it.selectFirst(".gl3c > a, .gl2e > div > a") val linkElement = body.selectFirst(".gl3c > a, .gl2e > div > a")
val infoElement = it.selectFirst(".gl3e") val infoElement = body.selectFirst(".gl3e")
val favElement = column2.children().find { it.attr("style").startsWith("border-color") } val favElement = column2.children().find { it.attr("style").startsWith("border-color") }
val infoElements = infoElement?.select("div") val infoElements = infoElement?.select("div")
@ -144,7 +145,7 @@ class EHentai(
) )
} }
} else { } else {
val tagElement = it.selectFirst(".gl3c > a") val tagElement = body.selectFirst(".gl3c > a")
val tagElements = tagElement.select("div") val tagElements = tagElement.select("div")
tagElements.forEach { element -> tagElements.forEach { element ->
if (element.className() == "gt") { if (element.className() == "gt") {
@ -174,11 +175,11 @@ class EHentai(
getPageCount(infoElements.getOrNull(5))?.let { length = it } getPageCount(infoElements.getOrNull(5))?.let { length = it }
} else { } else {
val parsedGenre = it.selectFirst(".gl1c div") val parsedGenre = body.selectFirst(".gl1c div")
getGenre(genreString = parsedGenre?.text()?.nullIfBlank()?.toLowerCase()?.replace(" ", ""))?.let { genre = it } getGenre(genreString = parsedGenre?.text()?.nullIfBlank()?.toLowerCase()?.replace(" ", ""))?.let { genre = it }
val info = it.selectFirst(".gl2c") val info = body.selectFirst(".gl2c")
val extraInfo = it.selectFirst(".gl4c") val extraInfo = body.selectFirst(".gl4c")
val infoList = info.select("div div") val infoList = info.select("div div")
@ -394,7 +395,7 @@ class EHentai(
} }
// Support direct URL importing // Support direct URL importing
override fun fetchSearchManga(page: Int, query: String, filters: FilterList) = override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable<MangasPage> =
urlImportFetchSearchManga(context, query) { urlImportFetchSearchManga(context, query) {
searchMangaRequestObservable(page, query, filters).flatMap { searchMangaRequestObservable(page, query, filters).flatMap {
client.newCall(it).asObservableSuccess() client.newCall(it).asObservableSuccess()
@ -443,14 +444,14 @@ class EHentai(
override fun searchMangaParse(response: Response) = genericMangaParse(response) override fun searchMangaParse(response: Response) = genericMangaParse(response)
override fun latestUpdatesParse(response: Response) = genericMangaParse(response) override fun latestUpdatesParse(response: Response) = genericMangaParse(response)
fun exGet(url: String, page: Int? = null, additionalHeaders: Headers? = null, cache: Boolean = true): Request { private fun exGet(url: String, page: Int? = null, additionalHeaders: Headers? = null, cache: Boolean = true): Request {
return GET( return GET(
page?.let { page?.let {
addParam(url, "page", Integer.toString(page - 1)) addParam(url, "page", Integer.toString(page - 1))
} ?: url, } ?: url,
additionalHeaders?.let { additionalHeaders?.let { additionalHeadersNotNull ->
val headers = headers.newBuilder() val headers = headers.newBuilder()
it.toMultimap().forEach { (t, u) -> additionalHeadersNotNull.toMultimap().forEach { (t, u) ->
u.forEach { u.forEach {
headers.add(t, it) headers.add(t, it)
} }
@ -599,12 +600,10 @@ class EHentai(
RaisedTag( RaisedTag(
namespace, namespace,
element.text().trim(), element.text().trim(),
if (element.hasClass("gtl")) { when {
TAG_TYPE_LIGHT element.hasClass("gtl") -> TAG_TYPE_LIGHT
} else if (element.hasClass("gtw")) { element.hasClass("gtw") -> TAG_TYPE_WEAK
TAG_TYPE_WEAK else -> TAG_TYPE_NORMAL
} else {
TAG_TYPE_NORMAL
} }
) )
} }
@ -629,7 +628,7 @@ class EHentai(
.map { realImageUrlParse(it, page) } .map { realImageUrlParse(it, page) }
} }
fun realImageUrlParse(response: Response, page: Page): String { private fun realImageUrlParse(response: Response, page: Page): String {
with(response.asJsoup()) { with(response.asJsoup()) {
val currentImage = getElementById("img").attr("src") val currentImage = getElementById("img").attr("src")
// Each press of the retry button will choose another server // Each press of the retry button will choose another server
@ -680,30 +679,30 @@ class EHentai(
} }
fun spPref() = if (exh) { fun spPref() = if (exh) {
prefs.eh_exhSettingsProfile() preferences.eh_exhSettingsProfile()
} else { } else {
prefs.eh_ehSettingsProfile() preferences.eh_ehSettingsProfile()
} }
fun rawCookies(sp: Int): Map<String, String> { private fun rawCookies(sp: Int): Map<String, String> {
val cookies: MutableMap<String, String> = mutableMapOf() val cookies: MutableMap<String, String> = mutableMapOf()
if (prefs.enableExhentai().get()) { if (preferences.enableExhentai().get()) {
cookies[LoginController.MEMBER_ID_COOKIE] = prefs.memberIdVal().get() cookies[LoginController.MEMBER_ID_COOKIE] = preferences.memberIdVal().get()
cookies[LoginController.PASS_HASH_COOKIE] = prefs.passHashVal().get() cookies[LoginController.PASS_HASH_COOKIE] = preferences.passHashVal().get()
cookies[LoginController.IGNEOUS_COOKIE] = prefs.igneousVal().get() cookies[LoginController.IGNEOUS_COOKIE] = preferences.igneousVal().get()
cookies["sp"] = sp.toString() cookies["sp"] = sp.toString()
val sessionKey = prefs.eh_settingsKey().get() val sessionKey = preferences.eh_settingsKey().get()
if (sessionKey.isNotBlank()) { if (sessionKey.isNotBlank()) {
cookies["sk"] = sessionKey cookies["sk"] = sessionKey
} }
val sessionCookie = prefs.eh_sessionCookie().get() val sessionCookie = preferences.eh_sessionCookie().get()
if (sessionCookie.isNotBlank()) { if (sessionCookie.isNotBlank()) {
cookies["s"] = sessionCookie cookies["s"] = sessionCookie
} }
val hathPerksCookie = prefs.eh_hathPerksCookies().get() val hathPerksCookie = preferences.eh_hathPerksCookies().get()
if (hathPerksCookie.isNotBlank()) { if (hathPerksCookie.isNotBlank()) {
cookies["hath_perks"] = hathPerksCookie cookies["hath_perks"] = hathPerksCookie
} }
@ -723,7 +722,7 @@ class EHentai(
// Headers // Headers
override fun headersBuilder() = super.headersBuilder().add("Cookie", cookiesHeader()) override fun headersBuilder() = super.headersBuilder().add("Cookie", cookiesHeader())
fun addParam(url: String, param: String, value: String) = Uri.parse(url) private fun addParam(url: String, param: String, value: String) = Uri.parse(url)
.buildUpon() .buildUpon()
.appendQueryParameter(param, value) .appendQueryParameter(param, value)
.toString() .toString()
@ -750,7 +749,7 @@ class EHentai(
EHTags.getNameSpaces().map { "$it:" } + EHTags.getAllTags(), EHTags.getNameSpaces().map { "$it:" } + EHTags.getAllTags(),
EHTags.getNameSpaces().map { "$it:" }, excludePrefix EHTags.getNameSpaces().map { "$it:" }, excludePrefix
), ),
if (prefs.eh_watchedListDefaultState().get()) { if (preferences.eh_watchedListDefaultState().get()) {
Watched(isEnabled = true) Watched(isEnabled = true)
} else { } else {
Watched(isEnabled = false) Watched(isEnabled = false)
@ -867,7 +866,7 @@ class EHentai(
UriFilter { UriFilter {
override fun addToUri(builder: Uri.Builder) { override fun addToUri(builder: Uri.Builder) {
if (state > 0) { if (state > 0) {
builder.appendQueryParameter("f_srdd", Integer.toString(state + 1)) builder.appendQueryParameter("f_srdd", (state + 1).toString())
builder.appendQueryParameter("f_sr", "on") builder.appendQueryParameter("f_sr", "on")
} }
} }