mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-11 23:04:33 -05:00
Fix Tracker Status and Scores (#843)
This commit is contained in:
@@ -17,6 +17,7 @@ import org.jetbrains.exposed.sql.transactions.transaction
|
||||
import suwayomi.tachidesk.graphql.types.TrackRecordNodeList
|
||||
import suwayomi.tachidesk.graphql.types.TrackRecordNodeList.Companion.toNodeList
|
||||
import suwayomi.tachidesk.graphql.types.TrackRecordType
|
||||
import suwayomi.tachidesk.graphql.types.TrackStatusType
|
||||
import suwayomi.tachidesk.graphql.types.TrackerType
|
||||
import suwayomi.tachidesk.manga.impl.track.tracker.TrackerManager
|
||||
import suwayomi.tachidesk.manga.impl.track.tracker.model.toTrack
|
||||
@@ -36,6 +37,36 @@ class TrackerDataLoader : KotlinDataLoader<Int, TrackerType> {
|
||||
}
|
||||
}
|
||||
|
||||
class TrackerStatusesDataLoader : KotlinDataLoader<Int, List<TrackStatusType>> {
|
||||
override val dataLoaderName = "TrackerStatusesDataLoader"
|
||||
|
||||
override fun getDataLoader(): DataLoader<Int, List<TrackStatusType>> =
|
||||
DataLoaderFactory.newDataLoader { ids ->
|
||||
future {
|
||||
ids.map { id ->
|
||||
TrackerManager.getTracker(id)?.let { tracker ->
|
||||
tracker.getStatusList().map {
|
||||
TrackStatusType(it, tracker.getStatus(it)!!)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class TrackerScoresDataLoader : KotlinDataLoader<Int, List<String>> {
|
||||
override val dataLoaderName = "TrackerStatusesDataLoader"
|
||||
|
||||
override fun getDataLoader(): DataLoader<Int, List<String>> =
|
||||
DataLoaderFactory.newDataLoader { ids ->
|
||||
future {
|
||||
ids.map { id ->
|
||||
TrackerManager.getTracker(id)?.getScoreList()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class TrackRecordsForMangaIdDataLoader : KotlinDataLoader<Int, TrackRecordNodeList> {
|
||||
override val dataLoaderName = "TrackRecordsForMangaIdDataLoader"
|
||||
|
||||
|
||||
@@ -35,6 +35,8 @@ import suwayomi.tachidesk.graphql.dataLoaders.TrackRecordDataLoader
|
||||
import suwayomi.tachidesk.graphql.dataLoaders.TrackRecordsForMangaIdDataLoader
|
||||
import suwayomi.tachidesk.graphql.dataLoaders.TrackRecordsForTrackerIdDataLoader
|
||||
import suwayomi.tachidesk.graphql.dataLoaders.TrackerDataLoader
|
||||
import suwayomi.tachidesk.graphql.dataLoaders.TrackerScoresDataLoader
|
||||
import suwayomi.tachidesk.graphql.dataLoaders.TrackerStatusesDataLoader
|
||||
import suwayomi.tachidesk.graphql.dataLoaders.UnreadChapterCountForMangaDataLoader
|
||||
|
||||
class TachideskDataLoaderRegistryFactory {
|
||||
@@ -65,6 +67,8 @@ class TachideskDataLoaderRegistryFactory {
|
||||
ExtensionDataLoader(),
|
||||
ExtensionForSourceDataLoader(),
|
||||
TrackerDataLoader(),
|
||||
TrackerStatusesDataLoader(),
|
||||
TrackerScoresDataLoader(),
|
||||
TrackRecordsForMangaIdDataLoader(),
|
||||
DisplayScoreForTrackRecordDataLoader(),
|
||||
TrackRecordsForTrackerIdDataLoader(),
|
||||
|
||||
@@ -38,11 +38,24 @@ class TrackerType(
|
||||
},
|
||||
)
|
||||
|
||||
fun statuses(dataFetchingEnvironment: DataFetchingEnvironment): CompletableFuture<List<TrackStatusType>> {
|
||||
return dataFetchingEnvironment.getValueFromDataLoader<Int, List<TrackStatusType>>("TrackerStatusesDataLoader", id)
|
||||
}
|
||||
|
||||
fun scores(dataFetchingEnvironment: DataFetchingEnvironment): CompletableFuture<List<String>> {
|
||||
return dataFetchingEnvironment.getValueFromDataLoader<Int, List<String>>("TrackerScoresDataLoader", id)
|
||||
}
|
||||
|
||||
fun trackRecords(dataFetchingEnvironment: DataFetchingEnvironment): CompletableFuture<TrackRecordNodeList> {
|
||||
return dataFetchingEnvironment.getValueFromDataLoader<Int, TrackRecordNodeList>("TrackRecordsForTrackerIdDataLoader", id)
|
||||
}
|
||||
}
|
||||
|
||||
class TrackStatusType(
|
||||
val value: Int,
|
||||
val name: String,
|
||||
)
|
||||
|
||||
class TrackRecordType(
|
||||
val id: Int,
|
||||
val mangaId: Int,
|
||||
|
||||
Reference in New Issue
Block a user