From a2d3fa6e1d7a7918891c561a56044923f4ed87de Mon Sep 17 00:00:00 2001 From: Mitchell Syer Date: Fri, 8 Dec 2023 19:16:25 -0500 Subject: [PATCH] Use new Tachiyomi backup filename format (#787) * Use new Tachiyomi backup filename format * Lint * Get Backup Filename in more places * Delete BackupFull --- .../tachidesk/graphql/mutations/BackupMutation.kt | 3 ++- .../tachidesk/manga/controller/BackupController.kt | 3 ++- .../manga/impl/backup/proto/ProtoBackupExport.kt | 9 +-------- .../manga/impl/backup/proto/models/Backup.kt | 9 +++++++++ .../manga/impl/backup/proto/models/BackupFull.kt | 12 ------------ 5 files changed, 14 insertions(+), 22 deletions(-) delete mode 100644 server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/models/BackupFull.kt diff --git a/server/src/main/kotlin/suwayomi/tachidesk/graphql/mutations/BackupMutation.kt b/server/src/main/kotlin/suwayomi/tachidesk/graphql/mutations/BackupMutation.kt index 1c0e258a..752c887c 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/graphql/mutations/BackupMutation.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/graphql/mutations/BackupMutation.kt @@ -9,6 +9,7 @@ import suwayomi.tachidesk.graphql.types.toStatus import suwayomi.tachidesk.manga.impl.backup.BackupFlags import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupExport import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupImport +import suwayomi.tachidesk.manga.impl.backup.proto.models.Backup import suwayomi.tachidesk.server.JavalinSetup.future import java.util.concurrent.CompletableFuture import kotlin.time.Duration.Companion.seconds @@ -53,7 +54,7 @@ class BackupMutation { ) fun createBackup(input: CreateBackupInput? = null): CreateBackupPayload { - val filename = ProtoBackupExport.getBackupFilename() + val filename = Backup.getFilename() val backup = ProtoBackupExport.createBackup( diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/BackupController.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/BackupController.kt index dddde9e1..c4507eb1 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/BackupController.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/BackupController.kt @@ -5,6 +5,7 @@ import suwayomi.tachidesk.manga.impl.backup.BackupFlags import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupExport import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupImport import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupValidator +import suwayomi.tachidesk.manga.impl.backup.proto.models.Backup import suwayomi.tachidesk.server.JavalinSetup.future import suwayomi.tachidesk.server.util.handler import suwayomi.tachidesk.server.util.withOperation @@ -107,7 +108,7 @@ object BackupController { behaviorOf = { ctx -> ctx.contentType("application/octet-stream") - ctx.header("Content-Disposition", """attachment; filename="${ProtoBackupExport.getBackupFilename()}"""") + ctx.header("Content-Disposition", """attachment; filename="${Backup.getFilename()}"""") ctx.future( future { ProtoBackupExport.createBackup( diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/ProtoBackupExport.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/ProtoBackupExport.kt index 4a35f683..e9bafb21 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/ProtoBackupExport.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/ProtoBackupExport.kt @@ -45,8 +45,6 @@ import uy.kohesive.injekt.api.get import java.io.ByteArrayOutputStream import java.io.File import java.io.InputStream -import java.text.SimpleDateFormat -import java.util.Date import java.util.concurrent.TimeUnit import kotlin.time.Duration.Companion.days @@ -114,7 +112,7 @@ object ProtoBackupExport : ProtoBackupBase() { val automatedBackupDir = File(applicationDirs.automatedBackupRoot) automatedBackupDir.mkdirs() - val backupFile = File(applicationDirs.automatedBackupRoot, getBackupFilename()) + val backupFile = File(applicationDirs.automatedBackupRoot, Backup.getFilename()) backupFile.outputStream().use { output -> input.copyTo(output) } } @@ -155,11 +153,6 @@ object ProtoBackupExport : ProtoBackupBase() { } } - fun getBackupFilename(): String { - val currentDate = SimpleDateFormat("yyyy-MM-dd_HH-mm").format(Date()) - return "tachidesk_$currentDate.proto.gz" - } - fun createBackup(flags: BackupFlags): InputStream { // Create root object diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/models/Backup.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/models/Backup.kt index c32fb203..d584764a 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/models/Backup.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/models/Backup.kt @@ -2,6 +2,8 @@ package suwayomi.tachidesk.manga.impl.backup.proto.models import kotlinx.serialization.Serializable import kotlinx.serialization.protobuf.ProtoNumber +import java.text.SimpleDateFormat +import java.util.Date @Serializable data class Backup( @@ -15,4 +17,11 @@ data class Backup( return (brokenBackupSources.map { BackupSource(it.name, it.sourceId) } + backupSources) .associate { it.sourceId to it.name } } + + companion object { + fun getFilename(): String { + val date = SimpleDateFormat("yyyy-MM-dd_HH-mm").format(Date()) + return "org.suwayomi.tachidesk_$date.tachibk" + } + } } diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/models/BackupFull.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/models/BackupFull.kt deleted file mode 100644 index c83402f0..00000000 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/models/BackupFull.kt +++ /dev/null @@ -1,12 +0,0 @@ -package suwayomi.tachidesk.manga.impl.backup.proto.models - -import java.text.SimpleDateFormat -import java.util.Date -import java.util.Locale - -object BackupFull { - fun getDefaultFilename(): String { - val date = SimpleDateFormat("yyyy-MM-dd_HH-mm", Locale.getDefault()).format(Date()) - return "tachiyomi_$date.proto.gz" - } -}