feat: refresh series metadata if series.json file changed

This commit is contained in:
Gauthier Roebroeck 2021-06-10 15:43:44 +08:00
parent 0af6ec45ad
commit 5cc14b57f8
4 changed files with 10 additions and 2 deletions

View file

@ -12,7 +12,7 @@ data class Sidecar(
) {
enum class Type {
ARTWORK
ARTWORK, METADATA
}
enum class Source {

View file

@ -175,6 +175,7 @@ class LibraryContentLifecycle(
logger.info { "Sidecar changed on disk (${newSidecar.url}, refresh Series for ${newSidecar.type}: $series" }
when (newSidecar.type) {
Sidecar.Type.ARTWORK -> taskReceiver.refreshSeriesLocalArtwork(series.id)
Sidecar.Type.METADATA -> taskReceiver.refreshSeriesMetadata(series.id)
}
}
Sidecar.Source.BOOK ->
@ -182,6 +183,7 @@ class LibraryContentLifecycle(
logger.info { "Sidecar changed on disk (${newSidecar.url}, refresh Book for ${newSidecar.type}: $book" }
when (newSidecar.type) {
Sidecar.Type.ARTWORK -> taskReceiver.refreshBookLocalArtwork(book.id)
Sidecar.Type.METADATA -> taskReceiver.refreshBookMetadata(book.id)
}
}
}

View file

@ -5,8 +5,10 @@ import mu.KotlinLogging
import org.gotson.komga.domain.model.Series
import org.gotson.komga.domain.model.SeriesMetadata
import org.gotson.komga.domain.model.SeriesMetadataPatch
import org.gotson.komga.domain.model.Sidecar
import org.gotson.komga.infrastructure.metadata.SeriesMetadataProvider
import org.gotson.komga.infrastructure.metadata.mylar.dto.Status
import org.gotson.komga.infrastructure.sidecar.SidecarSeriesConsumer
import org.springframework.stereotype.Service
import kotlin.io.path.notExists
import org.gotson.komga.infrastructure.metadata.mylar.dto.Series as MylarSeries
@ -18,7 +20,7 @@ private const val SERIES_JSON = "series.json"
@Service
class MylarSeriesProvider(
private val mapper: ObjectMapper,
) : SeriesMetadataProvider {
) : SeriesMetadataProvider, SidecarSeriesConsumer {
override fun getSeriesMetadata(series: Series): SeriesMetadataPatch? {
try {
@ -49,4 +51,8 @@ class MylarSeriesProvider(
return null
}
}
override fun getSidecarSeriesType(): Sidecar.Type = Sidecar.Type.METADATA
override fun getSidecarSeriesFilenames(): List<String> = listOf(SERIES_JSON)
}