From be75f87e8a8e4d99878ca5ab0ab040194625c5cd Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Sun, 12 Mar 2023 20:49:25 +0100 Subject: [PATCH] Add number of mangas in category to data class Makes it possible to display the size of a category to the user --- .../kotlin/suwayomi/tachidesk/manga/impl/Category.kt | 10 +++++++++- .../manga/model/dataclass/CategoryDataClass.kt | 1 + .../tachidesk/manga/model/table/CategoryTable.kt | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Category.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Category.kt index ad684c04e1..7b9e13a094 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Category.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Category.kt @@ -100,7 +100,7 @@ object Category { const val DEFAULT_CATEGORY_NAME = "Default" private fun addDefaultIfNecessary(categories: List): List = if (MangaTable.select { (MangaTable.inLibrary eq true) and (MangaTable.defaultCategory eq true) }.isNotEmpty()) { - listOf(CategoryDataClass(DEFAULT_CATEGORY_ID, 0, DEFAULT_CATEGORY_NAME, true)) + categories + listOf(CategoryDataClass(DEFAULT_CATEGORY_ID, 0, DEFAULT_CATEGORY_NAME, true, 0)) + categories } else { categories } @@ -123,6 +123,14 @@ object Category { } } + fun getCategorySize(categoryId: Int): Int { + return transaction { + CategoryMangaTable.select { + CategoryMangaTable.category eq categoryId + }.count().toInt() + } + } + fun getCategoryMetaMap(categoryId: Int): Map { return transaction { CategoryMetaTable.select { CategoryMetaTable.ref eq categoryId } diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/model/dataclass/CategoryDataClass.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/model/dataclass/CategoryDataClass.kt index 3e7fd1fb69..70389d48f6 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/model/dataclass/CategoryDataClass.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/model/dataclass/CategoryDataClass.kt @@ -12,5 +12,6 @@ data class CategoryDataClass( val order: Int, val name: String, val default: Boolean, + val size: Int, val meta: Map = emptyMap() ) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/model/table/CategoryTable.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/model/table/CategoryTable.kt index 8d8a08ab55..32bef6b6cb 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/model/table/CategoryTable.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/model/table/CategoryTable.kt @@ -23,5 +23,6 @@ fun CategoryTable.toDataClass(categoryEntry: ResultRow) = CategoryDataClass( categoryEntry[order], categoryEntry[name], categoryEntry[isDefault], + Category.getCategorySize(categoryEntry[id].value), Category.getCategoryMetaMap(categoryEntry[id].value) )