mirror of
https://github.com/gotson/komga.git
synced 2025-12-07 17:13:59 +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)
|
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)
|
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}" }
|
logger.info { "Get page #$number for book: ${book.url}" }
|
||||||
|
|
||||||
if (book.metadata.status != Status.READY) {
|
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.model.Status
|
||||||
import org.gotson.komga.domain.persistence.BookRepository
|
import org.gotson.komga.domain.persistence.BookRepository
|
||||||
import org.gotson.komga.domain.persistence.SerieRepository
|
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.gotson.komga.domain.service.MetadataNotReadyException
|
||||||
import org.springframework.data.domain.Page
|
import org.springframework.data.domain.Page
|
||||||
import org.springframework.data.domain.Pageable
|
import org.springframework.data.domain.Pageable
|
||||||
|
|
@ -26,7 +26,7 @@ import java.io.File
|
||||||
class SerieController(
|
class SerieController(
|
||||||
private val serieRepository: SerieRepository,
|
private val serieRepository: SerieRepository,
|
||||||
private val bookRepository: BookRepository,
|
private val bookRepository: BookRepository,
|
||||||
private val bookManager: BookManager
|
private val bookParser: BookParser
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@GetMapping
|
@GetMapping
|
||||||
|
|
@ -98,10 +98,10 @@ class SerieController(
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return bookRepository.findByIdOrNull((bookId))?.let { book ->
|
return bookRepository.findByIdOrNull((bookId))?.let { book ->
|
||||||
val pageContent = bookManager.getPageContent(book, pageNumber)
|
val pageContent = bookParser.getPageStream(book, pageNumber).readBytes()
|
||||||
|
|
||||||
val mediaType = try {
|
val mediaType = try {
|
||||||
MediaType.parseMediaType(book.metadata.mediaType!!)
|
MediaType.parseMediaType(book.metadata.pages[pageNumber - 1].mediaType)
|
||||||
} catch (ex: Exception) {
|
} catch (ex: Exception) {
|
||||||
MediaType.APPLICATION_OCTET_STREAM
|
MediaType.APPLICATION_OCTET_STREAM
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue