Use Backup.serializer() (#1088)

This commit is contained in:
Mitchell Syer
2024-09-16 21:18:01 -04:00
committed by GitHub
parent 841cdc474f
commit 654a3cc7ed
4 changed files with 9 additions and 18 deletions

View File

@@ -16,9 +16,10 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import mu.KotlinLogging import mu.KotlinLogging
import okio.Buffer
import okio.Sink
import okio.buffer import okio.buffer
import okio.gzip import okio.gzip
import okio.sink
import org.jetbrains.exposed.sql.Query import org.jetbrains.exposed.sql.Query
import org.jetbrains.exposed.sql.SortOrder import org.jetbrains.exposed.sql.SortOrder
import org.jetbrains.exposed.sql.select import org.jetbrains.exposed.sql.select
@@ -33,7 +34,6 @@ import suwayomi.tachidesk.manga.impl.backup.proto.models.Backup
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupCategory import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupCategory
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupChapter import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupChapter
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupManga import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupManga
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupSerializer
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupSource import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupSource
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupTracking import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupTracking
import suwayomi.tachidesk.manga.impl.track.Track import suwayomi.tachidesk.manga.impl.track.Track
@@ -48,7 +48,6 @@ import suwayomi.tachidesk.server.serverConfig
import suwayomi.tachidesk.util.HAScheduler import suwayomi.tachidesk.util.HAScheduler
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import java.io.ByteArrayOutputStream
import java.io.File import java.io.File
import java.io.InputStream import java.io.InputStream
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
@@ -189,16 +188,15 @@ object ProtoBackupExport : ProtoBackupBase() {
) )
} }
val byteArray = parser.encodeToByteArray(BackupSerializer, backup) val byteArray = parser.encodeToByteArray(Backup.serializer(), backup)
val byteStream = ByteArrayOutputStream() val byteStream = Buffer()
byteStream (byteStream as Sink)
.sink()
.gzip() .gzip()
.buffer() .buffer()
.use { it.write(byteArray) } .use { it.write(byteArray) }
return byteStream.toByteArray().inputStream() return byteStream.inputStream()
} }
private fun backupManga( private fun backupManga(

View File

@@ -36,10 +36,10 @@ import suwayomi.tachidesk.manga.impl.backup.models.Chapter
import suwayomi.tachidesk.manga.impl.backup.models.Manga import suwayomi.tachidesk.manga.impl.backup.models.Manga
import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupValidator.ValidationResult import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupValidator.ValidationResult
import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupValidator.validate import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupValidator.validate
import suwayomi.tachidesk.manga.impl.backup.proto.models.Backup
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupCategory import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupCategory
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupHistory import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupHistory
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupManga import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupManga
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupSerializer
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupTracking import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupTracking
import suwayomi.tachidesk.manga.impl.track.tracker.TrackerManager import suwayomi.tachidesk.manga.impl.track.tracker.TrackerManager
import suwayomi.tachidesk.manga.impl.track.tracker.model.toTrack import suwayomi.tachidesk.manga.impl.track.tracker.model.toTrack
@@ -166,7 +166,7 @@ object ProtoBackupImport : ProtoBackupBase() {
.gzip() .gzip()
.buffer() .buffer()
.use { it.readByteArray() } .use { it.readByteArray() }
val backup = parser.decodeFromByteArray(BackupSerializer, backupString) val backup = parser.decodeFromByteArray(Backup.serializer(), backupString)
val validationResult = validate(backup) val validationResult = validate(backup)

View File

@@ -14,7 +14,6 @@ import okio.source
import org.jetbrains.exposed.sql.select import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.transactions.transaction import org.jetbrains.exposed.sql.transactions.transaction
import suwayomi.tachidesk.manga.impl.backup.proto.models.Backup import suwayomi.tachidesk.manga.impl.backup.proto.models.Backup
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupSerializer
import suwayomi.tachidesk.manga.impl.track.tracker.TrackerManager import suwayomi.tachidesk.manga.impl.track.tracker.TrackerManager
import suwayomi.tachidesk.manga.model.table.SourceTable import suwayomi.tachidesk.manga.model.table.SourceTable
import java.io.InputStream import java.io.InputStream
@@ -70,7 +69,7 @@ object ProtoBackupValidator {
.gzip() .gzip()
.buffer() .buffer()
.use { it.readByteArray() } .use { it.readByteArray() }
val backup = ProtoBackupImport.parser.decodeFromByteArray(BackupSerializer, backupString) val backup = ProtoBackupImport.parser.decodeFromByteArray(Backup.serializer(), backupString)
return validate(backup) return validate(backup)
} }

View File

@@ -1,6 +0,0 @@
package suwayomi.tachidesk.manga.impl.backup.proto.models
import kotlinx.serialization.Serializer
@Serializer(forClass = Backup::class)
object BackupSerializer