From e1d22b1110da6856ef5ae44db9e8ea62d7ad1337 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Tue, 24 Jan 2023 08:57:19 +0200 Subject: [PATCH] [ExHentai] Option to hide suspicious content --- .../org/koitharu/kotatsu/parsers/config/ConfigKey.kt | 4 ++++ .../koitharu/kotatsu/parsers/site/ExHentaiParser.kt | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/config/ConfigKey.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/config/ConfigKey.kt index c6c623d1..3ff6e276 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/config/ConfigKey.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/config/ConfigKey.kt @@ -10,4 +10,8 @@ sealed class ConfigKey( override val defaultValue: String, val presetValues: Array?, ) : ConfigKey("domain") + + class ShowSuspiciousContent( + override val defaultValue: Boolean, + ) : ConfigKey("show_suspicious") } \ No newline at end of file diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ExHentaiParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ExHentaiParser.kt index 13feeebf..6432667f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ExHentaiParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ExHentaiParser.kt @@ -37,6 +37,7 @@ internal class ExHentaiParser( private val authCookies = arrayOf("ipb_member_id", "ipb_pass_hash") private var updateDm = false private val nextPages = SparseArrayCompat() + private val suspiciousContentKey = ConfigKey.ShowSuspiciousContent(true) override val isAuthorized: Boolean get() { @@ -98,7 +99,10 @@ internal class ExHentaiParser( if (updateDm) { append("&inline_set=dm_e") } - append("&advsearch=1&f_sh=on") + append("&advsearch=1") + if (config[suspiciousContentKey]) { + append("&f_sh=on") + } } val body = context.httpGet(url).parseHtml().body() val root = body.selectFirst("table.itg") @@ -235,6 +239,11 @@ internal class ExHentaiParser( return username } + override fun onCreateConfig(keys: MutableCollection>) { + super.onCreateConfig(keys) + keys.add(suspiciousContentKey) + } + private fun isAuthorized(domain: String): Boolean { val cookies = context.cookieJar.getCookies(domain).mapToSet { x -> x.name } return authCookies.all { it in cookies }