Fix pages after refactoring downloads (#1639)

This commit is contained in:
Mitchell Syer
2025-09-09 21:10:27 -04:00
committed by GitHub
parent c1a9b158e2
commit 3f4dd2861e
2 changed files with 31 additions and 17 deletions

View File

@@ -466,21 +466,27 @@ object MangaController {
behaviorOf = { ctx, mangaId, chapterIndex, index, updateProgress, format ->
ctx.getAttribute(Attribute.TachideskUser).requireUser()
ctx.future {
future { Page.getPageImage(mangaId, chapterIndex, index, format, null) }
.thenApply {
ctx.header("content-type", it.second)
val httpCacheSeconds = 1.days.inWholeSeconds
ctx.header("cache-control", "max-age=$httpCacheSeconds")
ctx.result(it.first)
future {
Page.getPageImage(
mangaId = mangaId,
chapterIndex = chapterIndex,
index = index,
format = format,
)
}.thenApply {
ctx.header("content-type", it.second)
val httpCacheSeconds = 1.days.inWholeSeconds
ctx.header("cache-control", "max-age=$httpCacheSeconds")
ctx.result(it.first)
if (updateProgress == true) {
val chapterId = Chapter.updateChapterProgress(mangaId, chapterIndex, pageNo = index)
// Sync progress with KoreaderSync if chapter update was successful
if (chapterId != -1) {
GlobalScope.launch { KoreaderSyncService.pushProgress(chapterId) }
}
if (updateProgress == true) {
val chapterId = Chapter.updateChapterProgress(mangaId, chapterIndex, pageNo = index)
// Sync progress with KoreaderSync if chapter update was successful
if (chapterId != -1) {
GlobalScope.launch { KoreaderSyncService.pushProgress(chapterId) }
}
}
}
}
},
withResults = {

View File

@@ -48,7 +48,8 @@ object Page {
suspend fun getPageImage(
mangaId: Int,
chapterId: Int,
chapterId: Int? = null,
chapterIndex: Int? = null,
index: Int,
format: String? = null,
progressFlow: ((StateFlow<Int>) -> Unit)? = null,
@@ -56,10 +57,17 @@ object Page {
val mangaEntry = transaction { MangaTable.selectAll().where { MangaTable.id eq mangaId }.first() }
val chapterEntry =
transaction {
ChapterTable
.selectAll()
.where { ChapterTable.id eq chapterId }
.first()
if (chapterId != null) {
ChapterTable
.selectAll()
.where { ChapterTable.id eq chapterId }
.first()
} else {
ChapterTable
.selectAll()
.where { ChapterTable.manga eq mangaId and (ChapterTable.sourceOrder eq chapterIndex!!) }
.first()
}
}
val chapterId = chapterEntry[ChapterTable.id].value