mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-04 11:24:35 -05:00
Fix graphql tracking (#840)
This commit is contained in:
@@ -10,6 +10,7 @@ import suwayomi.tachidesk.graphql.types.ChapterMetaType
|
|||||||
import suwayomi.tachidesk.graphql.types.ChapterType
|
import suwayomi.tachidesk.graphql.types.ChapterType
|
||||||
import suwayomi.tachidesk.manga.impl.Chapter
|
import suwayomi.tachidesk.manga.impl.Chapter
|
||||||
import suwayomi.tachidesk.manga.impl.chapter.getChapterDownloadReadyById
|
import suwayomi.tachidesk.manga.impl.chapter.getChapterDownloadReadyById
|
||||||
|
import suwayomi.tachidesk.manga.impl.track.Track
|
||||||
import suwayomi.tachidesk.manga.model.table.ChapterMetaTable
|
import suwayomi.tachidesk.manga.model.table.ChapterMetaTable
|
||||||
import suwayomi.tachidesk.manga.model.table.ChapterTable
|
import suwayomi.tachidesk.manga.model.table.ChapterTable
|
||||||
import suwayomi.tachidesk.server.JavalinSetup.future
|
import suwayomi.tachidesk.server.JavalinSetup.future
|
||||||
@@ -69,6 +70,13 @@ class ChapterMutation {
|
|||||||
update[lastReadAt] = now
|
update[lastReadAt] = now
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (patch.isRead == true) {
|
||||||
|
val mangaIds =
|
||||||
|
ChapterTable.slice(ChapterTable.manga).select { ChapterTable.id inList ids }
|
||||||
|
.map { it[ChapterTable.manga].value }
|
||||||
|
.toSet()
|
||||||
|
Track.asyncTrackChapter(mangaIds)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -439,7 +439,7 @@ object Chapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isRead == true || markPrevRead == true) {
|
if (isRead == true || markPrevRead == true) {
|
||||||
Track.asyncTrackChapter(mangaId)
|
Track.asyncTrackChapter(setOf(mangaId))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -527,9 +527,9 @@ object Chapter {
|
|||||||
transaction {
|
transaction {
|
||||||
ChapterTable.select { condition }
|
ChapterTable.select { condition }
|
||||||
.map { it[ChapterTable.manga].value }
|
.map { it[ChapterTable.manga].value }
|
||||||
.distinct()
|
.toSet()
|
||||||
}
|
}
|
||||||
mangaIds.forEach { Track.asyncTrackChapter(it) }
|
Track.asyncTrackChapter(mangaIds)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -235,9 +235,14 @@ object Track {
|
|||||||
upsertTrackRecord(track)
|
upsertTrackRecord(track)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun asyncTrackChapter(mangaId: Int) {
|
fun asyncTrackChapter(mangaIds: Set<Int>) {
|
||||||
|
if (!TrackerManager.hasLoggedTracker()) {
|
||||||
|
return
|
||||||
|
}
|
||||||
scope.launch {
|
scope.launch {
|
||||||
trackChapter(mangaId)
|
mangaIds.forEach {
|
||||||
|
trackChapter(it)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -266,10 +271,6 @@ object Track {
|
|||||||
mangaId: Int,
|
mangaId: Int,
|
||||||
chapterNumber: Double,
|
chapterNumber: Double,
|
||||||
) {
|
) {
|
||||||
if (!TrackerManager.hasLoggedTracker()) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
val records =
|
val records =
|
||||||
transaction {
|
transaction {
|
||||||
TrackRecordTable.select { TrackRecordTable.mangaId eq mangaId }
|
TrackRecordTable.select { TrackRecordTable.mangaId eq mangaId }
|
||||||
|
|||||||
Reference in New Issue
Block a user