[Komga] series metadata (#2197)
* handle Series status add filter for Series status * use Series title instead of name sort by titleSort instead of name
This commit is contained in:
parent
9ec115594e
commit
0e59671851
@ -5,7 +5,7 @@ ext {
|
|||||||
appName = 'Tachiyomi: Komga'
|
appName = 'Tachiyomi: Komga'
|
||||||
pkgNameSuffix = 'all.komga'
|
pkgNameSuffix = 'all.komga'
|
||||||
extClass = '.Komga'
|
extClass = '.Komga'
|
||||||
extVersionCode = 6
|
extVersionCode = 7
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,9 +51,20 @@ open class Komga : ConfigurableSource, HttpSource() {
|
|||||||
url.addQueryParameter("library_id", libraryToInclude.joinToString(","))
|
url.addQueryParameter("library_id", libraryToInclude.joinToString(","))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
is StatusGroup -> {
|
||||||
|
val statusToInclude = mutableListOf<String>()
|
||||||
|
filter.state.forEach { content ->
|
||||||
|
if (content.state) {
|
||||||
|
statusToInclude.add(content.name.toUpperCase(Locale.ROOT))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (statusToInclude.isNotEmpty()) {
|
||||||
|
url.addQueryParameter("status", statusToInclude.joinToString(","))
|
||||||
|
}
|
||||||
|
}
|
||||||
is Filter.Sort -> {
|
is Filter.Sort -> {
|
||||||
var sortCriteria = when (filter.state?.index) {
|
var sortCriteria = when (filter.state?.index) {
|
||||||
0 -> "name"
|
0 -> "metadata.titleSort"
|
||||||
1 -> "createdDate"
|
1 -> "createdDate"
|
||||||
2 -> "lastModifiedDate"
|
2 -> "lastModifiedDate"
|
||||||
else -> ""
|
else -> ""
|
||||||
@ -125,10 +136,14 @@ open class Komga : ConfigurableSource, HttpSource() {
|
|||||||
|
|
||||||
private fun SeriesDto.toSManga(): SManga =
|
private fun SeriesDto.toSManga(): SManga =
|
||||||
SManga.create().apply {
|
SManga.create().apply {
|
||||||
title = name
|
title = metadata.title
|
||||||
url = "/api/v1/series/${id}"
|
url = "/api/v1/series/${id}"
|
||||||
thumbnail_url = "$baseUrl/api/v1/series/${id}/thumbnail"
|
thumbnail_url = "$baseUrl/api/v1/series/${id}/thumbnail"
|
||||||
status = SManga.UNKNOWN
|
status = when (metadata.status) {
|
||||||
|
"ONGOING" -> SManga.ONGOING
|
||||||
|
"ENDED" -> SManga.COMPLETED
|
||||||
|
else -> SManga.UNKNOWN
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun parseDate(date: String?): Long =
|
private fun parseDate(date: String?): Long =
|
||||||
@ -151,10 +166,13 @@ open class Komga : ConfigurableSource, HttpSource() {
|
|||||||
private class LibraryFilter(val id: Long, name: String) : Filter.CheckBox(name, false)
|
private class LibraryFilter(val id: Long, name: String) : Filter.CheckBox(name, false)
|
||||||
private class LibraryGroup(libraries: List<LibraryFilter>) : Filter.Group<LibraryFilter>("Libraries", libraries)
|
private class LibraryGroup(libraries: List<LibraryFilter>) : Filter.Group<LibraryFilter>("Libraries", libraries)
|
||||||
private class SeriesSort : Filter.Sort("Sort", arrayOf("Alphabetically", "Date added", "Date updated"), Filter.Sort.Selection(0, true))
|
private class SeriesSort : Filter.Sort("Sort", arrayOf("Alphabetically", "Date added", "Date updated"), Filter.Sort.Selection(0, true))
|
||||||
|
private class StatusFilter(name: String) : Filter.CheckBox(name, false)
|
||||||
|
private class StatusGroup(filters: List<StatusFilter>) : Filter.Group<StatusFilter>("Status", filters)
|
||||||
|
|
||||||
override fun getFilterList(): FilterList =
|
override fun getFilterList(): FilterList =
|
||||||
FilterList(
|
FilterList(
|
||||||
LibraryGroup(libraries.map { LibraryFilter(it.id, it.name) }.sortedBy { it.name }),
|
LibraryGroup(libraries.map { LibraryFilter(it.id, it.name) }.sortedBy { it.name }),
|
||||||
|
StatusGroup(listOf("Ongoing", "Ended", "Abandoned", "Hiatus").map { StatusFilter(it) }),
|
||||||
SeriesSort()
|
SeriesSort()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -12,7 +12,16 @@ data class SeriesDto(
|
|||||||
val created: String?,
|
val created: String?,
|
||||||
val lastModified: String?,
|
val lastModified: String?,
|
||||||
val fileLastModified: String,
|
val fileLastModified: String,
|
||||||
val booksCount: Int
|
val booksCount: Int,
|
||||||
|
val metadata: SeriesMetadataDto
|
||||||
|
)
|
||||||
|
|
||||||
|
data class SeriesMetadataDto(
|
||||||
|
val status: String,
|
||||||
|
val created: String?,
|
||||||
|
val lastModified: String?,
|
||||||
|
val title: String,
|
||||||
|
val titleSort: String
|
||||||
)
|
)
|
||||||
|
|
||||||
data class BookDto(
|
data class BookDto(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user