From 3843f77740994909ad3ea30c0c827bb1d17ac491 Mon Sep 17 00:00:00 2001 From: Gauthier Roebroeck Date: Thu, 14 Dec 2023 11:52:59 +0800 Subject: [PATCH] perf(komga): convert BookMetadataProvider to property --- .../domain/service/BookMetadataLifecycle.kt | 2 +- .../domain/service/TransientBookLifecycle.kt | 2 +- .../metadata/BookMetadataProvider.kt | 2 +- .../metadata/barcode/IsbnBarcodeProvider.kt | 3 +-- .../metadata/comicrack/ComicInfoProvider.kt | 21 +++++++++---------- .../metadata/epub/EpubMetadataProvider.kt | 15 +++++++------ 6 files changed, 21 insertions(+), 24 deletions(-) diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/service/BookMetadataLifecycle.kt b/komga/src/main/kotlin/org/gotson/komga/domain/service/BookMetadataLifecycle.kt index 81050276..6457b32d 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/service/BookMetadataLifecycle.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/service/BookMetadataLifecycle.kt @@ -36,7 +36,7 @@ class BookMetadataLifecycle( bookMetadataProviders.forEach { provider -> when { - capabilities.intersect(provider.getCapabilities()).isEmpty() -> + capabilities.intersect(provider.capabilities).isEmpty() -> logger.info { "Provider does not support requested capabilities, skipping: ${provider.javaClass.simpleName}" } !(provider.shouldLibraryHandlePatch(library, MetadataPatchTarget.BOOK) || provider.shouldLibraryHandlePatch(library, MetadataPatchTarget.READLIST)) -> diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/service/TransientBookLifecycle.kt b/komga/src/main/kotlin/org/gotson/komga/domain/service/TransientBookLifecycle.kt index 52c5860e..6ae1266a 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/service/TransientBookLifecycle.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/service/TransientBookLifecycle.kt @@ -31,7 +31,7 @@ class TransientBookLifecycle( bookMetadataProviders: List, ) { - val bookMetadataProviders = bookMetadataProviders.filter { it.getCapabilities().contains(BookMetadataPatchCapability.NUMBER_SORT) } + val bookMetadataProviders = bookMetadataProviders.filter { it.capabilities.contains(BookMetadataPatchCapability.NUMBER_SORT) } fun scanAndPersist(filePath: String): List { val folderToScan = Paths.get(filePath) diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/BookMetadataProvider.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/BookMetadataProvider.kt index 98680628..efa93c1d 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/BookMetadataProvider.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/BookMetadataProvider.kt @@ -5,6 +5,6 @@ import org.gotson.komga.domain.model.BookMetadataPatchCapability import org.gotson.komga.domain.model.BookWithMedia interface BookMetadataProvider : MetadataProvider { - fun getCapabilities(): Set + val capabilities: Set fun getBookMetadataFromBook(book: BookWithMedia): BookMetadataPatch? } diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/barcode/IsbnBarcodeProvider.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/barcode/IsbnBarcodeProvider.kt index daf241e5..10a4954b 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/barcode/IsbnBarcodeProvider.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/barcode/IsbnBarcodeProvider.kt @@ -36,8 +36,7 @@ class IsbnBarcodeProvider( DecodeHintType.TRY_HARDER to true, ) - override fun getCapabilities(): Set = - setOf(BookMetadataPatchCapability.ISBN) + override val capabilities = setOf(BookMetadataPatchCapability.ISBN) override fun getBookMetadataFromBook(book: BookWithMedia): BookMetadataPatch? { if (book.media.profile == MediaProfile.EPUB) return null diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/ComicInfoProvider.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/ComicInfoProvider.kt index e140c6e7..942b5210 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/ComicInfoProvider.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/ComicInfoProvider.kt @@ -35,17 +35,16 @@ class ComicInfoProvider( private val isbnValidator: ISBNValidator, ) : BookMetadataProvider, SeriesMetadataFromBookProvider { - override fun getCapabilities(): Set = - setOf( - BookMetadataPatchCapability.TITLE, - BookMetadataPatchCapability.SUMMARY, - BookMetadataPatchCapability.NUMBER, - BookMetadataPatchCapability.NUMBER_SORT, - BookMetadataPatchCapability.RELEASE_DATE, - BookMetadataPatchCapability.AUTHORS, - BookMetadataPatchCapability.READ_LISTS, - BookMetadataPatchCapability.LINKS, - ) + override val capabilities = setOf( + BookMetadataPatchCapability.TITLE, + BookMetadataPatchCapability.SUMMARY, + BookMetadataPatchCapability.NUMBER, + BookMetadataPatchCapability.NUMBER_SORT, + BookMetadataPatchCapability.RELEASE_DATE, + BookMetadataPatchCapability.AUTHORS, + BookMetadataPatchCapability.READ_LISTS, + BookMetadataPatchCapability.LINKS, + ) override fun getBookMetadataFromBook(book: BookWithMedia): BookMetadataPatch? { getComicInfo(book)?.let { comicInfo -> diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/epub/EpubMetadataProvider.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/epub/EpubMetadataProvider.kt index 3cf55b46..14b3f417 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/epub/EpubMetadataProvider.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/epub/EpubMetadataProvider.kt @@ -37,14 +37,13 @@ class EpubMetadataProvider( "trl" to "translator", ) - override fun getCapabilities(): Set = - setOf( - BookMetadataPatchCapability.TITLE, - BookMetadataPatchCapability.SUMMARY, - BookMetadataPatchCapability.RELEASE_DATE, - BookMetadataPatchCapability.AUTHORS, - BookMetadataPatchCapability.ISBN, - ) + override val capabilities = setOf( + BookMetadataPatchCapability.TITLE, + BookMetadataPatchCapability.SUMMARY, + BookMetadataPatchCapability.RELEASE_DATE, + BookMetadataPatchCapability.AUTHORS, + BookMetadataPatchCapability.ISBN, + ) override fun getBookMetadataFromBook(book: BookWithMedia): BookMetadataPatch? { if (book.media.mediaType != MediaType.EPUB.type) return null