mirror of
https://github.com/mihonapp/mihon.git
synced 2026-10-20 07:32:28 -07:00
Remove unused sync scaffold
Drops the unused version, is_syncing and last_modified_at columns and their triggers.
This commit is contained in:
-2
@@ -103,9 +103,7 @@ private fun Manga.toBackupManga() =
|
||||
viewer_flags = this.viewerFlags.toInt(),
|
||||
chapterFlags = this.chapterFlags.toInt(),
|
||||
updateStrategy = this.updateStrategy,
|
||||
lastModifiedAt = this.lastModifiedAt,
|
||||
favoriteModifiedAt = this.favoriteModifiedAt,
|
||||
version = this.version,
|
||||
notes = this.notes,
|
||||
initialized = this.initialized,
|
||||
memo = MemoColumnAdapter.encode(this.memo),
|
||||
|
||||
@@ -23,8 +23,8 @@ class BackupChapter(
|
||||
// chapterNumber is called number is 1.x
|
||||
@ProtoNumber(9) var chapterNumber: Float = 0F,
|
||||
@ProtoNumber(10) var sourceOrder: Long = 0,
|
||||
@ProtoNumber(11) var lastModifiedAt: Long = 0,
|
||||
@ProtoNumber(12) var version: Long = 0,
|
||||
// @ProtoNumber(11) var lastModifiedAt: Long, artifact of the abandoned sync attempt
|
||||
// @ProtoNumber(12) var version: Long, artifact of the abandoned sync attempt
|
||||
@ProtoNumber(13) var memo: ByteArray = JsonObjectEmptyBytes,
|
||||
) {
|
||||
fun toChapterImpl(): Chapter {
|
||||
@@ -39,8 +39,6 @@ class BackupChapter(
|
||||
dateFetch = this@BackupChapter.dateFetch,
|
||||
dateUpload = this@BackupChapter.dateUpload,
|
||||
sourceOrder = this@BackupChapter.sourceOrder,
|
||||
lastModifiedAt = this@BackupChapter.lastModifiedAt,
|
||||
version = this@BackupChapter.version,
|
||||
memo = MemoColumnAdapter.decode(this@BackupChapter.memo),
|
||||
)
|
||||
}
|
||||
@@ -59,9 +57,6 @@ val backupChapterMapper = {
|
||||
sourceOrder: Long,
|
||||
dateFetch: Long,
|
||||
dateUpload: Long,
|
||||
lastModifiedAt: Long,
|
||||
version: Long,
|
||||
_: Long,
|
||||
memo: JsonObject,
|
||||
->
|
||||
BackupChapter(
|
||||
@@ -75,8 +70,6 @@ val backupChapterMapper = {
|
||||
dateFetch = dateFetch,
|
||||
dateUpload = dateUpload,
|
||||
sourceOrder = sourceOrder,
|
||||
lastModifiedAt = lastModifiedAt,
|
||||
version = version,
|
||||
memo = MemoColumnAdapter.encode(memo),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -38,11 +38,11 @@ class BackupManga(
|
||||
@ProtoNumber(103) var viewer_flags: Int? = null,
|
||||
@ProtoNumber(104) var history: List<BackupHistory> = emptyList(),
|
||||
@ProtoNumber(105) var updateStrategy: UpdateStrategy = UpdateStrategy.ALWAYS_UPDATE,
|
||||
@ProtoNumber(106) var lastModifiedAt: Long = 0,
|
||||
// @ProtoNumber(106) var lastModifiedAt: Long, artifact of the abandoned sync attempt
|
||||
@ProtoNumber(107) var favoriteModifiedAt: Long? = null,
|
||||
// Mihon values start here
|
||||
@ProtoNumber(108) var excludedScanlators: List<String> = emptyList(),
|
||||
@ProtoNumber(109) var version: Long = 0,
|
||||
// @ProtoNumber(109) var version: Long, artifact of the abandoned sync attempt
|
||||
@ProtoNumber(110) var notes: String = "",
|
||||
@ProtoNumber(111) var initialized: Boolean = false,
|
||||
@ProtoNumber(112) var memo: ByteArray = JsonObjectEmptyBytes,
|
||||
@@ -63,9 +63,7 @@ class BackupManga(
|
||||
viewerFlags = (this@BackupManga.viewer_flags ?: this@BackupManga.viewer).toLong(),
|
||||
chapterFlags = this@BackupManga.chapterFlags.toLong(),
|
||||
updateStrategy = this@BackupManga.updateStrategy,
|
||||
lastModifiedAt = this@BackupManga.lastModifiedAt,
|
||||
favoriteModifiedAt = this@BackupManga.favoriteModifiedAt,
|
||||
version = this@BackupManga.version,
|
||||
notes = this@BackupManga.notes,
|
||||
initialized = this@BackupManga.initialized,
|
||||
memo = MemoColumnAdapter.decode(this@BackupManga.memo),
|
||||
|
||||
+30
-42
@@ -12,6 +12,7 @@ import eu.kanade.tachiyomi.data.backup.models.BackupManga
|
||||
import eu.kanade.tachiyomi.data.backup.models.BackupTracking
|
||||
import kotlinx.datetime.TimeZone
|
||||
import kotlinx.datetime.toLocalDateTime
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import tachiyomi.data.Database
|
||||
import tachiyomi.domain.category.interactor.GetCategories
|
||||
import tachiyomi.domain.chapter.interactor.GetChaptersByMangaId
|
||||
@@ -49,10 +50,7 @@ class MangaRestorer(
|
||||
.groupBy({ it.source }, { it.url })
|
||||
|
||||
return backupMangas
|
||||
.sortedWith(
|
||||
compareBy<BackupManga> { it.url in urlsBySource[it.source].orEmpty() }
|
||||
.then(compareByDescending { it.lastModifiedAt }),
|
||||
)
|
||||
.sortedBy { it.url in urlsBySource[it.source].orEmpty() }
|
||||
}
|
||||
|
||||
suspend fun restore(
|
||||
@@ -85,24 +83,26 @@ class MangaRestorer(
|
||||
}
|
||||
|
||||
private suspend fun restoreExistingManga(manga: Manga, dbManga: Manga): Manga {
|
||||
return if (manga.version > dbManga.version) {
|
||||
updateManga(dbManga.copyFrom(manga).copy(id = dbManga.id))
|
||||
} else {
|
||||
updateManga(manga.copyFrom(dbManga).copy(id = dbManga.id))
|
||||
}
|
||||
}
|
||||
|
||||
private fun Manga.copyFrom(newer: Manga): Manga {
|
||||
return this.copy(
|
||||
favorite = this.favorite || newer.favorite,
|
||||
author = newer.author,
|
||||
artist = newer.artist,
|
||||
description = newer.description,
|
||||
genre = newer.genre,
|
||||
thumbnailUrl = newer.thumbnailUrl,
|
||||
status = newer.status,
|
||||
initialized = this.initialized || newer.initialized,
|
||||
version = newer.version,
|
||||
val details = if (dbManga.initialized || !manga.initialized) dbManga else manga
|
||||
return updateManga(
|
||||
dbManga.copy(
|
||||
favorite = dbManga.favorite || manga.favorite,
|
||||
dateAdded = listOfNotNull(
|
||||
dbManga.dateAdded.takeIf { it > 0 },
|
||||
manga.dateAdded.takeIf { it > 0 },
|
||||
).minOrNull() ?: 0L,
|
||||
title = details.title,
|
||||
artist = details.artist,
|
||||
author = details.author,
|
||||
description = details.description,
|
||||
genre = details.genre,
|
||||
status = details.status,
|
||||
thumbnailUrl = details.thumbnailUrl,
|
||||
updateStrategy = details.updateStrategy,
|
||||
initialized = dbManga.initialized || manga.initialized,
|
||||
// Merge both backup and local data with local winning
|
||||
memo = JsonObject(manga.memo + dbManga.memo),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -128,8 +128,6 @@ class MangaRestorer(
|
||||
dateAdded = manga.dateAdded,
|
||||
mangaId = manga.id,
|
||||
updateStrategy = manga.updateStrategy,
|
||||
version = manga.version,
|
||||
isSyncing = 1,
|
||||
notes = manga.notes,
|
||||
memo = manga.memo,
|
||||
)
|
||||
@@ -161,24 +159,18 @@ class MangaRestorer(
|
||||
return@mapNotNull null
|
||||
}
|
||||
|
||||
// Update to an existing chapter
|
||||
var updatedChapter = chapter
|
||||
chapter
|
||||
.copyFrom(dbChapter)
|
||||
.copy(
|
||||
id = dbChapter.id,
|
||||
read = chapter.read || dbChapter.read,
|
||||
bookmark = chapter.bookmark || dbChapter.bookmark,
|
||||
lastPageRead = max(chapter.lastPageRead, dbChapter.lastPageRead),
|
||||
dateFetch = dbChapter.dateFetch,
|
||||
sourceOrder = dbChapter.sourceOrder,
|
||||
// Merge both backup and local data with local winning
|
||||
memo = JsonObject(chapter.memo + dbChapter.memo),
|
||||
)
|
||||
if (dbChapter.read && !updatedChapter.read) {
|
||||
updatedChapter = updatedChapter.copy(
|
||||
read = true,
|
||||
lastPageRead = dbChapter.lastPageRead,
|
||||
)
|
||||
} else if (updatedChapter.lastPageRead == 0L && dbChapter.lastPageRead != 0L) {
|
||||
updatedChapter = updatedChapter.copy(
|
||||
lastPageRead = dbChapter.lastPageRead,
|
||||
)
|
||||
}
|
||||
updatedChapter
|
||||
}
|
||||
.partition { it.id > 0 }
|
||||
|
||||
@@ -187,7 +179,7 @@ class MangaRestorer(
|
||||
}
|
||||
|
||||
private fun Chapter.forComparison() =
|
||||
this.copy(id = 0L, mangaId = 0L, dateFetch = 0L, dateUpload = 0L, lastModifiedAt = 0L, version = 0L)
|
||||
this.copy(id = 0L, mangaId = 0L, dateFetch = 0L, dateUpload = 0L)
|
||||
|
||||
private suspend fun insertNewChapters(chapters: List<Chapter>) {
|
||||
database.transaction {
|
||||
@@ -204,7 +196,6 @@ class MangaRestorer(
|
||||
chapter.sourceOrder,
|
||||
chapter.dateFetch,
|
||||
chapter.dateUpload,
|
||||
chapter.version,
|
||||
chapter.memo,
|
||||
)
|
||||
}
|
||||
@@ -227,8 +218,6 @@ class MangaRestorer(
|
||||
dateFetch = null,
|
||||
dateUpload = null,
|
||||
chapterId = chapter.id,
|
||||
version = chapter.version,
|
||||
isSyncing = 0,
|
||||
memo = chapter.memo,
|
||||
)
|
||||
}
|
||||
@@ -261,7 +250,6 @@ class MangaRestorer(
|
||||
coverLastModified = manga.coverLastModified,
|
||||
dateAdded = manga.dateAdded,
|
||||
updateStrategy = manga.updateStrategy,
|
||||
version = manga.version,
|
||||
notes = manga.notes,
|
||||
memo = manga.memo,
|
||||
)
|
||||
|
||||
@@ -21,10 +21,6 @@ interface Chapter : SChapter, Serializable {
|
||||
var date_fetch: Long
|
||||
|
||||
var source_order: Int
|
||||
|
||||
var last_modified: Long
|
||||
|
||||
var version: Long
|
||||
}
|
||||
|
||||
val Chapter.isRecognizedNumber: Boolean
|
||||
@@ -45,8 +41,6 @@ fun Chapter.toDomainChapter(): DomainChapter? {
|
||||
dateUpload = date_upload,
|
||||
chapterNumber = chapter_number.toDouble(),
|
||||
scanlator = scanlator,
|
||||
lastModifiedAt = last_modified,
|
||||
version = version,
|
||||
memo = memo,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -31,10 +31,6 @@ class ChapterImpl : Chapter {
|
||||
|
||||
override var source_order: Int = 0
|
||||
|
||||
override var last_modified: Long = 0
|
||||
|
||||
override var version: Long = 0
|
||||
|
||||
override var memo: JsonObject = JsonObject.EMPTY
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
|
||||
Reference in New Issue
Block a user