Adapt model implementation for TachiyomiX 1.6 (#3412)

This commit is contained in:
AntsyLich
2026-06-15 23:32:39 +06:00
committed by GitHub
parent f00cac265f
commit 94cab02c1e
26 changed files with 177 additions and 28 deletions
@@ -1,3 +1,19 @@
package eu.kanade.tachiyomi.source.model
data class MangasPage(val mangas: List<SManga>, val hasNextPage: Boolean)
class MangasPage(val mangas: List<SManga>, val hasNextPage: Boolean) {
@Deprecated("MangasPage is now a regular class")
operator fun component1(): List<SManga> = mangas
@Deprecated("MangasPage is now a regular class")
operator fun component2(): Boolean = hasNextPage
@Deprecated("MangasPage is now a regular class")
fun copy(
mangas: List<SManga> = this.mangas,
hasNextPage: Boolean = this.hasNextPage,
): MangasPage = MangasPage(
mangas = mangas,
hasNextPage = hasNextPage,
)
}
@@ -2,6 +2,7 @@
package eu.kanade.tachiyomi.source.model
import kotlinx.serialization.json.JsonObject
import java.io.Serializable
interface SChapter : Serializable {
@@ -10,12 +11,25 @@ interface SChapter : Serializable {
var name: String
var date_upload: Long
var chapter_number: Float
var scanlator: String?
var date_upload: Long
/**
* Extra metadata associated with the chapter.
*
* The JSON object is not visible to users and intended for internal or source-specific
* purposes. Apps may define their own namespaced keys (e.g., `"mihon.*"`) for sources to populate.
*
* This allows apps to attach and ask for custom information without affecting the visible
* chapter data.
*
* @since tachiyomix 1.6
*/
var memo: JsonObject
fun copyFrom(other: SChapter) {
name = other.name
url = other.url
@@ -2,15 +2,19 @@
package eu.kanade.tachiyomi.source.model
import kotlinx.serialization.json.JsonObject
class SChapterImpl : SChapter {
override lateinit var url: String
override lateinit var name: String
override var date_upload: Long = 0
override var chapter_number: Float = -1f
override var scanlator: String? = null
override var date_upload: Long = 0
override var memo: JsonObject = JsonObject(emptyMap())
}
@@ -2,6 +2,7 @@
package eu.kanade.tachiyomi.source.model
import kotlinx.serialization.json.JsonObject
import java.io.Serializable
interface SManga : Serializable {
@@ -10,22 +11,35 @@ interface SManga : Serializable {
var title: String
var thumbnail_url: String?
var artist: String?
var author: String?
var status: Int
var description: String?
var genre: String?
var status: Int
var thumbnail_url: String?
var update_strategy: UpdateStrategy
var initialized: Boolean
/**
* Extra metadata associated with the manga.
*
* The JSON object is not visible to users and intended for internal or source-specific
* purposes. Apps may define their own namespaced keys (e.g., `"mihon.*"`) for sources to populate.
*
* This allows apps to attach and ask for custom information without affecting the visible
* manga data.
*
* @since tachiyomix 1.6
*/
var memo: JsonObject
fun getGenres(): List<String>? {
if (genre.isNullOrBlank()) return null
return genre?.split(", ")?.map { it.trim() }?.filterNot { it.isBlank() }?.distinct()
@@ -2,25 +2,29 @@
package eu.kanade.tachiyomi.source.model
import kotlinx.serialization.json.JsonObject
class SMangaImpl : SManga {
override lateinit var url: String
override lateinit var title: String
override var thumbnail_url: String? = null
override var artist: String? = null
override var author: String? = null
override var status: Int = 0
override var description: String? = null
override var genre: String? = null
override var status: Int = 0
override var thumbnail_url: String? = null
override var update_strategy: UpdateStrategy = UpdateStrategy.ALWAYS_UPDATE
override var initialized: Boolean = false
override var memo: JsonObject = JsonObject(emptyMap())
}