Big refactor for the E-Hentai config builder, I sucked when making my additions, now its better

This commit is contained in:
Jobobby04 2020-10-28 01:20:34 -04:00
parent 9cba544ffd
commit 4881571293

View File

@ -5,13 +5,13 @@ import okhttp3.FormBody
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
class EhUConfigBuilder { class EhUConfigBuilder {
private val prefs: PreferencesHelper by injectLazy() private val preferences: PreferencesHelper by injectLazy()
fun build(hathPerks: EHHathPerksResponse): FormBody { fun build(hathPerks: EHHathPerksResponse): FormBody {
val configItems = mutableListOf<ConfigItem>() val configItems = mutableListOf<ConfigItem>()
configItems += when ( configItems += when (
prefs.imageQuality() preferences.imageQuality()
.get() .get()
.toLowerCase() .toLowerCase()
) { ) {
@ -24,19 +24,19 @@ class EhUConfigBuilder {
else -> Entry.ImageSize.AUTO else -> Entry.ImageSize.AUTO
} }
configItems += when (prefs.useHentaiAtHome().get()) { configItems += when (preferences.useHentaiAtHome().get()) {
2 -> Entry.UseHentaiAtHome.NO 2 -> Entry.UseHentaiAtHome.NO
1 -> Entry.UseHentaiAtHome.DEFAULTONLY 1 -> Entry.UseHentaiAtHome.DEFAULTONLY
else -> Entry.UseHentaiAtHome.ANY else -> Entry.UseHentaiAtHome.ANY
} }
configItems += if (prefs.useJapaneseTitle().get()) { configItems += if (preferences.useJapaneseTitle().get()) {
Entry.TitleDisplayLanguage.JAPANESE Entry.TitleDisplayLanguage.JAPANESE
} else { } else {
Entry.TitleDisplayLanguage.DEFAULT Entry.TitleDisplayLanguage.DEFAULT
} }
configItems += if (prefs.eh_useOriginalImages().get()) { configItems += if (preferences.eh_useOriginalImages().get()) {
Entry.UseOriginalImages.YES Entry.UseOriginalImages.YES
} else { } else {
Entry.UseOriginalImages.NO Entry.UseOriginalImages.NO
@ -60,12 +60,12 @@ class EhUConfigBuilder {
configItems += Entry.UseMPV() configItems += Entry.UseMPV()
configItems += Entry.ShowPopularRightNowPane() configItems += Entry.ShowPopularRightNowPane()
configItems += Entry.TagFilteringThreshold(prefs.ehTagFilterValue().get()) configItems += Entry.TagFilteringThreshold(preferences.ehTagFilterValue().get())
configItems += Entry.TagWatchingThreshold(prefs.ehTagWatchingValue().get()) configItems += Entry.TagWatchingThreshold(preferences.ehTagWatchingValue().get())
configItems += Entry.LanguageSystem().getLanguages(prefs.eh_settingsLanguages().get().split("\n")) configItems += Entry.LanguageSystem().getLanguages(preferences.eh_settingsLanguages().get().split("\n"))
configItems += Entry.Categories().categoryConfigs(prefs.eh_EnabledCategories().get().split(",").map { it.toBoolean() }) configItems += Entry.Categories().categoryConfigs(preferences.eh_EnabledCategories().get().split(",").map { it.toBoolean() })
// Actually build form body // Actually build form body
val formBody = FormBody.Builder() val formBody = FormBody.Builder()
@ -157,452 +157,181 @@ object Entry {
override val value = "$value" override val value = "$value"
} }
class Categories() { class Categories {
fun categoryConfigs(list: List<Boolean>): List<ConfigItem> { fun categoryConfigs(list: List<Boolean>): List<ConfigItem> {
return listOf( return listOf(
Doujinshi(list[0]), GenreConfigItem("ct_doujinshi", list[0]),
Manga(list[1]), GenreConfigItem("ct_manga", list[1]),
ArtistCG(list[2]), GenreConfigItem("ct_artistcg", list[2]),
GameCG(list[3]), GenreConfigItem("ct_gamecg", list[3]),
Western(list[4]), GenreConfigItem("ct_western", list[4]),
NonH(list[5]), GenreConfigItem("ct_non-h", list[5]),
ImageSet(list[6]), GenreConfigItem("ct_imageset", list[6]),
Cosplay(list[7]), GenreConfigItem("ct_cosplay", list[7]),
AsianPorn(list[8]), GenreConfigItem("ct_asianporn", list[8]),
Misc(list[9]) GenreConfigItem("ct_misc", list[9])
) )
} }
private class Doujinshi(exclude: Boolean) : ConfigItem { private class GenreConfigItem(override val key: String, exclude: Boolean) : ConfigItem {
override val value = if (exclude) "1" else "0" override val value = if (exclude) "1" else "0"
override val key = "ct_doujinshi"
}
private class Manga(exclude: Boolean) : ConfigItem {
override val value = if (exclude) "1" else "0"
override val key = "ct_manga"
}
private class ArtistCG(exclude: Boolean) : ConfigItem {
override val value = if (exclude) "1" else "0"
override val key = "ct_artistcg"
}
private class GameCG(exclude: Boolean) : ConfigItem {
override val value = if (exclude) "1" else "0"
override val key = "ct_gamecg"
}
private class Western(exclude: Boolean) : ConfigItem {
override val value = if (exclude) "1" else "0"
override val key = "ct_western"
}
private class NonH(exclude: Boolean) : ConfigItem {
override val value = if (exclude) "1" else "0"
override val key = "ct_non-h"
}
private class ImageSet(exclude: Boolean) : ConfigItem {
override val value = if (exclude) "1" else "0"
override val key = "ct_imageset"
}
private class Cosplay(exclude: Boolean) : ConfigItem {
override val value = if (exclude) "1" else "0"
override val key = "ct_cosplay"
}
private class AsianPorn(exclude: Boolean) : ConfigItem {
override val value = if (exclude) "1" else "0"
override val key = "ct_asianporn"
}
private class Misc(exclude: Boolean) : ConfigItem {
override val value = if (exclude) "1" else "0"
override val key = "ct_misc"
} }
} }
class LanguageSystem { class LanguageSystem {
private fun transformConfig(values: List<String>) = values.map { pref ->
pref.split("*").map { it.toBoolean() }
}
fun getLanguages(values: List<String>): List<ConfigItem> { fun getLanguages(values: List<String>): List<ConfigItem> {
return Japanese(values[0].split("*").map { it.toBoolean() }).configs + val config = transformConfig(values)
English(values[1].split("*").map { it.toBoolean() }).configs + return listOf(
Chinese(values[2].split("*").map { it.toBoolean() }).configs + Japanese(config[0]),
Dutch(values[3].split("*").map { it.toBoolean() }).configs + English(config[1]),
French(values[4].split("*").map { it.toBoolean() }).configs + Chinese(config[2]),
German(values[5].split("*").map { it.toBoolean() }).configs + Dutch(config[3]),
Hungarian(values[6].split("*").map { it.toBoolean() }).configs + French(config[4]),
Italian(values[7].split("*").map { it.toBoolean() }).configs + German(config[5]),
Korean(values[8].split("*").map { it.toBoolean() }).configs + Hungarian(config[6]),
Polish(values[9].split("*").map { it.toBoolean() }).configs + Italian(config[7]),
Portuguese(values[10].split("*").map { it.toBoolean() }).configs + Korean(config[8]),
Russian(values[11].split("*").map { it.toBoolean() }).configs + Polish(config[9]),
Spanish(values[12].split("*").map { it.toBoolean() }).configs + Portuguese(config[10]),
Thai(values[13].split("*").map { it.toBoolean() }).configs + Russian(config[11]),
Vietnamese(values[14].split("*").map { it.toBoolean() }).configs + Spanish(config[12]),
NotAvailable(values[15].split("*").map { it.toBoolean() }).configs + Thai(config[13]),
Other(values[16].split("*").map { it.toBoolean() }).configs Vietnamese(config[14]),
NotAvailable(config[15]),
Other(config[16])
).flatMap { it.configs }
} }
private class Japanese(values: List<Boolean>) { private abstract class BaseLanguage(val values: List<Boolean>) {
abstract val translatedKey: String
abstract val rewriteKey: String
val configs = listOf( open val configs: List<LanguageConfigItem>
Translated(values[1]), get() = listOf(
Rewrite(values[2]) LanguageConfigItem(translatedKey, values[1]),
LanguageConfigItem(rewriteKey, values[2])
) )
class Translated(value: Boolean) : ConfigItem { protected class LanguageConfigItem(override val key: String, value: Boolean) : ConfigItem {
override val key = "xl_1024"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2048"
override val value = if (value) "checked" else "" override val value = if (value) "checked" else ""
} }
} }
private class English(values: List<Boolean>) {
val configs = listOf( private abstract class Language(values: List<Boolean>) : BaseLanguage(values) {
Original(values[0]), abstract val originalKey: String
Translated(values[1]),
Rewrite(values[2]) override val configs: List<LanguageConfigItem>
get() = listOf(
LanguageConfigItem(originalKey, values[0]),
LanguageConfigItem(translatedKey, values[1]),
LanguageConfigItem(rewriteKey, values[2]),
) )
class Original(value: Boolean) : ConfigItem {
override val key = "xl_1"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1025"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2049"
override val value = if (value) "checked" else ""
}
}
private class Chinese(values: List<Boolean>) {
val configs = listOf(
Original(values[0]),
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_10"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1034"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2058"
override val value = if (value) "checked" else ""
}
} }
private class Dutch(values: List<Boolean>) { private class Japanese(values: List<Boolean>) : BaseLanguage(values) {
override val translatedKey: String = "xl_1024"
val configs = listOf( override val rewriteKey: String = "xl_2048"
Original(values[0]),
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_20"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1044"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2068"
override val value = if (value) "checked" else ""
}
} }
private class French(values: List<Boolean>) { private class English(values: List<Boolean>) : Language(values) {
override val originalKey: String = "xl_1"
val configs = listOf( override val translatedKey: String = "xl_1025"
Original(values[0]), override val rewriteKey: String = "xl_2049"
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_30"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1054"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2078"
override val value = if (value) "checked" else ""
}
} }
private class German(values: List<Boolean>) { private class Chinese(values: List<Boolean>) : Language(values) {
override val originalKey: String = "xl_10"
val configs = listOf( override val translatedKey: String = "xl_1034"
Original(values[0]), override val rewriteKey: String = "xl_2058"
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_40"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1064"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2088"
override val value = if (value) "checked" else ""
}
} }
private class Hungarian(values: List<Boolean>) { private class Dutch(values: List<Boolean>) : Language(values) {
override val originalKey: String = "xl_20"
val configs = listOf( override val translatedKey: String = "xl_1044"
Original(values[0]), override val rewriteKey: String = "xl_2068"
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_50"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1074"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2098"
override val value = if (value) "checked" else ""
}
} }
private class Italian(values: List<Boolean>) { private class French(values: List<Boolean>) : Language(values) {
override val originalKey: String = "xl_30"
val configs = listOf( override val translatedKey: String = "xl_1054"
Original(values[0]), override val rewriteKey: String = "xl_2078"
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_60"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1084"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2108"
override val value = if (value) "checked" else ""
}
} }
private class Korean(values: List<Boolean>) { private class German(values: List<Boolean>) : Language(values) {
override val originalKey: String = "xl_40"
val configs = listOf( override val translatedKey: String = "xl_1064"
Original(values[0]), override val rewriteKey: String = "xl_2088"
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_70"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1094"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2118"
override val value = if (value) "checked" else ""
}
} }
private class Polish(values: List<Boolean>) { private class Hungarian(values: List<Boolean>) : Language(values) {
override val originalKey: String = "xl_50"
val configs = listOf( override val translatedKey: String = "xl_1074"
Original(values[0]), override val rewriteKey: String = "xl_2098"
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_80"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1104"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2128"
override val value = if (value) "checked" else ""
}
} }
private class Portuguese(values: List<Boolean>) { private class Italian(values: List<Boolean>) : Language(values) {
override val originalKey: String = "xl_60"
val configs = listOf( override val translatedKey: String = "xl_1084"
Original(values[0]), override val rewriteKey: String = "xl_2108"
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_90"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1114"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2138"
override val value = if (value) "checked" else ""
}
} }
private class Russian(values: List<Boolean>) { private class Korean(values: List<Boolean>) : Language(values) {
override val originalKey: String = "xl_70"
val configs = listOf( override val translatedKey: String = "xl_1094"
Original(values[0]), override val rewriteKey: String = "xl_2118"
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_100"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1124"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2148"
override val value = if (value) "checked" else ""
}
} }
private class Spanish(values: List<Boolean>) { private class Polish(values: List<Boolean>) : Language(values) {
override val originalKey: String = "xl_80"
val configs = listOf( override val translatedKey: String = "xl_1104"
Original(values[0]), override val rewriteKey: String = "xl_2128"
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_110"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1134"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2158"
override val value = if (value) "checked" else ""
}
} }
private class Thai(values: List<Boolean>) { private class Portuguese(values: List<Boolean>) : Language(values) {
override val originalKey: String = "xl_90"
val configs = listOf( override val translatedKey: String = "xl_1114"
Original(values[0]), override val rewriteKey: String = "xl_2138"
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_120"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1144"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2168"
override val value = if (value) "checked" else ""
}
} }
private class Vietnamese(values: List<Boolean>) { private class Russian(values: List<Boolean>) : Language(values) {
override val originalKey: String = "xl_100"
val configs = listOf( override val translatedKey: String = "xl_1124"
Original(values[0]), override val rewriteKey: String = "xl_2148"
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_130"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1154"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2178"
override val value = if (value) "checked" else ""
}
} }
private class NotAvailable(values: List<Boolean>) { private class Spanish(values: List<Boolean>) : Language(values) {
override val originalKey: String = "xl_110"
val configs = listOf( override val translatedKey: String = "xl_1134"
Original(values[0]), override val rewriteKey: String = "xl_2158"
Translated(values[1]),
Rewrite(values[2])
)
class Original(value: Boolean) : ConfigItem {
override val key = "xl_254"
override val value = if (value) "checked" else ""
}
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1278"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2302"
override val value = if (value) "checked" else ""
}
} }
private class Other(values: List<Boolean>) { 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"
}
val configs = listOf( private class Vietnamese(values: List<Boolean>) : Language(values) {
Original(values[0]), override val originalKey: String = "xl_130"
Translated(values[1]), override val translatedKey: String = "xl_1154"
Rewrite(values[2]) override val rewriteKey: String = "xl_2178"
) }
class Original(value: Boolean) : ConfigItem { private class NotAvailable(values: List<Boolean>) : Language(values) {
override val key = "xl_255" override val originalKey: String = "xl_254"
override val value = if (value) "checked" else "" override val translatedKey: String = "xl_1278"
} override val rewriteKey: String = "xl_2302"
class Translated(value: Boolean) : ConfigItem {
override val key = "xl_1279"
override val value = if (value) "checked" else ""
}
class Rewrite(value: Boolean) : ConfigItem {
override val key = "xl_2303"
override val value = if (value) "checked" else ""
} }
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"
} }
} }
} }