Fix automatic chapter downloads (#2098)

The returned result rows of the inserted chapters did not have the up-to-date "last_modified_at".
This caused "downloadNewChapters" to not be able to correctly detect unread chapters. it included the newly inserted ones, leading to exiting early due to having unread chapters.

Regression 811e15162b

fixes #2097
This commit is contained in:
schroda
2026-06-08 20:21:57 +02:00
committed by GitHub
parent c81020dbb1
commit 8fbc8fd3d4

View File

@@ -194,7 +194,7 @@ object Chapter {
} }
// new chapters after they have been added to the database for auto downloads // new chapters after they have been added to the database for auto downloads
val insertedChapters = mutableListOf<ChapterDataClass>() val insertedChapterIds = mutableListOf<Int>()
val chaptersToInsert = mutableListOf<ChapterDataClass>() // do not yet have an ID from the database val chaptersToInsert = mutableListOf<ChapterDataClass>() // do not yet have an ID from the database
val chaptersToUpdate = mutableListOf<ChapterDataClass>() val chaptersToUpdate = mutableListOf<ChapterDataClass>()
@@ -309,7 +309,7 @@ object Chapter {
} }
} }
} }
}.forEach { insertedChapters.add(ChapterTable.toDataClass(it)) } }.forEach { insertedChapterIds.add(it[ChapterTable.id].value) }
} }
if (chaptersToUpdate.isNotEmpty()) { if (chaptersToUpdate.isNotEmpty()) {
@@ -354,6 +354,13 @@ object Chapter {
} }
if (manga.inLibrary) { if (manga.inLibrary) {
// We have to query the inserted chapters to get the up-to-date data. I.e. "last_modified_at" is not returned by the insert statement, due to being set by a DB trigger
val insertedChapters =
transaction {
ChapterTable.selectAll().where { ChapterTable.id inList insertedChapterIds }.map(
ChapterTable::toDataClass,
)
}
downloadNewChapters(mangaId, currentLatestChapterNumber, numberOfCurrentChapters, insertedChapters) downloadNewChapters(mangaId, currentLatestChapterNumber, numberOfCurrentChapters, insertedChapters)
} }