mirror of
https://github.com/Suwayomi/Tachidesk.git
synced 2025-12-10 06:42:07 +01:00
Add chapter bookmark count field to MangaType (#912)
This commit is contained in:
@@ -99,6 +99,26 @@ class UnreadChapterCountForMangaDataLoader : KotlinDataLoader<Int, Int> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class BookmarkedChapterCountForMangaDataLoader : KotlinDataLoader<Int, Int> {
|
||||||
|
override val dataLoaderName = "BookmarkedChapterCountForMangaDataLoader"
|
||||||
|
|
||||||
|
override fun getDataLoader(): DataLoader<Int, Int> =
|
||||||
|
DataLoaderFactory.newDataLoader<Int, Int> { ids ->
|
||||||
|
future {
|
||||||
|
transaction {
|
||||||
|
addLogger(Slf4jSqlDebugLogger)
|
||||||
|
val bookmarkedChapterCountByMangaId =
|
||||||
|
ChapterTable
|
||||||
|
.slice(ChapterTable.manga, ChapterTable.isBookmarked.count())
|
||||||
|
.select { (ChapterTable.manga inList ids) and (ChapterTable.isBookmarked eq true) }
|
||||||
|
.groupBy(ChapterTable.manga)
|
||||||
|
.associate { it[ChapterTable.manga].value to it[ChapterTable.isBookmarked.count()] }
|
||||||
|
ids.map { bookmarkedChapterCountByMangaId[it]?.toInt() ?: 0 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class LastReadChapterForMangaDataLoader : KotlinDataLoader<Int, ChapterType?> {
|
class LastReadChapterForMangaDataLoader : KotlinDataLoader<Int, ChapterType?> {
|
||||||
override val dataLoaderName = "LastReadChapterForMangaDataLoader"
|
override val dataLoaderName = "LastReadChapterForMangaDataLoader"
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
package suwayomi.tachidesk.graphql.server
|
package suwayomi.tachidesk.graphql.server
|
||||||
|
|
||||||
import com.expediagroup.graphql.dataloader.KotlinDataLoaderRegistryFactory
|
import com.expediagroup.graphql.dataloader.KotlinDataLoaderRegistryFactory
|
||||||
|
import suwayomi.tachidesk.graphql.dataLoaders.BookmarkedChapterCountForMangaDataLoader
|
||||||
import suwayomi.tachidesk.graphql.dataLoaders.CategoriesForMangaDataLoader
|
import suwayomi.tachidesk.graphql.dataLoaders.CategoriesForMangaDataLoader
|
||||||
import suwayomi.tachidesk.graphql.dataLoaders.CategoryDataLoader
|
import suwayomi.tachidesk.graphql.dataLoaders.CategoryDataLoader
|
||||||
import suwayomi.tachidesk.graphql.dataLoaders.CategoryForIdsDataLoader
|
import suwayomi.tachidesk.graphql.dataLoaders.CategoryForIdsDataLoader
|
||||||
@@ -51,6 +52,7 @@ class TachideskDataLoaderRegistryFactory {
|
|||||||
ChaptersForMangaDataLoader(),
|
ChaptersForMangaDataLoader(),
|
||||||
DownloadedChapterCountForMangaDataLoader(),
|
DownloadedChapterCountForMangaDataLoader(),
|
||||||
UnreadChapterCountForMangaDataLoader(),
|
UnreadChapterCountForMangaDataLoader(),
|
||||||
|
BookmarkedChapterCountForMangaDataLoader(),
|
||||||
LastReadChapterForMangaDataLoader(),
|
LastReadChapterForMangaDataLoader(),
|
||||||
LatestReadChapterForMangaDataLoader(),
|
LatestReadChapterForMangaDataLoader(),
|
||||||
LatestFetchedChapterForMangaDataLoader(),
|
LatestFetchedChapterForMangaDataLoader(),
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ class MangaType(
|
|||||||
|
|
||||||
dataFetchingEnvironment.getDataLoader<Int, Int>("DownloadedChapterCountForMangaDataLoader").clear(mangaId)
|
dataFetchingEnvironment.getDataLoader<Int, Int>("DownloadedChapterCountForMangaDataLoader").clear(mangaId)
|
||||||
dataFetchingEnvironment.getDataLoader<Int, Int>("UnreadChapterCountForMangaDataLoader").clear(mangaId)
|
dataFetchingEnvironment.getDataLoader<Int, Int>("UnreadChapterCountForMangaDataLoader").clear(mangaId)
|
||||||
|
dataFetchingEnvironment.getDataLoader<Int, Int>("BookmarkedChapterCountForMangaDataLoader").clear(mangaId)
|
||||||
dataFetchingEnvironment.getDataLoader<Int, ChapterType>("LastReadChapterForMangaDataLoader").clear(mangaId)
|
dataFetchingEnvironment.getDataLoader<Int, ChapterType>("LastReadChapterForMangaDataLoader").clear(mangaId)
|
||||||
dataFetchingEnvironment.getDataLoader<Int, ChapterType>("LatestReadChapterForMangaDataLoader").clear(mangaId)
|
dataFetchingEnvironment.getDataLoader<Int, ChapterType>("LatestReadChapterForMangaDataLoader").clear(mangaId)
|
||||||
dataFetchingEnvironment.getDataLoader<Int, ChapterType>("LatestFetchedChapterForMangaDataLoader").clear(mangaId)
|
dataFetchingEnvironment.getDataLoader<Int, ChapterType>("LatestFetchedChapterForMangaDataLoader").clear(mangaId)
|
||||||
@@ -130,6 +131,10 @@ class MangaType(
|
|||||||
return dataFetchingEnvironment.getValueFromDataLoader("UnreadChapterCountForMangaDataLoader", id)
|
return dataFetchingEnvironment.getValueFromDataLoader("UnreadChapterCountForMangaDataLoader", id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun bookmarkCount(dataFetchingEnvironment: DataFetchingEnvironment): CompletableFuture<Int> {
|
||||||
|
return dataFetchingEnvironment.getValueFromDataLoader("BookmarkedChapterCountForMangaDataLoader", id)
|
||||||
|
}
|
||||||
|
|
||||||
fun lastReadChapter(dataFetchingEnvironment: DataFetchingEnvironment): CompletableFuture<ChapterType?> {
|
fun lastReadChapter(dataFetchingEnvironment: DataFetchingEnvironment): CompletableFuture<ChapterType?> {
|
||||||
return dataFetchingEnvironment.getValueFromDataLoader("LastReadChapterForMangaDataLoader", id)
|
return dataFetchingEnvironment.getValueFromDataLoader("LastReadChapterForMangaDataLoader", id)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user