From 80a30d059fda7ad625133eee3c2ffb065ea1ce87 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Fri, 20 Jun 2025 09:22:15 +0300 Subject: [PATCH] Fix json configuration for backups --- .../kotatsu/backups/data/BackupRepository.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/backups/data/BackupRepository.kt b/app/src/main/kotlin/org/koitharu/kotatsu/backups/data/BackupRepository.kt index c117ecef4..ae6d36be3 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/backups/data/BackupRepository.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/backups/data/BackupRepository.kt @@ -19,6 +19,7 @@ import kotlinx.serialization.json.encodeToStream import kotlinx.serialization.serializer import org.json.JSONArray import org.json.JSONObject +import org.koitharu.kotatsu.BuildConfig import org.koitharu.kotatsu.backups.data.model.BackupIndex import org.koitharu.kotatsu.backups.data.model.BookmarkBackup import org.koitharu.kotatsu.backups.data.model.CategoryBackup @@ -46,6 +47,15 @@ class BackupRepository @Inject constructor( private val tapGridSettings: TapGridSettings, ) { + private val json = Json { + allowSpecialFloatingPointValues = true + coerceInputValues = true + ignoreUnknownKeys = true + prettyPrint = BuildConfig.DEBUG + prettyPrintIndent = "\t" + useAlternativeNames = false + } + suspend fun createBackup( output: ZipOutputStream, progress: FlowCollector? @@ -181,13 +191,13 @@ class BackupRepository @Inject constructor( if (index > 0) { write(",") } - Json.encodeToStream(serializer, value, this) + json.encodeToStream(serializer, value, this) } } private fun InputStream.readJsonArray( serializer: DeserializationStrategy, - ): Sequence = Json.decodeToSequence(this, serializer, DecodeSequenceMode.ARRAY_WRAPPED) + ): Sequence = json.decodeToSequence(this, serializer, DecodeSequenceMode.ARRAY_WRAPPED) private fun InputStream.readMap(): Map { val jo = JSONArray(readString()).getJSONObject(0)