mirror of
https://github.com/gotson/komga.git
synced 2025-12-06 08:32:25 +01:00
fixed incorrect mediaType returned for book pages
This commit is contained in:
parent
264be393b8
commit
d900318b42
3 changed files with 5 additions and 20 deletions
|
|
@ -29,19 +29,4 @@ class BookManager(
|
|||
bookRepository.save(book)
|
||||
}
|
||||
|
||||
fun getPageContent(book: Book, number: Int): ByteArray {
|
||||
logger.info { "Get page #$number for book: ${book.url}" }
|
||||
|
||||
if (book.metadata.status == Status.UNKNOWN) {
|
||||
logger.info { "Book metadata is unknown, parsing it now" }
|
||||
parseAndPersist(book)
|
||||
}
|
||||
|
||||
if (book.metadata.status != Status.READY) {
|
||||
logger.warn { "Book metadata is not ready, cannot get pages" }
|
||||
throw MetadataNotReadyException()
|
||||
}
|
||||
|
||||
return bookParser.getPageStrema(book, number).readBytes()
|
||||
}
|
||||
}
|
||||
|
|
@ -39,7 +39,7 @@ class BookParser(
|
|||
return BookMetadata(mediaType = mediaType, status = Status.READY, pages = pages)
|
||||
}
|
||||
|
||||
fun getPageStrema(book: Book, number: Int): InputStream {
|
||||
fun getPageStream(book: Book, number: Int): InputStream {
|
||||
logger.info { "Get page #$number for book: ${book.url}" }
|
||||
|
||||
if (book.metadata.status != Status.READY) {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import org.gotson.komga.domain.model.Serie
|
|||
import org.gotson.komga.domain.model.Status
|
||||
import org.gotson.komga.domain.persistence.BookRepository
|
||||
import org.gotson.komga.domain.persistence.SerieRepository
|
||||
import org.gotson.komga.domain.service.BookManager
|
||||
import org.gotson.komga.domain.service.BookParser
|
||||
import org.gotson.komga.domain.service.MetadataNotReadyException
|
||||
import org.springframework.data.domain.Page
|
||||
import org.springframework.data.domain.Pageable
|
||||
|
|
@ -26,7 +26,7 @@ import java.io.File
|
|||
class SerieController(
|
||||
private val serieRepository: SerieRepository,
|
||||
private val bookRepository: BookRepository,
|
||||
private val bookManager: BookManager
|
||||
private val bookParser: BookParser
|
||||
) {
|
||||
|
||||
@GetMapping
|
||||
|
|
@ -98,10 +98,10 @@ class SerieController(
|
|||
|
||||
try {
|
||||
return bookRepository.findByIdOrNull((bookId))?.let { book ->
|
||||
val pageContent = bookManager.getPageContent(book, pageNumber)
|
||||
val pageContent = bookParser.getPageStream(book, pageNumber).readBytes()
|
||||
|
||||
val mediaType = try {
|
||||
MediaType.parseMediaType(book.metadata.mediaType!!)
|
||||
MediaType.parseMediaType(book.metadata.pages[pageNumber - 1].mediaType)
|
||||
} catch (ex: Exception) {
|
||||
MediaType.APPLICATION_OCTET_STREAM
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue