From 72b1b5b0f9b86f82a0e203802d9a4b6339277c01 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Sun, 28 Apr 2024 02:33:19 +0200 Subject: [PATCH] Exit track progress update early in case new chapter is same as current local (#937) Prevents unnecessary requests --- .../suwayomi/tachidesk/manga/impl/track/Track.kt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) 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 61c62ae5..9777a484 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 @@ -317,15 +317,22 @@ object Track { records.forEach { val tracker = TrackerManager.getTracker(it[TrackRecordTable.trackerId]) ?: return@forEach + val localLastReadChapter = it[TrackRecordTable.lastChapterRead] + + val log = KotlinLogging.logger { "${logger.name}::trackChapter(mangaId= $mangaId, chapterNumber= $chapterNumber)" } + + if (localLastReadChapter == chapterNumber) { + log.debug { "new chapter is the same as the local last read chapter" } + return@forEach + } + val track = it.toTrack() tracker.refresh(track) upsertTrackRecord(track) val lastChapterRead = track.last_chapter_read - logger.debug { - "trackChapter(mangaId= $mangaId, chapterNumber= $chapterNumber): tracker= $tracker, remoteLastReadChapter= $lastChapterRead" - } + log.debug { "tracker= $tracker, remoteLastReadChapter= $lastChapterRead" } if (tracker.isLoggedIn && chapterNumber > lastChapterRead) { track.last_chapter_read = chapterNumber.toFloat()