diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/data/track/TrackService.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/data/track/TrackService.kt index 5f722fd7..36d012f3 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/data/track/TrackService.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/data/track/TrackService.kt @@ -34,8 +34,7 @@ abstract class TrackService(val id: Long) { get() = networkService.client // Name of the manga sync service to display -// @StringRes -// abstract fun nameRes(): String + abstract val name: String // Application and remote support for reading dates open val supportsReadingDates: Boolean = false diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates.kt index 1a0df0be..d5f2ed48 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates.kt @@ -23,8 +23,7 @@ class MangaUpdates(id: Long) : TrackService(id) { private val api by lazy { MangaUpdatesApi(interceptor, client) } -// @StringRes -// override fun nameRes(): String = R.string.tracker_manga_updates + override val name: String = "MangaUpdates" // override fun getLogo(): Int = R.drawable.ic_manga_updates @@ -36,11 +35,11 @@ class MangaUpdates(id: Long) : TrackService(id) { // @StringRes override fun getStatus(status: Int): String? = when (status) { - READING_LIST -> "R.string.reading_list" - WISH_LIST -> "R.string.wish_list" - COMPLETE_LIST -> "R.string.complete_list" - ON_HOLD_LIST -> "R.string.on_hold_list" - UNFINISHED_LIST -> "R.string.unfinished_list" + READING_LIST -> "Reading List" + WISH_LIST -> "Wish List" + COMPLETE_LIST -> "Complete List" + ON_HOLD_LIST -> ">On Hold List" + UNFINISHED_LIST -> "Unfinished List" else -> null } diff --git a/server/src/main/kotlin/suwayomi/tachidesk/graphql/queries/TrackQuery.kt b/server/src/main/kotlin/suwayomi/tachidesk/graphql/queries/TrackQuery.kt new file mode 100644 index 00000000..13840211 --- /dev/null +++ b/server/src/main/kotlin/suwayomi/tachidesk/graphql/queries/TrackQuery.kt @@ -0,0 +1,22 @@ +package suwayomi.tachidesk.graphql.queries + +import suwayomi.tachidesk.graphql.types.TrackServiceType +import suwayomi.tachidesk.server.trackManager + +/* + * Copyright (C) Contributors to the Suwayomi project + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +class TrackQuery { + fun trackService(id: Long): TrackServiceType? = + trackManager.services.find { it.id == id }?.let { + TrackServiceType(it) + } + + fun trackServices(): List = trackManager.services.map { + TrackServiceType(it) + } +} diff --git a/server/src/main/kotlin/suwayomi/tachidesk/graphql/server/TachideskGraphQLSchema.kt b/server/src/main/kotlin/suwayomi/tachidesk/graphql/server/TachideskGraphQLSchema.kt index 3f36703f..6acbd386 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/graphql/server/TachideskGraphQLSchema.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/graphql/server/TachideskGraphQLSchema.kt @@ -25,6 +25,7 @@ import suwayomi.tachidesk.graphql.queries.ExtensionQuery import suwayomi.tachidesk.graphql.queries.MangaQuery import suwayomi.tachidesk.graphql.queries.MetaQuery import suwayomi.tachidesk.graphql.queries.SourceQuery +import suwayomi.tachidesk.graphql.queries.TrackQuery import suwayomi.tachidesk.graphql.server.primitives.Cursor import suwayomi.tachidesk.graphql.server.primitives.GraphQLCursor import suwayomi.tachidesk.graphql.server.primitives.GraphQLLongAsString @@ -53,7 +54,8 @@ val schema = toSchema( TopLevelObject(ExtensionQuery()), TopLevelObject(MangaQuery()), TopLevelObject(MetaQuery()), - TopLevelObject(SourceQuery()) + TopLevelObject(SourceQuery()), + TopLevelObject(TrackQuery()) ), mutations = listOf( TopLevelObject(CategoryMutation()), diff --git a/server/src/main/kotlin/suwayomi/tachidesk/graphql/types/TrackType.kt b/server/src/main/kotlin/suwayomi/tachidesk/graphql/types/TrackType.kt new file mode 100644 index 00000000..101288a8 --- /dev/null +++ b/server/src/main/kotlin/suwayomi/tachidesk/graphql/types/TrackType.kt @@ -0,0 +1,37 @@ +package suwayomi.tachidesk.graphql.types + +/* + * Copyright (C) Contributors to the Suwayomi project + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +import eu.kanade.tachiyomi.data.track.TrackService +import suwayomi.tachidesk.graphql.server.primitives.Cursor +import suwayomi.tachidesk.graphql.server.primitives.Edge +import suwayomi.tachidesk.graphql.server.primitives.Node +import suwayomi.tachidesk.graphql.server.primitives.NodeList +import suwayomi.tachidesk.graphql.server.primitives.PageInfo + +data class TrackServiceType( + val id: Long, + val name: String +) : Node { + constructor(trackService: TrackService) : this( + trackService.id, + trackService.name + ) +} + +data class TrackServiceNodeList( + override val nodes: List, + override val edges: List, + override val pageInfo: PageInfo, + override val totalCount: Int +) : NodeList() { + data class TrackServiceEdge( + override val cursor: Cursor, + override val node: TrackServiceType + ) : Edge() +} diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/ServerSetup.kt b/server/src/main/kotlin/suwayomi/tachidesk/server/ServerSetup.kt index 4312438b..19fb0352 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/ServerSetup.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/server/ServerSetup.kt @@ -8,6 +8,7 @@ package suwayomi.tachidesk.server * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import eu.kanade.tachiyomi.App +import eu.kanade.tachiyomi.data.track.TrackManager import eu.kanade.tachiyomi.source.local.LocalSource import io.javalin.plugin.json.JavalinJackson import io.javalin.plugin.json.JsonMapper @@ -55,6 +56,8 @@ val systemTrayInstance by lazy { systemTray() } val androidCompat by lazy { AndroidCompat() } +val trackManager by lazy { TrackManager() } + fun applicationSetup() { logger.info("Running Tachidesk ${BuildConfig.VERSION} revision ${BuildConfig.REVISION}")