Minor fixes

This commit is contained in:
Syer10
2026-06-15 20:45:43 -04:00
parent 676aed14c0
commit 85fe9802e2
7 changed files with 28 additions and 4 deletions

View File

@@ -8,6 +8,8 @@ package suwayomi.tachidesk.manga.impl.backup.proto.handlers
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
import eu.kanade.tachiyomi.source.model.UpdateStrategy
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonObject
import org.jetbrains.exposed.v1.core.ResultRow
import org.jetbrains.exposed.v1.core.SortOrder
import org.jetbrains.exposed.v1.core.and
@@ -76,6 +78,8 @@ object BackupMangaHandler {
updateStrategy = UpdateStrategy.valueOf(mangaRow[MangaTable.updateStrategy]),
lastModifiedAt = mangaRow[MangaTable.lastModifiedAt],
version = mangaRow[MangaTable.version],
initialized = mangaRow[MangaTable.initialized],
memo = Json.encodeToString(mangaRow[MangaTable.memo]).encodeToByteArray()
)
val mangaId = mangaRow[MangaTable.id].value
@@ -238,6 +242,7 @@ object BackupMangaHandler {
it[lastModifiedAt] = manga.lastModifiedAt
it[version] = manga.version
it[memo] = Json.decodeFromString<JsonObject>(manga.memo.decodeToString())
}.value
} else {
val dbMangaId = dbManga[MangaTable.id].value
@@ -260,6 +265,7 @@ object BackupMangaHandler {
it[lastModifiedAt] = manga.lastModifiedAt
it[version] = manga.version
it[memo] = Json.decodeFromString<JsonObject>(manga.memo.decodeToString())
}
dbMangaId
@@ -351,6 +357,7 @@ object BackupMangaHandler {
this[ChapterTable.lastModifiedAt] = chapter.lastModifiedAt
this[ChapterTable.version] = chapter.version
this[ChapterTable.memo] = Json.decodeFromString<JsonObject>(chapter.memo.decodeToString())
}.map { it[ChapterTable.id].value }
} else {
emptyList()

View File

@@ -2,6 +2,7 @@ package suwayomi.tachidesk.manga.impl.backup.proto.models
import kotlinx.serialization.Serializable
import kotlinx.serialization.protobuf.ProtoNumber
import suwayomi.tachidesk.manga.impl.util.lang.JsonObjectEmptyBytes
@Serializable
data class BackupChapter(
@@ -22,6 +23,7 @@ data class BackupChapter(
// syncyomi
@ProtoNumber(11) var lastModifiedAt: Long = 0,
@ProtoNumber(12) var version: Long = 0,
@ProtoNumber(13) var memo: ByteArray = JsonObjectEmptyBytes,
// suwayomi
@ProtoNumber(9000) var meta: Map<String, String> = emptyMap(),
)

View File

@@ -3,6 +3,7 @@ package suwayomi.tachidesk.manga.impl.backup.proto.models
import eu.kanade.tachiyomi.source.model.UpdateStrategy
import kotlinx.serialization.Serializable
import kotlinx.serialization.protobuf.ProtoNumber
import suwayomi.tachidesk.manga.impl.util.lang.JsonObjectEmptyBytes
@Serializable
data class BackupManga(
@@ -37,6 +38,8 @@ data class BackupManga(
// syncyomi
@ProtoNumber(106) var lastModifiedAt: Long = 0,
@ProtoNumber(109) var version: Long = 0,
@ProtoNumber(111) var initialized: Boolean = false,
@ProtoNumber(13) var memo: ByteArray = JsonObjectEmptyBytes,
// suwayomi
@ProtoNumber(9000) var meta: Map<String, String> = emptyMap(),
)

View File

@@ -0,0 +1,10 @@
package suwayomi.tachidesk.manga.impl.util.lang
import kotlinx.serialization.json.JsonObject
val JsonObjectEmpty = JsonObject(emptyMap())
val JsonObjectEmptyBytes = byteArrayOf(0x7B, 0x7D)
val JsonObject.Companion.EMPTY: JsonObject
inline get() = JsonObjectEmpty

View File

@@ -7,6 +7,7 @@ import org.jetbrains.exposed.v1.core.eq
import org.jetbrains.exposed.v1.jdbc.selectAll
import org.jetbrains.exposed.v1.jdbc.transactions.transaction
import suwayomi.tachidesk.manga.impl.Chapter.getChapterMetaMap
import suwayomi.tachidesk.manga.impl.util.lang.EMPTY
import suwayomi.tachidesk.manga.model.table.ChapterTable
/*
@@ -46,7 +47,7 @@ data class ChapterDataClass(
val lastModifiedAt: Long = 0,
val version: Long = 0,
@JsonIgnore
val memo: JsonObject = JsonObject(emptyMap()),
val memo: JsonObject = JsonObject.EMPTY,
) {
companion object {
fun fromSChapter(

View File

@@ -11,6 +11,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore
import eu.kanade.tachiyomi.source.model.UpdateStrategy
import kotlinx.serialization.json.JsonObject
import suwayomi.tachidesk.manga.impl.Manga.getMangaMetaMap
import suwayomi.tachidesk.manga.impl.util.lang.EMPTY
import suwayomi.tachidesk.manga.impl.util.lang.trimAll
import suwayomi.tachidesk.manga.model.table.MangaStatus
import java.time.Instant
@@ -47,7 +48,7 @@ data class MangaDataClass(
val lastModifiedAt: Long = 0,
val version: Long = 0,
@JsonIgnore
val memo: JsonObject = JsonObject(emptyMap()),
val memo: JsonObject = JsonObject.EMPTY,
) {
override fun toString(): String = "\"$title\" (id= $id) (sourceId= $sourceId)"

View File

@@ -13,7 +13,7 @@ import de.neonew.exposed.migrations.helpers.SQLMigration
class M0057_AddMangaChapterMemoFields : SQLMigration() {
override val sql =
"""
ALTER TABLE MANGA ADD COLUMN memo JSON DEFAULT '{}';
ALTER TABLE CHAPTER ADD COLUMN memo JSON DEFAULT '{}';
ALTER TABLE manga ADD COLUMN memo JSON DEFAULT '{}';
ALTER TABLE chapter ADD COLUMN memo JSON DEFAULT '{}';
""".trimIndent()
}