mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-04 11:24:35 -05:00
feat(comicinfo): add date fields to comic info (#1021)
* feat(comicinfo): add date fields to comic info This will be parsed by Komga, Kavita etc ... and any other library management to also have the date of the chapter. * refactor: improve code readability Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com> --------- Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com>
This commit is contained in:
@@ -58,6 +58,9 @@ data class ComicInfo(
|
||||
val web: Web?,
|
||||
val publishingStatus: PublishingStatusTachiyomi?,
|
||||
val categories: CategoriesTachiyomi?,
|
||||
val day: Day?,
|
||||
val month: Month?,
|
||||
val year: Year?,
|
||||
) {
|
||||
@Suppress("UNUSED")
|
||||
@XmlElement(false)
|
||||
@@ -87,6 +90,24 @@ data class ComicInfo(
|
||||
@XmlValue(true) val value: String = "",
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@XmlSerialName("Day", "", "")
|
||||
data class Day(
|
||||
@XmlValue(true) val value: Int = 0,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@XmlSerialName("Month", "", "")
|
||||
data class Month(
|
||||
@XmlValue(true) val value: Int = 0,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@XmlSerialName("Year", "", "")
|
||||
data class Year(
|
||||
@XmlValue(true) val value: Int = 0,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@XmlSerialName("Summary", "", "")
|
||||
data class Summary(
|
||||
|
||||
@@ -15,19 +15,23 @@ import suwayomi.tachidesk.manga.model.table.MangaTable
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.nio.file.Path
|
||||
import java.time.Instant
|
||||
import java.time.ZoneId
|
||||
import kotlin.io.path.deleteIfExists
|
||||
import kotlin.io.path.div
|
||||
import kotlin.io.path.outputStream
|
||||
|
||||
/**
|
||||
* Creates a ComicInfo instance based on the manga and chapter metadata.
|
||||
*/
|
||||
fun getComicInfo(
|
||||
manga: ResultRow,
|
||||
chapter: ResultRow,
|
||||
chapterUrl: String,
|
||||
categories: List<String>?,
|
||||
) = ComicInfo(
|
||||
): ComicInfo {
|
||||
val dateUpload = chapter[ChapterTable.date_upload]
|
||||
val localDate =
|
||||
Instant.ofEpochMilli(dateUpload).atZone(ZoneId.systemDefault()).toLocalDate()
|
||||
|
||||
return ComicInfo(
|
||||
title = ComicInfo.Title(chapter[ChapterTable.name]),
|
||||
series = ComicInfo.Series(manga[MangaTable.title]),
|
||||
number =
|
||||
@@ -54,7 +58,11 @@ fun getComicInfo(
|
||||
letterer = null,
|
||||
coverArtist = null,
|
||||
tags = null,
|
||||
day = localDate?.dayOfMonth?.let { ComicInfo.Day(it) },
|
||||
month = localDate?.monthValue?.let { ComicInfo.Month(it) },
|
||||
year = localDate?.year?.let { ComicInfo.Year(it) },
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a ComicInfo.xml file inside the given directory.
|
||||
|
||||
Reference in New Issue
Block a user