diff --git a/komga/src/flyway/resources/db/migration/sqlite/V20200906115600__lower_trim_tags.sql b/komga/src/flyway/resources/db/migration/sqlite/V20200906115600__lower_trim_tags.sql new file mode 100644 index 000000000..a49a7b0b9 --- /dev/null +++ b/komga/src/flyway/resources/db/migration/sqlite/V20200906115600__lower_trim_tags.sql @@ -0,0 +1,37 @@ +UPDATE BOOK_METADATA_TAG +SET tag = lower(trim(tag)); + +delete +from BOOK_METADATA_TAG +where ROWID not in + ( + select min(rowid) + from BOOK_METADATA_TAG + group by tag, BOOK_ID + ); + + +UPDATE SERIES_METADATA_TAG +SET tag = lower(trim(tag)); + +delete +from SERIES_METADATA_TAG +where ROWID not in + ( + select min(rowid) + from SERIES_METADATA_TAG + group by tag, SERIES_ID + ); + + +UPDATE SERIES_METADATA_GENRE +SET GENRE = lower(trim(GENRE)); + +delete +from SERIES_METADATA_GENRE +where ROWID not in + ( + select min(rowid) + from SERIES_METADATA_GENRE + group by GENRE, SERIES_ID + ); diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/model/BookMetadata.kt b/komga/src/main/kotlin/org/gotson/komga/domain/model/BookMetadata.kt index ef0e24f52..20b4fee47 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/model/BookMetadata.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/model/BookMetadata.kt @@ -10,7 +10,7 @@ class BookMetadata( val numberSort: Float, val releaseDate: LocalDate? = null, val authors: List = emptyList(), - val tags: Set = emptySet(), + tags: Set = emptySet(), val titleLock: Boolean = false, val summaryLock: Boolean = false, @@ -29,6 +29,7 @@ class BookMetadata( val title = title.trim() val summary = summary.trim() val number = number.trim() + val tags = tags.map { it.toLowerCase().trim() }.filter { it.isNotBlank() }.toSet() fun copy( title: String = this.title, diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/model/SeriesMetadata.kt b/komga/src/main/kotlin/org/gotson/komga/domain/model/SeriesMetadata.kt index e093e3462..6cad4dfec 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/model/SeriesMetadata.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/model/SeriesMetadata.kt @@ -11,8 +11,8 @@ class SeriesMetadata( publisher: String = "", val ageRating: Int? = null, val language: String = "", - val genres: Set = emptySet(), - val tags: Set = emptySet(), + genres: Set = emptySet(), + tags: Set = emptySet(), val statusLock: Boolean = false, val titleLock: Boolean = false, @@ -34,6 +34,8 @@ class SeriesMetadata( val titleSort = titleSort.trim() val summary = summary.trim() val publisher = publisher.trim() + val tags = tags.map { it.toLowerCase().trim() }.filter { it.isNotBlank() }.toSet() + val genres = genres.map { it.toLowerCase().trim() }.filter { it.isNotBlank() }.toSet() fun copy( status: Status = this.status,