diff --git a/server/src/main/kotlin/suwayomi/tachidesk/anime/model/table/AnimeTable.kt b/server/src/main/kotlin/suwayomi/tachidesk/anime/model/table/AnimeTable.kt index c6018d60..f282c964 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/anime/model/table/AnimeTable.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/anime/model/table/AnimeTable.kt @@ -12,6 +12,7 @@ import org.jetbrains.exposed.dao.id.IntIdTable import org.jetbrains.exposed.sql.ResultRow import suwayomi.tachidesk.manga.impl.MangaList.proxyThumbnailUrl import suwayomi.tachidesk.manga.model.dataclass.MangaDataClass +import suwayomi.tachidesk.manga.model.dataclass.toGenreList import suwayomi.tachidesk.manga.model.table.MangaStatus.Companion object AnimeTable : IntIdTable() { @@ -48,7 +49,7 @@ fun AnimeTable.toDataClass(mangaEntry: ResultRow) = mangaEntry[artist], mangaEntry[author], mangaEntry[description], - mangaEntry[genre], + mangaEntry[genre].toGenreList(), Companion.valueOf(mangaEntry[status]).name, mangaEntry[inLibrary] ) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Manga.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Manga.kt index bae22a13..6a33808d 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Manga.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Manga.kt @@ -25,6 +25,7 @@ import suwayomi.tachidesk.manga.impl.util.network.await import suwayomi.tachidesk.manga.impl.util.storage.CachedImageResponse.clearCachedImage import suwayomi.tachidesk.manga.impl.util.storage.CachedImageResponse.getCachedImageResponse import suwayomi.tachidesk.manga.model.dataclass.MangaDataClass +import suwayomi.tachidesk.manga.model.dataclass.toGenreList import suwayomi.tachidesk.manga.model.table.MangaMetaTable import suwayomi.tachidesk.manga.model.table.MangaStatus import suwayomi.tachidesk.manga.model.table.MangaTable @@ -56,7 +57,7 @@ object Manga { mangaEntry[MangaTable.artist], mangaEntry[MangaTable.author], mangaEntry[MangaTable.description], - mangaEntry[MangaTable.genre], + mangaEntry[MangaTable.genre].toGenreList(), MangaStatus.valueOf(mangaEntry[MangaTable.status]).name, mangaEntry[MangaTable.inLibrary], getSource(mangaEntry[MangaTable.sourceReference]), @@ -106,7 +107,7 @@ object Manga { fetchedManga.artist, fetchedManga.author, fetchedManga.description, - fetchedManga.genre, + fetchedManga.genre.toGenreList(), MangaStatus.valueOf(fetchedManga.status).name, mangaEntry[MangaTable.inLibrary], getSource(mangaEntry[MangaTable.sourceReference]), diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/MangaList.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/MangaList.kt index d7b9b477..fb663952 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/MangaList.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/MangaList.kt @@ -16,6 +16,7 @@ import suwayomi.tachidesk.manga.impl.util.GetHttpSource.getHttpSource import suwayomi.tachidesk.manga.impl.util.lang.awaitSingle import suwayomi.tachidesk.manga.model.dataclass.MangaDataClass import suwayomi.tachidesk.manga.model.dataclass.PagedMangaListDataClass +import suwayomi.tachidesk.manga.model.dataclass.toGenreList import suwayomi.tachidesk.manga.model.table.MangaStatus import suwayomi.tachidesk.manga.model.table.MangaTable @@ -72,7 +73,7 @@ object MangaList { manga.artist, manga.author, manga.description, - manga.genre, + manga.genre.toGenreList(), MangaStatus.valueOf(manga.status).name, false, // It's a new manga entry meta = getMangaMetaMap(mangaId), @@ -94,7 +95,7 @@ object MangaList { mangaEntry[MangaTable.artist], mangaEntry[MangaTable.author], mangaEntry[MangaTable.description], - mangaEntry[MangaTable.genre], + mangaEntry[MangaTable.genre].toGenreList(), MangaStatus.valueOf(mangaEntry[MangaTable.status]).name, mangaEntry[MangaTable.inLibrary], meta = getMangaMetaMap(mangaId), diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/lang/List.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/lang/List.kt new file mode 100644 index 00000000..393d76af --- /dev/null +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/lang/List.kt @@ -0,0 +1,3 @@ +package suwayomi.tachidesk.manga.impl.util.lang + +fun List.trimAll() = map { it.trim() } \ No newline at end of file diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/model/dataclass/MangaDataClass.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/model/dataclass/MangaDataClass.kt index 1c1bff59..6d20e4bf 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/model/dataclass/MangaDataClass.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/model/dataclass/MangaDataClass.kt @@ -7,6 +7,7 @@ package suwayomi.tachidesk.manga.model.dataclass * 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 suwayomi.tachidesk.manga.impl.util.lang.trimAll import suwayomi.tachidesk.manga.model.table.MangaStatus data class MangaDataClass( @@ -22,7 +23,7 @@ data class MangaDataClass( val artist: String? = null, val author: String? = null, val description: String? = null, - val genre: String? = null, + val genre: List = emptyList(), val status: String = MangaStatus.UNKNOWN.name, val inLibrary: Boolean = false, val source: SourceDataClass? = null, @@ -39,3 +40,5 @@ data class PagedMangaListDataClass( val mangaList: List, val hasNextPage: Boolean ) + +internal inline fun String?.toGenreList() = this?.split(",")?.trimAll().orEmpty() \ No newline at end of file diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/model/table/MangaTable.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/model/table/MangaTable.kt index 13050194..a649b296 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/model/table/MangaTable.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/model/table/MangaTable.kt @@ -13,6 +13,7 @@ import org.jetbrains.exposed.sql.ResultRow import suwayomi.tachidesk.manga.impl.Manga.getMangaMetaMap import suwayomi.tachidesk.manga.impl.MangaList.proxyThumbnailUrl import suwayomi.tachidesk.manga.model.dataclass.MangaDataClass +import suwayomi.tachidesk.manga.model.dataclass.toGenreList import suwayomi.tachidesk.manga.model.table.MangaStatus.Companion object MangaTable : IntIdTable() { @@ -52,7 +53,7 @@ fun MangaTable.toDataClass(mangaEntry: ResultRow) = mangaEntry[artist], mangaEntry[author], mangaEntry[description], - mangaEntry[genre], + mangaEntry[genre].toGenreList(), Companion.valueOf(mangaEntry[status]).name, mangaEntry[inLibrary], meta = getMangaMetaMap(mangaEntry[id].value),