diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/ProtoBackupImport.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/ProtoBackupImport.kt index d7d8f8ef..ff7a4da4 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/ProtoBackupImport.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/backup/proto/ProtoBackupImport.kt @@ -401,16 +401,17 @@ object ProtoBackupImport : ProtoBackupBase() { val (existingTracks, newTracks) = tracks.mapNotNull { backupTrack -> val track = backupTrack.toTrack(mangaId) - val dbTrack = - dbTrackRecordsByTrackerId[backupTrack.syncId] - ?: // new track - return@mapNotNull track val isUnsupportedTracker = TrackerManager.getTracker(track.sync_id) == null if (isUnsupportedTracker) { return@mapNotNull null } + val dbTrack = + dbTrackRecordsByTrackerId[backupTrack.syncId] + ?: // new track + return@mapNotNull track + if (track.toTrackRecordDataClass().forComparison() == dbTrack.toTrackRecordDataClass().forComparison()) { return@mapNotNull null } diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/track/Track.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/track/Track.kt index baa624df..de2e4c9e 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/track/Track.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/track/Track.kt @@ -204,7 +204,7 @@ object Track { TrackRecordTable.select { TrackRecordTable.id eq recordId }.first() } - val tracker = TrackerManager.getTracker(recordDb[TrackRecordTable.trackerId])!! + val tracker = TrackerManager.getTracker(recordDb[TrackRecordTable.trackerId]) if (deleteRemoteTrack == true && tracker is DeletableTrackService) { tracker.delete(recordDb.toTrack()) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/database/migration/M0038_RemoveTrackRecordsOfUnsupportedTrackersII.kt b/server/src/main/kotlin/suwayomi/tachidesk/server/database/migration/M0038_RemoveTrackRecordsOfUnsupportedTrackersII.kt new file mode 100644 index 00000000..2d24cfd6 --- /dev/null +++ b/server/src/main/kotlin/suwayomi/tachidesk/server/database/migration/M0038_RemoveTrackRecordsOfUnsupportedTrackersII.kt @@ -0,0 +1,19 @@ +package suwayomi.tachidesk.server.database.migration + +/* + * Copyright (C) Contributors to the Suwayomi project + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +import de.neonew.exposed.migrations.helpers.SQLMigration +import suwayomi.tachidesk.manga.impl.track.tracker.TrackerManager + +@Suppress("ClassName", "unused") +class M0038_RemoveTrackRecordsOfUnsupportedTrackersII : SQLMigration() { + override val sql: String = + """ + DELETE FROM TRACKRECORD WHERE SYNC_ID NOT IN (${TrackerManager.MYANIMELIST}, ${TrackerManager.ANILIST}, ${TrackerManager.MANGA_UPDATES}) + """.trimIndent() +}