mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-03 19:04:39 -05:00
Use new Tachiyomi backup filename format (#787)
* Use new Tachiyomi backup filename format * Lint * Get Backup Filename in more places * Delete BackupFull
This commit is contained in:
@@ -9,6 +9,7 @@ import suwayomi.tachidesk.graphql.types.toStatus
|
|||||||
import suwayomi.tachidesk.manga.impl.backup.BackupFlags
|
import suwayomi.tachidesk.manga.impl.backup.BackupFlags
|
||||||
import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupExport
|
import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupExport
|
||||||
import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupImport
|
import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupImport
|
||||||
|
import suwayomi.tachidesk.manga.impl.backup.proto.models.Backup
|
||||||
import suwayomi.tachidesk.server.JavalinSetup.future
|
import suwayomi.tachidesk.server.JavalinSetup.future
|
||||||
import java.util.concurrent.CompletableFuture
|
import java.util.concurrent.CompletableFuture
|
||||||
import kotlin.time.Duration.Companion.seconds
|
import kotlin.time.Duration.Companion.seconds
|
||||||
@@ -53,7 +54,7 @@ class BackupMutation {
|
|||||||
)
|
)
|
||||||
|
|
||||||
fun createBackup(input: CreateBackupInput? = null): CreateBackupPayload {
|
fun createBackup(input: CreateBackupInput? = null): CreateBackupPayload {
|
||||||
val filename = ProtoBackupExport.getBackupFilename()
|
val filename = Backup.getFilename()
|
||||||
|
|
||||||
val backup =
|
val backup =
|
||||||
ProtoBackupExport.createBackup(
|
ProtoBackupExport.createBackup(
|
||||||
|
|||||||
@@ -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.ProtoBackupExport
|
||||||
import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupImport
|
import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupImport
|
||||||
import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupValidator
|
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.JavalinSetup.future
|
||||||
import suwayomi.tachidesk.server.util.handler
|
import suwayomi.tachidesk.server.util.handler
|
||||||
import suwayomi.tachidesk.server.util.withOperation
|
import suwayomi.tachidesk.server.util.withOperation
|
||||||
@@ -107,7 +108,7 @@ object BackupController {
|
|||||||
behaviorOf = { ctx ->
|
behaviorOf = { ctx ->
|
||||||
ctx.contentType("application/octet-stream")
|
ctx.contentType("application/octet-stream")
|
||||||
|
|
||||||
ctx.header("Content-Disposition", """attachment; filename="${ProtoBackupExport.getBackupFilename()}"""")
|
ctx.header("Content-Disposition", """attachment; filename="${Backup.getFilename()}"""")
|
||||||
ctx.future(
|
ctx.future(
|
||||||
future {
|
future {
|
||||||
ProtoBackupExport.createBackup(
|
ProtoBackupExport.createBackup(
|
||||||
|
|||||||
@@ -45,8 +45,6 @@ import uy.kohesive.injekt.api.get
|
|||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
import java.text.SimpleDateFormat
|
|
||||||
import java.util.Date
|
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
import kotlin.time.Duration.Companion.days
|
import kotlin.time.Duration.Companion.days
|
||||||
|
|
||||||
@@ -114,7 +112,7 @@ object ProtoBackupExport : ProtoBackupBase() {
|
|||||||
val automatedBackupDir = File(applicationDirs.automatedBackupRoot)
|
val automatedBackupDir = File(applicationDirs.automatedBackupRoot)
|
||||||
automatedBackupDir.mkdirs()
|
automatedBackupDir.mkdirs()
|
||||||
|
|
||||||
val backupFile = File(applicationDirs.automatedBackupRoot, getBackupFilename())
|
val backupFile = File(applicationDirs.automatedBackupRoot, Backup.getFilename())
|
||||||
|
|
||||||
backupFile.outputStream().use { output -> input.copyTo(output) }
|
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 {
|
fun createBackup(flags: BackupFlags): InputStream {
|
||||||
// Create root object
|
// Create root object
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package suwayomi.tachidesk.manga.impl.backup.proto.models
|
|||||||
|
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
import kotlinx.serialization.protobuf.ProtoNumber
|
import kotlinx.serialization.protobuf.ProtoNumber
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
|
import java.util.Date
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Backup(
|
data class Backup(
|
||||||
@@ -15,4 +17,11 @@ data class Backup(
|
|||||||
return (brokenBackupSources.map { BackupSource(it.name, it.sourceId) } + backupSources)
|
return (brokenBackupSources.map { BackupSource(it.name, it.sourceId) } + backupSources)
|
||||||
.associate { it.sourceId to it.name }
|
.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"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user