Fix saved manga index parsing
This commit is contained in:
@@ -7,6 +7,8 @@ import org.koitharu.kotatsu.core.model.Manga
|
||||
import org.koitharu.kotatsu.core.model.MangaChapter
|
||||
import org.koitharu.kotatsu.core.model.MangaSource
|
||||
import org.koitharu.kotatsu.core.model.MangaTag
|
||||
import org.koitharu.kotatsu.utils.ext.getBooleanOrDefault
|
||||
import org.koitharu.kotatsu.utils.ext.getLongOrDefault
|
||||
import org.koitharu.kotatsu.utils.ext.getStringOrNull
|
||||
import org.koitharu.kotatsu.utils.ext.mapToSet
|
||||
|
||||
@@ -20,9 +22,11 @@ class MangaIndex(source: String?) {
|
||||
json.put("title_alt", manga.altTitle)
|
||||
json.put("url", manga.url)
|
||||
json.put("public_url", manga.publicUrl)
|
||||
json.put("author", manga.author)
|
||||
json.put("cover", manga.coverUrl)
|
||||
json.put("description", manga.description)
|
||||
json.put("rating", manga.rating)
|
||||
json.put("nsfw", manga.isNsfw)
|
||||
json.put("source", manga.source.name)
|
||||
json.put("cover_large", manga.largeCoverUrl)
|
||||
json.put("tags", JSONArray().also { a ->
|
||||
@@ -48,8 +52,11 @@ class MangaIndex(source: String?) {
|
||||
altTitle = json.getStringOrNull("title_alt"),
|
||||
url = json.getString("url"),
|
||||
publicUrl = json.getStringOrNull("public_url").orEmpty(),
|
||||
author = json.getStringOrNull("author"),
|
||||
largeCoverUrl = json.getStringOrNull("cover_large"),
|
||||
source = source,
|
||||
rating = json.getDouble("rating").toFloat(),
|
||||
isNsfw = json.getBooleanOrDefault("nsfw", false),
|
||||
coverUrl = json.getString("cover"),
|
||||
description = json.getStringOrNull("description"),
|
||||
tags = json.getJSONArray("tags").mapToSet { x ->
|
||||
@@ -59,7 +66,7 @@ class MangaIndex(source: String?) {
|
||||
source = source
|
||||
)
|
||||
},
|
||||
chapters = getChapters(json.getJSONObject("chapters"), source)
|
||||
chapters = getChapters(json.getJSONObject("chapters"), source),
|
||||
)
|
||||
}.getOrNull()
|
||||
|
||||
@@ -100,10 +107,10 @@ class MangaIndex(source: String?) {
|
||||
name = v.getString("name"),
|
||||
url = v.getString("url"),
|
||||
number = v.getInt("number"),
|
||||
uploadDate = v.getLong("uploadDate"),
|
||||
uploadDate = v.getLongOrDefault("uploadDate", 0L),
|
||||
scanlator = v.getStringOrNull("scanlator"),
|
||||
branch = v.getStringOrNull("branch"),
|
||||
source = source
|
||||
source = source,
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -38,6 +38,10 @@ fun JSONObject.getBooleanOrDefault(name: String, defaultValue: Boolean): Boolean
|
||||
it === JSONObject.NULL
|
||||
} as? Boolean ?: defaultValue
|
||||
|
||||
fun JSONObject.getLongOrDefault(name: String, defaultValue: Long): Long = opt(name)?.takeUnless {
|
||||
it === JSONObject.NULL
|
||||
} as? Long ?: defaultValue
|
||||
|
||||
operator fun JSONArray.iterator(): Iterator<JSONObject> = JSONIterator(this)
|
||||
|
||||
private class JSONIterator(private val array: JSONArray) : Iterator<JSONObject> {
|
||||
|
||||
@@ -223,7 +223,7 @@
|
||||
<string name="queued">В очереди</string>
|
||||
<string name="text_downloads_holder">На данный момент нет активных загрузок</string>
|
||||
<string name="chapter_is_missing">Глава отсутствует</string>
|
||||
<string name="chapter_is_missing_text">Эта глава отсутствует на вашем устройстве. Скачайте или прочитайте её онлайн.</string>
|
||||
<string name="chapter_is_missing_text">Эта глава отсутствует на вашем устройстве. Загрузите её или читайте онлайн.</string>
|
||||
<string name="about_app_translation_summary">Помочь с переводом приложения</string>
|
||||
<string name="about_app_translation">Перевод</string>
|
||||
<string name="about_author">Автор</string>
|
||||
|
||||
Reference in New Issue
Block a user