2018-02-12 22:22:54 +01:00
|
|
|
package exh.uconfig
|
|
|
|
|
|
|
|
|
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
|
|
|
|
import okhttp3.FormBody
|
|
|
|
|
import uy.kohesive.injekt.injectLazy
|
|
|
|
|
|
|
|
|
|
class EhUConfigBuilder {
|
2020-10-28 06:20:34 +01:00
|
|
|
private val preferences: PreferencesHelper by injectLazy()
|
2018-02-12 22:22:54 +01:00
|
|
|
|
|
|
|
|
fun build(hathPerks: EHHathPerksResponse): FormBody {
|
|
|
|
|
val configItems = mutableListOf<ConfigItem>()
|
|
|
|
|
|
2020-05-02 06:46:24 +02:00
|
|
|
configItems += when (
|
2020-10-28 06:20:34 +01:00
|
|
|
preferences.imageQuality()
|
2020-05-11 01:22:10 +02:00
|
|
|
.get()
|
2020-05-02 06:46:24 +02:00
|
|
|
.toLowerCase()
|
|
|
|
|
) {
|
2018-02-12 22:22:54 +01:00
|
|
|
"ovrs_2400" -> Entry.ImageSize.`2400`
|
|
|
|
|
"ovrs_1600" -> Entry.ImageSize.`1600`
|
|
|
|
|
"high" -> Entry.ImageSize.`1280`
|
|
|
|
|
"med" -> Entry.ImageSize.`980`
|
|
|
|
|
"low" -> Entry.ImageSize.`780`
|
|
|
|
|
"auto" -> Entry.ImageSize.AUTO
|
|
|
|
|
else -> Entry.ImageSize.AUTO
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
configItems += when (preferences.useHentaiAtHome().get()) {
|
2020-06-05 21:19:08 +02:00
|
|
|
2 -> Entry.UseHentaiAtHome.NO
|
|
|
|
|
1 -> Entry.UseHentaiAtHome.DEFAULTONLY
|
|
|
|
|
else -> Entry.UseHentaiAtHome.ANY
|
2020-05-02 06:46:24 +02:00
|
|
|
}
|
2018-02-12 22:22:54 +01:00
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
configItems += if (preferences.useJapaneseTitle().get()) {
|
2018-02-12 22:22:54 +01:00
|
|
|
Entry.TitleDisplayLanguage.JAPANESE
|
2020-05-02 06:46:24 +02:00
|
|
|
} else {
|
2018-02-12 22:22:54 +01:00
|
|
|
Entry.TitleDisplayLanguage.DEFAULT
|
2020-05-02 06:46:24 +02:00
|
|
|
}
|
2018-02-12 22:22:54 +01:00
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
configItems += if (preferences.eh_useOriginalImages().get()) {
|
2018-02-12 22:22:54 +01:00
|
|
|
Entry.UseOriginalImages.YES
|
2020-05-02 06:46:24 +02:00
|
|
|
} else {
|
2018-02-12 22:22:54 +01:00
|
|
|
Entry.UseOriginalImages.NO
|
2020-05-02 06:46:24 +02:00
|
|
|
}
|
2018-02-12 22:22:54 +01:00
|
|
|
|
|
|
|
|
configItems += when {
|
|
|
|
|
hathPerks.allThumbs -> Entry.ThumbnailRows.`40`
|
|
|
|
|
hathPerks.thumbsUp -> Entry.ThumbnailRows.`20`
|
|
|
|
|
hathPerks.moreThumbs -> Entry.ThumbnailRows.`10`
|
|
|
|
|
else -> Entry.ThumbnailRows.`4`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
configItems += when {
|
|
|
|
|
hathPerks.pagingEnlargementIII -> Entry.SearchResultsCount.`200`
|
|
|
|
|
hathPerks.pagingEnlargementII -> Entry.SearchResultsCount.`100`
|
|
|
|
|
hathPerks.pagingEnlargementI -> Entry.SearchResultsCount.`50`
|
|
|
|
|
else -> Entry.SearchResultsCount.`25`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
configItems += Entry.DisplayMode()
|
|
|
|
|
configItems += Entry.UseMPV()
|
|
|
|
|
configItems += Entry.ShowPopularRightNowPane()
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
configItems += Entry.TagFilteringThreshold(preferences.ehTagFilterValue().get())
|
|
|
|
|
configItems += Entry.TagWatchingThreshold(preferences.ehTagWatchingValue().get())
|
2020-05-11 04:36:52 +02:00
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
configItems += Entry.LanguageSystem().getLanguages(preferences.eh_settingsLanguages().get().split("\n"))
|
2020-06-01 06:38:19 +02:00
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
configItems += Entry.Categories().categoryConfigs(preferences.eh_EnabledCategories().get().split(",").map { it.toBoolean() })
|
2020-06-02 05:11:57 +02:00
|
|
|
|
2020-04-04 22:30:05 +02:00
|
|
|
// Actually build form body
|
2018-02-12 22:22:54 +01:00
|
|
|
val formBody = FormBody.Builder()
|
|
|
|
|
configItems.forEach {
|
|
|
|
|
formBody.add(it.key, it.value)
|
|
|
|
|
}
|
|
|
|
|
formBody.add("apply", "Apply")
|
|
|
|
|
return formBody.build()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
object Entry {
|
2020-04-04 22:30:05 +02:00
|
|
|
enum class UseHentaiAtHome(override val value: String) : ConfigItem {
|
2020-06-05 21:19:08 +02:00
|
|
|
ANY("0"),
|
|
|
|
|
DEFAULTONLY("1"),
|
|
|
|
|
NO("2");
|
2018-02-12 22:22:54 +01:00
|
|
|
|
|
|
|
|
override val key = "uh"
|
|
|
|
|
}
|
|
|
|
|
|
2020-04-04 22:30:05 +02:00
|
|
|
enum class ImageSize(override val value: String) : ConfigItem {
|
2018-02-12 22:22:54 +01:00
|
|
|
AUTO("0"),
|
|
|
|
|
`2400`("5"),
|
|
|
|
|
`1600`("4"),
|
|
|
|
|
`1280`("3"),
|
|
|
|
|
`980`("2"),
|
|
|
|
|
`780`("1");
|
|
|
|
|
|
|
|
|
|
override val key = "xr"
|
|
|
|
|
}
|
|
|
|
|
|
2020-04-04 22:30:05 +02:00
|
|
|
enum class TitleDisplayLanguage(override val value: String) : ConfigItem {
|
2018-02-12 22:22:54 +01:00
|
|
|
DEFAULT("0"),
|
|
|
|
|
JAPANESE("1");
|
|
|
|
|
|
|
|
|
|
override val key = "tl"
|
|
|
|
|
}
|
|
|
|
|
|
2020-04-04 22:30:05 +02:00
|
|
|
// Locked to extended mode as that's what the parser and toplists use
|
|
|
|
|
class DisplayMode : ConfigItem {
|
2018-02-12 22:22:54 +01:00
|
|
|
override val key = "dm"
|
2019-04-06 13:35:36 +02:00
|
|
|
override val value = "2"
|
2018-02-12 22:22:54 +01:00
|
|
|
}
|
|
|
|
|
|
2020-04-04 22:30:05 +02:00
|
|
|
enum class SearchResultsCount(override val value: String) : ConfigItem {
|
2018-02-12 22:22:54 +01:00
|
|
|
`25`("0"),
|
|
|
|
|
`50`("1"),
|
|
|
|
|
`100`("2"),
|
|
|
|
|
`200`("3");
|
|
|
|
|
|
|
|
|
|
override val key = "rc"
|
|
|
|
|
}
|
|
|
|
|
|
2020-04-04 22:30:05 +02:00
|
|
|
enum class ThumbnailRows(override val value: String) : ConfigItem {
|
2018-02-12 22:22:54 +01:00
|
|
|
`4`("0"),
|
|
|
|
|
`10`("1"),
|
|
|
|
|
`20`("2"),
|
|
|
|
|
`40`("3");
|
|
|
|
|
|
|
|
|
|
override val key = "tr"
|
|
|
|
|
}
|
|
|
|
|
|
2020-04-04 22:30:05 +02:00
|
|
|
enum class UseOriginalImages(override val value: String) : ConfigItem {
|
2018-02-12 22:22:54 +01:00
|
|
|
NO("0"),
|
|
|
|
|
YES("1");
|
|
|
|
|
|
|
|
|
|
override val key = "oi"
|
|
|
|
|
}
|
|
|
|
|
|
2020-04-04 22:30:05 +02:00
|
|
|
// Locked to no MPV as that's what the parser uses
|
|
|
|
|
class UseMPV : ConfigItem {
|
2018-02-12 22:22:54 +01:00
|
|
|
override val key = "qb"
|
|
|
|
|
override val value = "0"
|
|
|
|
|
}
|
|
|
|
|
|
2020-04-04 22:30:05 +02:00
|
|
|
// Locked to no popular pane as we can't parse it
|
|
|
|
|
class ShowPopularRightNowPane : ConfigItem {
|
2018-02-12 22:22:54 +01:00
|
|
|
override val key = "pp"
|
|
|
|
|
override val value = "1"
|
|
|
|
|
}
|
2020-05-11 04:36:52 +02:00
|
|
|
|
|
|
|
|
class TagFilteringThreshold(value: Int) : ConfigItem {
|
2020-05-27 19:45:25 +02:00
|
|
|
override val key = "ft"
|
2020-05-11 04:36:52 +02:00
|
|
|
override val value = "$value"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class TagWatchingThreshold(value: Int) : ConfigItem {
|
|
|
|
|
override val key = "wt"
|
|
|
|
|
override val value = "$value"
|
|
|
|
|
}
|
2020-06-01 06:38:19 +02:00
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
class Categories {
|
2020-06-02 05:11:57 +02:00
|
|
|
|
|
|
|
|
fun categoryConfigs(list: List<Boolean>): List<ConfigItem> {
|
|
|
|
|
return listOf(
|
2020-10-28 06:20:34 +01:00
|
|
|
GenreConfigItem("ct_doujinshi", list[0]),
|
|
|
|
|
GenreConfigItem("ct_manga", list[1]),
|
|
|
|
|
GenreConfigItem("ct_artistcg", list[2]),
|
|
|
|
|
GenreConfigItem("ct_gamecg", list[3]),
|
|
|
|
|
GenreConfigItem("ct_western", list[4]),
|
|
|
|
|
GenreConfigItem("ct_non-h", list[5]),
|
|
|
|
|
GenreConfigItem("ct_imageset", list[6]),
|
|
|
|
|
GenreConfigItem("ct_cosplay", list[7]),
|
|
|
|
|
GenreConfigItem("ct_asianporn", list[8]),
|
|
|
|
|
GenreConfigItem("ct_misc", list[9])
|
2020-06-02 05:11:57 +02:00
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class GenreConfigItem(override val key: String, exclude: Boolean) : ConfigItem {
|
2020-06-02 05:11:57 +02:00
|
|
|
override val value = if (exclude) "1" else "0"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-06-01 06:38:19 +02:00
|
|
|
class LanguageSystem {
|
2020-10-28 06:20:34 +01:00
|
|
|
private fun transformConfig(values: List<String>) = values.map { pref ->
|
|
|
|
|
pref.split("*").map { it.toBoolean() }
|
|
|
|
|
}
|
2020-06-01 06:38:19 +02:00
|
|
|
|
|
|
|
|
fun getLanguages(values: List<String>): List<ConfigItem> {
|
2020-10-28 06:20:34 +01:00
|
|
|
val config = transformConfig(values)
|
|
|
|
|
return listOf(
|
|
|
|
|
Japanese(config[0]),
|
|
|
|
|
English(config[1]),
|
|
|
|
|
Chinese(config[2]),
|
|
|
|
|
Dutch(config[3]),
|
|
|
|
|
French(config[4]),
|
|
|
|
|
German(config[5]),
|
|
|
|
|
Hungarian(config[6]),
|
|
|
|
|
Italian(config[7]),
|
|
|
|
|
Korean(config[8]),
|
|
|
|
|
Polish(config[9]),
|
|
|
|
|
Portuguese(config[10]),
|
|
|
|
|
Russian(config[11]),
|
|
|
|
|
Spanish(config[12]),
|
|
|
|
|
Thai(config[13]),
|
|
|
|
|
Vietnamese(config[14]),
|
|
|
|
|
NotAvailable(config[15]),
|
|
|
|
|
Other(config[16])
|
|
|
|
|
).flatMap { it.configs }
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private abstract class BaseLanguage(val values: List<Boolean>) {
|
|
|
|
|
abstract val translatedKey: String
|
|
|
|
|
abstract val rewriteKey: String
|
2020-06-01 06:38:19 +02:00
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
open val configs: List<LanguageConfigItem>
|
|
|
|
|
get() = listOf(
|
|
|
|
|
LanguageConfigItem(translatedKey, values[1]),
|
|
|
|
|
LanguageConfigItem(rewriteKey, values[2])
|
|
|
|
|
)
|
2020-06-01 06:38:19 +02:00
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
protected class LanguageConfigItem(override val key: String, value: Boolean) : ConfigItem {
|
2020-06-01 06:38:19 +02:00
|
|
|
override val value = if (value) "checked" else ""
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private abstract class Language(values: List<Boolean>) : BaseLanguage(values) {
|
|
|
|
|
abstract val originalKey: String
|
2020-06-01 06:38:19 +02:00
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
override val configs: List<LanguageConfigItem>
|
|
|
|
|
get() = listOf(
|
|
|
|
|
LanguageConfigItem(originalKey, values[0]),
|
|
|
|
|
LanguageConfigItem(translatedKey, values[1]),
|
|
|
|
|
LanguageConfigItem(rewriteKey, values[2]),
|
|
|
|
|
)
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class Japanese(values: List<Boolean>) : BaseLanguage(values) {
|
|
|
|
|
override val translatedKey: String = "xl_1024"
|
|
|
|
|
override val rewriteKey: String = "xl_2048"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class English(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_1"
|
|
|
|
|
override val translatedKey: String = "xl_1025"
|
|
|
|
|
override val rewriteKey: String = "xl_2049"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class Chinese(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_10"
|
|
|
|
|
override val translatedKey: String = "xl_1034"
|
|
|
|
|
override val rewriteKey: String = "xl_2058"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class Dutch(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_20"
|
|
|
|
|
override val translatedKey: String = "xl_1044"
|
|
|
|
|
override val rewriteKey: String = "xl_2068"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class French(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_30"
|
|
|
|
|
override val translatedKey: String = "xl_1054"
|
|
|
|
|
override val rewriteKey: String = "xl_2078"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class German(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_40"
|
|
|
|
|
override val translatedKey: String = "xl_1064"
|
|
|
|
|
override val rewriteKey: String = "xl_2088"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class Hungarian(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_50"
|
|
|
|
|
override val translatedKey: String = "xl_1074"
|
|
|
|
|
override val rewriteKey: String = "xl_2098"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class Italian(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_60"
|
|
|
|
|
override val translatedKey: String = "xl_1084"
|
|
|
|
|
override val rewriteKey: String = "xl_2108"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class Korean(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_70"
|
|
|
|
|
override val translatedKey: String = "xl_1094"
|
|
|
|
|
override val rewriteKey: String = "xl_2118"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class Polish(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_80"
|
|
|
|
|
override val translatedKey: String = "xl_1104"
|
|
|
|
|
override val rewriteKey: String = "xl_2128"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class Portuguese(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_90"
|
|
|
|
|
override val translatedKey: String = "xl_1114"
|
|
|
|
|
override val rewriteKey: String = "xl_2138"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class Russian(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_100"
|
|
|
|
|
override val translatedKey: String = "xl_1124"
|
|
|
|
|
override val rewriteKey: String = "xl_2148"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class Spanish(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_110"
|
|
|
|
|
override val translatedKey: String = "xl_1134"
|
|
|
|
|
override val rewriteKey: String = "xl_2158"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class Thai(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_120"
|
|
|
|
|
override val translatedKey: String = "xl_1144"
|
|
|
|
|
override val rewriteKey: String = "xl_2168"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class Vietnamese(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_130"
|
|
|
|
|
override val translatedKey: String = "xl_1154"
|
|
|
|
|
override val rewriteKey: String = "xl_2178"
|
|
|
|
|
}
|
2020-06-01 06:38:19 +02:00
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class NotAvailable(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_254"
|
|
|
|
|
override val translatedKey: String = "xl_1278"
|
|
|
|
|
override val rewriteKey: String = "xl_2302"
|
|
|
|
|
}
|
2020-06-01 06:38:19 +02:00
|
|
|
|
2020-10-28 06:20:34 +01:00
|
|
|
private class Other(values: List<Boolean>) : Language(values) {
|
|
|
|
|
override val originalKey: String = "xl_255"
|
|
|
|
|
override val translatedKey: String = "xl_1279"
|
|
|
|
|
override val rewriteKey: String = "xl_2303"
|
2020-06-01 06:38:19 +02:00
|
|
|
}
|
|
|
|
|
}
|
2018-02-12 22:22:54 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
interface ConfigItem {
|
|
|
|
|
val key: String
|
|
|
|
|
val value: String
|
2020-04-04 22:30:05 +02:00
|
|
|
}
|