Manually deserialize saved searches, fix NHentai

This commit is contained in:
Jobobby04
2020-10-13 11:34:06 -04:00
parent 3dd10df45e
commit b67db6a25e
7 changed files with 27 additions and 14 deletions
@@ -239,7 +239,7 @@ object DebugFunctions {
try {
val id = it.substringBefore(':').toLong()
if (id != source.id) return@mapNotNull null
Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
JsonSavedSearch.fromJsonObject(Json.decodeFromString(it.substringAfter(':')))
} catch (t: RuntimeException) {
// Load failed
XLog.e("Failed to load saved search!", t)
@@ -251,7 +251,7 @@ object DebugFunctions {
try {
val id = it.substringBefore(':').toLong()
if (id != newSource.id) return@mapNotNull null
Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
JsonSavedSearch.fromJsonObject(Json.decodeFromString(it.substringAfter(':')))
} catch (t: RuntimeException) {
// Load failed
XLog.e("Failed to load saved search!", t)
@@ -278,7 +278,7 @@ object DebugFunctions {
try {
val id = it.substringBefore(':').toLong()
if (id != source.id) return@mapNotNull null
Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
JsonSavedSearch.fromJsonObject(Json.decodeFromString(it.substringAfter(':')))
} catch (t: RuntimeException) {
// Load failed
XLog.e("Failed to load saved search!", t)
@@ -290,7 +290,7 @@ object DebugFunctions {
try {
val id = it.substringBefore(':').toLong()
if (id != newSource.id) return@mapNotNull null
Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
JsonSavedSearch.fromJsonObject(Json.decodeFromString(it.substringAfter(':')))
} catch (t: RuntimeException) {
// Load failed
XLog.e("Failed to load saved search!", t)
@@ -2,10 +2,23 @@ package exh.savedsearches
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.JsonArray
import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.jsonArray
import kotlinx.serialization.json.jsonPrimitive
@Serializable
data class JsonSavedSearch(
val name: String,
val query: String,
val filters: JsonArray
)
) {
companion object {
fun fromJsonObject(json: JsonObject): JsonSavedSearch {
return JsonSavedSearch(
json["name"]!!.jsonPrimitive.content,
json["query"]!!.jsonPrimitive.content,
json["filters"]!!.jsonArray,
)
}
}
}