perf(komga): convert BookMetadataProvider to property

This commit is contained in:
Gauthier Roebroeck 2023-12-14 11:52:59 +08:00
parent 1050f522cc
commit 3843f77740
6 changed files with 21 additions and 24 deletions

View file

@ -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)) ->

View file

@ -31,7 +31,7 @@ class TransientBookLifecycle(
bookMetadataProviders: List<BookMetadataProvider>,
) {
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<TransientBook> {
val folderToScan = Paths.get(filePath)

View file

@ -5,6 +5,6 @@ import org.gotson.komga.domain.model.BookMetadataPatchCapability
import org.gotson.komga.domain.model.BookWithMedia
interface BookMetadataProvider : MetadataProvider {
fun getCapabilities(): Set<BookMetadataPatchCapability>
val capabilities: Set<BookMetadataPatchCapability>
fun getBookMetadataFromBook(book: BookWithMedia): BookMetadataPatch?
}

View file

@ -36,8 +36,7 @@ class IsbnBarcodeProvider(
DecodeHintType.TRY_HARDER to true,
)
override fun getCapabilities(): Set<BookMetadataPatchCapability> =
setOf(BookMetadataPatchCapability.ISBN)
override val capabilities = setOf(BookMetadataPatchCapability.ISBN)
override fun getBookMetadataFromBook(book: BookWithMedia): BookMetadataPatch? {
if (book.media.profile == MediaProfile.EPUB) return null

View file

@ -35,17 +35,16 @@ class ComicInfoProvider(
private val isbnValidator: ISBNValidator,
) : BookMetadataProvider, SeriesMetadataFromBookProvider {
override fun getCapabilities(): Set<BookMetadataPatchCapability> =
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 ->

View file

@ -37,14 +37,13 @@ class EpubMetadataProvider(
"trl" to "translator",
)
override fun getCapabilities(): Set<BookMetadataPatchCapability> =
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