mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-06-30 17:34:39 -05:00
Compare commits
3 Commits
70a027f6f0
...
extensions
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e4440ad502 | ||
|
|
e71c94547d | ||
|
|
84a1789850 |
@@ -21,26 +21,6 @@ class ExtensionStoreDataLoader : KotlinDataLoader<String, ExtensionStoreType> {
|
|||||||
|
|
||||||
override fun getDataLoader(graphQLContext: GraphQLContext): DataLoader<String, ExtensionStoreType> =
|
override fun getDataLoader(graphQLContext: GraphQLContext): DataLoader<String, ExtensionStoreType> =
|
||||||
DataLoaderFactory.newDataLoader { ids ->
|
DataLoaderFactory.newDataLoader { ids ->
|
||||||
future {
|
|
||||||
transaction {
|
|
||||||
addLogger(Slf4jSqlDebugLogger)
|
|
||||||
val manga =
|
|
||||||
ExtensionStoreTable
|
|
||||||
.selectAll()
|
|
||||||
.where { ExtensionStoreTable.indexUrl inList ids }
|
|
||||||
.map { ExtensionStoreType(it) }
|
|
||||||
.associateBy { it.indexUrl }
|
|
||||||
ids.map { manga[it] }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class ExtensionStoreForExtension : KotlinDataLoader<String, ExtensionStoreType> {
|
|
||||||
override val dataLoaderName = "ExtensionStoreForExtension"
|
|
||||||
|
|
||||||
override fun getDataLoader(graphQLContext: GraphQLContext): DataLoader<String, ExtensionStoreType> =
|
|
||||||
DataLoaderFactory.newDataLoader<String, ExtensionStoreType> { ids ->
|
|
||||||
future {
|
future {
|
||||||
transaction {
|
transaction {
|
||||||
addLogger(Slf4jSqlDebugLogger)
|
addLogger(Slf4jSqlDebugLogger)
|
||||||
@@ -50,14 +30,14 @@ class ExtensionStoreForExtension : KotlinDataLoader<String, ExtensionStoreType>
|
|||||||
.where { ExtensionStoreTable.indexUrl inList ids }
|
.where { ExtensionStoreTable.indexUrl inList ids }
|
||||||
.map { ExtensionStoreType(it) }
|
.map { ExtensionStoreType(it) }
|
||||||
.associateBy { it.indexUrl }
|
.associateBy { it.indexUrl }
|
||||||
ids.map { (extensionStoreByIndexUrl[it]) }
|
ids.map { extensionStoreByIndexUrl[it] }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ExtensionForExtensionStore : KotlinDataLoader<String, ExtensionNodeList> {
|
class ExtensionsForExtensionStore : KotlinDataLoader<String, ExtensionNodeList> {
|
||||||
override val dataLoaderName = "ExtensionForExtensionStore"
|
override val dataLoaderName = "ExtensionsForExtensionStore"
|
||||||
|
|
||||||
override fun getDataLoader(graphQLContext: GraphQLContext): DataLoader<String, ExtensionNodeList> =
|
override fun getDataLoader(graphQLContext: GraphQLContext): DataLoader<String, ExtensionNodeList> =
|
||||||
DataLoaderFactory.newDataLoader<String, ExtensionNodeList> { ids ->
|
DataLoaderFactory.newDataLoader<String, ExtensionNodeList> { ids ->
|
||||||
|
|||||||
@@ -20,10 +20,9 @@ import suwayomi.tachidesk.graphql.dataLoaders.DisplayScoreForTrackRecordDataLoad
|
|||||||
import suwayomi.tachidesk.graphql.dataLoaders.DisplayScoreForTrackSearchDataLoader
|
import suwayomi.tachidesk.graphql.dataLoaders.DisplayScoreForTrackSearchDataLoader
|
||||||
import suwayomi.tachidesk.graphql.dataLoaders.DownloadedChapterCountForMangaDataLoader
|
import suwayomi.tachidesk.graphql.dataLoaders.DownloadedChapterCountForMangaDataLoader
|
||||||
import suwayomi.tachidesk.graphql.dataLoaders.ExtensionDataLoader
|
import suwayomi.tachidesk.graphql.dataLoaders.ExtensionDataLoader
|
||||||
import suwayomi.tachidesk.graphql.dataLoaders.ExtensionForExtensionStore
|
|
||||||
import suwayomi.tachidesk.graphql.dataLoaders.ExtensionForSourceDataLoader
|
import suwayomi.tachidesk.graphql.dataLoaders.ExtensionForSourceDataLoader
|
||||||
import suwayomi.tachidesk.graphql.dataLoaders.ExtensionStoreDataLoader
|
import suwayomi.tachidesk.graphql.dataLoaders.ExtensionStoreDataLoader
|
||||||
import suwayomi.tachidesk.graphql.dataLoaders.ExtensionStoreForExtension
|
import suwayomi.tachidesk.graphql.dataLoaders.ExtensionsForExtensionStore
|
||||||
import suwayomi.tachidesk.graphql.dataLoaders.FirstUnreadChapterForMangaDataLoader
|
import suwayomi.tachidesk.graphql.dataLoaders.FirstUnreadChapterForMangaDataLoader
|
||||||
import suwayomi.tachidesk.graphql.dataLoaders.GlobalMetaDataLoader
|
import suwayomi.tachidesk.graphql.dataLoaders.GlobalMetaDataLoader
|
||||||
import suwayomi.tachidesk.graphql.dataLoaders.HasDuplicateChaptersForMangaDataLoader
|
import suwayomi.tachidesk.graphql.dataLoaders.HasDuplicateChaptersForMangaDataLoader
|
||||||
@@ -81,9 +80,8 @@ class TachideskDataLoaderRegistryFactory {
|
|||||||
SourceMetaDataLoader(),
|
SourceMetaDataLoader(),
|
||||||
ExtensionDataLoader(),
|
ExtensionDataLoader(),
|
||||||
ExtensionForSourceDataLoader(),
|
ExtensionForSourceDataLoader(),
|
||||||
ExtensionForExtensionStore(),
|
ExtensionsForExtensionStore(),
|
||||||
ExtensionStoreDataLoader(),
|
ExtensionStoreDataLoader(),
|
||||||
ExtensionStoreForExtension(),
|
|
||||||
TrackerDataLoader(),
|
TrackerDataLoader(),
|
||||||
TrackerStatusesDataLoader(),
|
TrackerStatusesDataLoader(),
|
||||||
TrackerScoresDataLoader(),
|
TrackerScoresDataLoader(),
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class ExtensionStoreType(
|
|||||||
)
|
)
|
||||||
|
|
||||||
fun extensions(dataFetchingEnvironment: DataFetchingEnvironment): CompletableFuture<ExtensionNodeList> =
|
fun extensions(dataFetchingEnvironment: DataFetchingEnvironment): CompletableFuture<ExtensionNodeList> =
|
||||||
dataFetchingEnvironment.getValueFromDataLoader<String, ExtensionNodeList>("ExtensionForExtensionStore", indexUrl)
|
dataFetchingEnvironment.getValueFromDataLoader<String, ExtensionNodeList>("ExtensionsForExtensionStore", indexUrl)
|
||||||
}
|
}
|
||||||
|
|
||||||
data class ExtensionStoreNodeList(
|
data class ExtensionStoreNodeList(
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ class ExtensionType(
|
|||||||
dataFetchingEnvironment.getValueFromDataLoader<String, SourceNodeList>("SourcesForExtensionDataLoader", pkgName)
|
dataFetchingEnvironment.getValueFromDataLoader<String, SourceNodeList>("SourcesForExtensionDataLoader", pkgName)
|
||||||
|
|
||||||
fun extensionStore(dataFetchingEnvironment: DataFetchingEnvironment): CompletableFuture<ExtensionStoreType> =
|
fun extensionStore(dataFetchingEnvironment: DataFetchingEnvironment): CompletableFuture<ExtensionStoreType> =
|
||||||
dataFetchingEnvironment.getValueFromDataLoader<String, ExtensionStoreType>("ExtensionStoreForExtension", storeIndexUrl.orEmpty())
|
dataFetchingEnvironment.getValueFromDataLoader<String, ExtensionStoreType>("ExtensionStoreDataLoader", storeIndexUrl.orEmpty())
|
||||||
}
|
}
|
||||||
|
|
||||||
data class ExtensionNodeList(
|
data class ExtensionNodeList(
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ package suwayomi.tachidesk.manga.model.table
|
|||||||
import org.jetbrains.exposed.v1.core.dao.id.IntIdTable
|
import org.jetbrains.exposed.v1.core.dao.id.IntIdTable
|
||||||
|
|
||||||
object ExtensionStoreTable : IntIdTable() {
|
object ExtensionStoreTable : IntIdTable() {
|
||||||
val indexUrl = varchar("index_url", 2048)
|
val indexUrl = varchar("index_url", 2048).uniqueIndex()
|
||||||
val name = varchar("name", 256)
|
val name = varchar("name", 256)
|
||||||
val badgeLabel = varchar("badge_label", 32)
|
val badgeLabel = varchar("badge_label", 32)
|
||||||
val signingKey = varchar("signing_key", 512)
|
val signingKey = varchar("signing_key", 512)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import org.jetbrains.exposed.v1.core.dao.id.IntIdTable
|
|||||||
|
|
||||||
object ExtensionTable : IntIdTable() {
|
object ExtensionTable : IntIdTable() {
|
||||||
val apkName = varchar("apk_name", 1024).nullable()
|
val apkName = varchar("apk_name", 1024).nullable()
|
||||||
val storeIndexUrl = varchar("store_index_url", 2048).nullable()
|
val storeIndexUrl = varchar("store_index_url", 2048).nullable().index()
|
||||||
|
|
||||||
// default is the local source icon from tachiyomi
|
// default is the local source icon from tachiyomi
|
||||||
@Suppress("ktlint:standard:max-line-length")
|
@Suppress("ktlint:standard:max-line-length")
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ class M0057_AddNewExtensionApiFields : SQLMigration() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ALTER TABLE EXTENSION ALTER COLUMN store_index_url ${MAYBE_TYPE_PREFIX}VARCHAR(2048);
|
ALTER TABLE EXTENSION ALTER COLUMN store_index_url ${MAYBE_TYPE_PREFIX}VARCHAR(2048);
|
||||||
|
CREATE INDEX extension_store_index_url ON EXTENSION (store_index_url);
|
||||||
ALTER TABLE EXTENSION ALTER COLUMN version_code ${MAYBE_TYPE_PREFIX}BIGINT;
|
ALTER TABLE EXTENSION ALTER COLUMN version_code ${MAYBE_TYPE_PREFIX}BIGINT;
|
||||||
ALTER TABLE EXTENSION ALTER COLUMN apk_name DROP NOT NULL;
|
ALTER TABLE EXTENSION ALTER COLUMN apk_name DROP NOT NULL;
|
||||||
${
|
${
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import org.jetbrains.exposed.v1.core.dao.id.IntIdTable
|
|||||||
@Suppress("ClassName", "unused")
|
@Suppress("ClassName", "unused")
|
||||||
class M0058_AddExtensionStore : AddTableMigration() {
|
class M0058_AddExtensionStore : AddTableMigration() {
|
||||||
private class ExtensionStoreTable : IntIdTable() {
|
private class ExtensionStoreTable : IntIdTable() {
|
||||||
val indexUrl = varchar("index_url", 2048)
|
val indexUrl = varchar("index_url", 2048).uniqueIndex()
|
||||||
val name = varchar("name", 256)
|
val name = varchar("name", 256)
|
||||||
val badgeLabel = varchar("badge_label", 32)
|
val badgeLabel = varchar("badge_label", 32)
|
||||||
val signingKey = varchar("signing_key", 512)
|
val signingKey = varchar("signing_key", 512)
|
||||||
|
|||||||
Reference in New Issue
Block a user