mirror of
https://github.com/gotson/komga.git
synced 2025-12-22 00:13:30 +01:00
fix(opds): add summary and authors to book entries
This commit is contained in:
parent
15d95ac442
commit
241479292a
3 changed files with 39 additions and 28 deletions
|
|
@ -254,7 +254,13 @@ class OpdsController(
|
|||
title = metadata.title,
|
||||
updated = lastModifiedDate?.atZone(ZoneId.systemDefault()) ?: ZonedDateTime.now(),
|
||||
id = id.toString(),
|
||||
content = "${metadata.title} (${fileExtension().toUpperCase()}) (${fileSizeHumanReadable()})",
|
||||
content = run {
|
||||
var content = "${fileExtension().toUpperCase()} - ${fileSizeHumanReadable()}"
|
||||
if (metadata.summary.isNotBlank())
|
||||
content += "\n\n${metadata.summary}"
|
||||
content
|
||||
},
|
||||
authors = metadata.authors.map { OpdsAuthor(it.name) },
|
||||
links = listOf(
|
||||
OpdsLinkImageThumbnail("image/jpeg", "${ROUTE_BASE}books/$id/thumbnail"),
|
||||
OpdsLinkImage(media.pages[0].mediaType, "${ROUTE_BASE}books/$id/pages/1"),
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
package org.gotson.komga.interfaces.opds.dto
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty
|
||||
import java.net.URI
|
||||
|
||||
data class OpdsAuthor(
|
||||
@JacksonXmlProperty(namespace = ATOM)
|
||||
@JacksonXmlProperty(namespace = ATOM)
|
||||
val name: String,
|
||||
|
||||
@JacksonXmlProperty(namespace = ATOM)
|
||||
val uri: URI
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@JacksonXmlProperty(namespace = ATOM)
|
||||
val uri: URI? = null
|
||||
)
|
||||
|
|
|
|||
|
|
@ -7,39 +7,42 @@ import java.time.ZonedDateTime
|
|||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
abstract class OpdsEntry(
|
||||
@get:JacksonXmlProperty(namespace = ATOM)
|
||||
val title: String,
|
||||
@get:JacksonXmlProperty(namespace = ATOM)
|
||||
val title: String,
|
||||
|
||||
@get:JacksonXmlProperty(namespace = ATOM)
|
||||
val updated: ZonedDateTime,
|
||||
@get:JacksonXmlProperty(namespace = ATOM)
|
||||
val updated: ZonedDateTime,
|
||||
|
||||
@get:JacksonXmlProperty(namespace = ATOM)
|
||||
val id: String,
|
||||
@get:JacksonXmlProperty(namespace = ATOM)
|
||||
val id: String,
|
||||
|
||||
@get:JacksonXmlProperty(namespace = ATOM)
|
||||
val content: String
|
||||
)
|
||||
content: String
|
||||
) {
|
||||
@get:JacksonXmlProperty(namespace = ATOM)
|
||||
val content: String = content.replace("\n", "<br/>")
|
||||
}
|
||||
|
||||
class OpdsEntryNavigation(
|
||||
title: String,
|
||||
updated: ZonedDateTime,
|
||||
id: String,
|
||||
content: String,
|
||||
title: String,
|
||||
updated: ZonedDateTime,
|
||||
id: String,
|
||||
content: String,
|
||||
|
||||
@JacksonXmlProperty(namespace = ATOM)
|
||||
val link: OpdsLink
|
||||
@JacksonXmlProperty(namespace = ATOM)
|
||||
val link: OpdsLink
|
||||
) : OpdsEntry(title, updated, id, content)
|
||||
|
||||
class OpdsEntryAcquisition(
|
||||
title: String,
|
||||
updated: ZonedDateTime,
|
||||
id: String,
|
||||
content: String,
|
||||
title: String,
|
||||
updated: ZonedDateTime,
|
||||
id: String,
|
||||
content: String,
|
||||
|
||||
@JacksonXmlProperty(namespace = ATOM)
|
||||
val author: OpdsAuthor? = null,
|
||||
@JacksonXmlElementWrapper(useWrapping = false)
|
||||
@JacksonXmlProperty(localName = "author", namespace = ATOM)
|
||||
val authors: List<OpdsAuthor> = emptyList(),
|
||||
|
||||
@JacksonXmlElementWrapper(useWrapping = false)
|
||||
@JacksonXmlProperty(localName = "link", namespace = ATOM)
|
||||
val links: List<OpdsLink>
|
||||
@JacksonXmlElementWrapper(useWrapping = false)
|
||||
@JacksonXmlProperty(localName = "link", namespace = ATOM)
|
||||
val links: List<OpdsLink>
|
||||
) : OpdsEntry(title, updated, id, content)
|
||||
|
|
|
|||
Loading…
Reference in a new issue