From b6de3c3e395bab4c2c772425a738c063e8dcc764 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartu=20=C3=96zen?= Date: Sat, 27 Jun 2026 20:41:14 +0300 Subject: [PATCH] Use stable manga and chapter composite keys for sync matching (#2124) --- .../tachidesk/global/impl/sync/SyncYomiSyncService.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/global/impl/sync/SyncYomiSyncService.kt b/server/src/main/kotlin/suwayomi/tachidesk/global/impl/sync/SyncYomiSyncService.kt index 901e0c8af..08b260543 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/global/impl/sync/SyncYomiSyncService.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/global/impl/sync/SyncYomiSyncService.kt @@ -305,8 +305,7 @@ object SyncYomiSyncService { logger.debug { "Starting merge. Local list size: ${localMangaListSafe.size}, Remote list size: ${remoteMangaListSafe.size}" } - fun mangaCompositeKey(manga: BackupManga): String = - "${manga.source}|${manga.url}|${manga.title.lowercase().trim()}|${manga.author?.lowercase()?.trim()}" + fun mangaCompositeKey(manga: BackupManga): String = "${manga.source}|${manga.url}" // Create maps using composite keys val localMangaMap = localMangaListSafe.associateBy { mangaCompositeKey(it) } @@ -415,7 +414,7 @@ object SyncYomiSyncService { return remoteChapters // If not syncing chapters, keep remote untouched } - fun chapterCompositeKey(chapter: BackupChapter): String = "${chapter.url}|${chapter.name}|${chapter.chapterNumber}" + fun chapterCompositeKey(chapter: BackupChapter): String = chapter.url val localChapterMap = localChapters.associateBy { chapterCompositeKey(it) } val remoteChapterMap = remoteChapters.associateBy { chapterCompositeKey(it) }