mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-06-30 17:34:39 -05:00
@@ -11,6 +11,7 @@ import com.expediagroup.graphql.server.extensions.getValueFromDataLoader
|
|||||||
import eu.kanade.tachiyomi.source.CatalogueSource
|
import eu.kanade.tachiyomi.source.CatalogueSource
|
||||||
import eu.kanade.tachiyomi.source.ConfigurableSource
|
import eu.kanade.tachiyomi.source.ConfigurableSource
|
||||||
import eu.kanade.tachiyomi.source.model.FilterList
|
import eu.kanade.tachiyomi.source.model.FilterList
|
||||||
|
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||||
import graphql.schema.DataFetchingEnvironment
|
import graphql.schema.DataFetchingEnvironment
|
||||||
import org.jetbrains.exposed.sql.ResultRow
|
import org.jetbrains.exposed.sql.ResultRow
|
||||||
import org.jetbrains.exposed.sql.selectAll
|
import org.jetbrains.exposed.sql.selectAll
|
||||||
@@ -44,6 +45,7 @@ class SourceType(
|
|||||||
val isConfigurable: Boolean,
|
val isConfigurable: Boolean,
|
||||||
val isNsfw: Boolean,
|
val isNsfw: Boolean,
|
||||||
val displayName: String,
|
val displayName: String,
|
||||||
|
val baseUrl: String?,
|
||||||
) : Node {
|
) : Node {
|
||||||
constructor(source: SourceDataClass) : this(
|
constructor(source: SourceDataClass) : this(
|
||||||
id = source.id.toLong(),
|
id = source.id.toLong(),
|
||||||
@@ -54,6 +56,7 @@ class SourceType(
|
|||||||
isConfigurable = source.isConfigurable,
|
isConfigurable = source.isConfigurable,
|
||||||
isNsfw = source.isNsfw,
|
isNsfw = source.isNsfw,
|
||||||
displayName = source.displayName,
|
displayName = source.displayName,
|
||||||
|
baseUrl = source.baseUrl,
|
||||||
)
|
)
|
||||||
|
|
||||||
constructor(row: ResultRow, sourceExtension: ResultRow, catalogueSource: CatalogueSource) : this(
|
constructor(row: ResultRow, sourceExtension: ResultRow, catalogueSource: CatalogueSource) : this(
|
||||||
@@ -65,6 +68,7 @@ class SourceType(
|
|||||||
isConfigurable = catalogueSource is ConfigurableSource,
|
isConfigurable = catalogueSource is ConfigurableSource,
|
||||||
isNsfw = row[SourceTable.isNsfw],
|
isNsfw = row[SourceTable.isNsfw],
|
||||||
displayName = catalogueSource.toString(),
|
displayName = catalogueSource.toString(),
|
||||||
|
baseUrl = catalogueSource.runCatching { (catalogueSource as? HttpSource)?.baseUrl }.getOrNull(),
|
||||||
)
|
)
|
||||||
|
|
||||||
fun manga(dataFetchingEnvironment: DataFetchingEnvironment): CompletableFuture<MangaNodeList> =
|
fun manga(dataFetchingEnvironment: DataFetchingEnvironment): CompletableFuture<MangaNodeList> =
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ package suwayomi.tachidesk.manga.impl
|
|||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
import androidx.preference.PreferenceScreen
|
import androidx.preference.PreferenceScreen
|
||||||
import eu.kanade.tachiyomi.source.ConfigurableSource
|
import eu.kanade.tachiyomi.source.ConfigurableSource
|
||||||
|
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||||
import eu.kanade.tachiyomi.source.sourcePreferences
|
import eu.kanade.tachiyomi.source.sourcePreferences
|
||||||
import io.github.oshai.kotlinlogging.KotlinLogging
|
import io.github.oshai.kotlinlogging.KotlinLogging
|
||||||
import io.javalin.json.JsonMapper
|
import io.javalin.json.JsonMapper
|
||||||
@@ -41,14 +42,15 @@ object Source {
|
|||||||
val sourceExtension = ExtensionTable.selectAll().where { ExtensionTable.id eq it[SourceTable.extension] }.first()
|
val sourceExtension = ExtensionTable.selectAll().where { ExtensionTable.id eq it[SourceTable.extension] }.first()
|
||||||
|
|
||||||
SourceDataClass(
|
SourceDataClass(
|
||||||
it[SourceTable.id].value.toString(),
|
id = it[SourceTable.id].value.toString(),
|
||||||
it[SourceTable.name],
|
name = it[SourceTable.name],
|
||||||
it[SourceTable.lang],
|
lang = it[SourceTable.lang],
|
||||||
getExtensionIconUrl(sourceExtension[ExtensionTable.apkName]),
|
iconUrl = getExtensionIconUrl(sourceExtension[ExtensionTable.apkName]),
|
||||||
catalogueSource.supportsLatest,
|
supportsLatest = catalogueSource.supportsLatest,
|
||||||
catalogueSource is ConfigurableSource,
|
isConfigurable = catalogueSource is ConfigurableSource,
|
||||||
it[SourceTable.isNsfw],
|
isNsfw = it[SourceTable.isNsfw],
|
||||||
catalogueSource.toString(),
|
displayName = catalogueSource.toString(),
|
||||||
|
baseUrl = runCatching { (catalogueSource as? HttpSource)?.baseUrl }.getOrNull(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -61,16 +63,18 @@ object Source {
|
|||||||
val extension = ExtensionTable.selectAll().where { ExtensionTable.id eq source[SourceTable.extension] }.first()
|
val extension = ExtensionTable.selectAll().where { ExtensionTable.id eq source[SourceTable.extension] }.first()
|
||||||
|
|
||||||
SourceDataClass(
|
SourceDataClass(
|
||||||
sourceId.toString(),
|
id = sourceId.toString(),
|
||||||
source[SourceTable.name],
|
name = source[SourceTable.name],
|
||||||
source[SourceTable.lang],
|
lang = source[SourceTable.lang],
|
||||||
|
iconUrl =
|
||||||
getExtensionIconUrl(
|
getExtensionIconUrl(
|
||||||
extension[ExtensionTable.apkName],
|
extension[ExtensionTable.apkName],
|
||||||
),
|
),
|
||||||
catalogueSource.supportsLatest,
|
supportsLatest = catalogueSource.supportsLatest,
|
||||||
catalogueSource is ConfigurableSource,
|
isConfigurable = catalogueSource is ConfigurableSource,
|
||||||
source[SourceTable.isNsfw],
|
isNsfw = source[SourceTable.isNsfw],
|
||||||
catalogueSource.toString(),
|
displayName = catalogueSource.toString(),
|
||||||
|
baseUrl = runCatching { (catalogueSource as? HttpSource)?.baseUrl }.getOrNull(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,4 +22,5 @@ data class SourceDataClass(
|
|||||||
val isNsfw: Boolean,
|
val isNsfw: Boolean,
|
||||||
/** A nicer version of [name] */
|
/** A nicer version of [name] */
|
||||||
val displayName: String,
|
val displayName: String,
|
||||||
|
val baseUrl: String?,
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user