This commit is contained in:
Jobobby04
2020-10-31 22:06:32 -04:00
parent 8f1f6d5a97
commit 7cbd7bd419
12 changed files with 40 additions and 56 deletions
@@ -7,7 +7,6 @@ import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.jsonArray
import kotlinx.serialization.json.jsonPrimitive
import okhttp3.Response
import java.util.Date
class ApiChapterParser {
fun pageListParse(response: Response): List<Page> {
@@ -22,7 +21,7 @@ class ApiChapterParser {
pageArray.forEach {
val url = "$hash/${it.jsonPrimitive.content}"
pages.add(Page(pages.size, "$server,${response.request.url},${Date().time}", url))
pages.add(Page(pages.size, "$server,${response.request.url},${System.currentTimeMillis()}", url))
}
return pages
@@ -26,7 +26,6 @@ import rx.Completable
import rx.Single
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.util.Date
class ApiMangaParser(private val langs: List<String>) {
val db: DatabaseHelper get() = Injekt.get()
@@ -207,9 +206,8 @@ class ApiMangaParser(private val langs: List<String>) {
}
fun chapterListParse(jsonData: String): List<SChapter> {
val now = Date().time
val networkApiManga =
MdUtil.jsonParser.decodeFromString(ApiMangaSerializer.serializer(), jsonData)
val now = System.currentTimeMillis()
val networkApiManga = MdUtil.jsonParser.decodeFromString(ApiMangaSerializer.serializer(), jsonData)
val networkManga = networkApiManga.manga
val networkChapters = networkApiManga.chapter
if (networkChapters.isNullOrEmpty()) {
@@ -45,25 +45,22 @@ class FollowsHandler(val client: OkHttpClient, val headers: Headers, val prefere
* used when multiple follows
*/
private fun followsParseMangaPage(response: Response, forceHd: Boolean = false): MetadataMangasPage {
var followsPageResult: FollowsPageResult? = null
try {
followsPageResult =
MdUtil.jsonParser.decodeFromString(
FollowsPageResult.serializer(),
response.body!!.string()
)
val followsPageResult = try {
MdUtil.jsonParser.decodeFromString(
FollowsPageResult.serializer(),
response.body?.string() ?: ""
)
} catch (e: Exception) {
XLog.e("error parsing follows", e)
FollowsPageResult(emptyList())
}
val empty = followsPageResult?.result?.isEmpty()
if (empty == null || empty) {
return MetadataMangasPage(mutableListOf(), false, mutableListOf())
if (followsPageResult.result.isEmpty()) {
return MetadataMangasPage(emptyList(), false, emptyList())
}
val lowQualityCovers = if (forceHd) false else useLowQualityCovers
val follows = followsPageResult!!.result.map {
val follows = followsPageResult.result.map {
followFromElement(it, lowQualityCovers)
}
@@ -79,25 +76,22 @@ class FollowsHandler(val client: OkHttpClient, val headers: Headers, val prefere
*/
private fun followStatusParse(response: Response): Track {
var followsPageResult: FollowsPageResult? = null
try {
followsPageResult =
MdUtil.jsonParser.decodeFromString(
FollowsPageResult.serializer(),
response.body!!.string()
)
val followsPageResult = try {
MdUtil.jsonParser.decodeFromString(
FollowsPageResult.serializer(),
response.body?.string() ?: ""
)
} catch (e: Exception) {
XLog.e("error parsing follows", e)
FollowsPageResult(emptyList())
}
val track = Track.create(TrackManager.MDLIST)
val result = followsPageResult?.result
if (result.isNullOrEmpty()) {
if (followsPageResult.result.isEmpty()) {
track.status = FollowStatus.UNFOLLOWED.int
} else {
val follow = result.first()
val follow = followsPageResult.result.first()
track.status = follow.follow_type
if (result[0].chapter.isNotBlank()) {
if (followsPageResult.result[0].chapter.isNotBlank()) {
track.last_chapter_read = follow.chapter.toFloat().floor()
}
track.tracking_url = MdUtil.baseUrl + follow.manga_id.toString()
@@ -122,9 +116,9 @@ class FollowsHandler(val client: OkHttpClient, val headers: Headers, val prefere
manga.url = "/manga/${result.manga_id}/"
manga.thumbnail_url = MdUtil.formThumbUrl(manga.url, lowQualityCovers)
return manga to MangaDexSearchMetadata().apply {
title = MdUtil.cleanString(result.title)
mdUrl = "/manga/${result.manga_id}/"
thumbnail_url = MdUtil.formThumbUrl(manga.url, lowQualityCovers)
title = manga.title
mdUrl = manga.url
thumbnail_url = manga.thumbnail_url
follow_status = FollowStatus.fromInt(result.follow_type)?.int
}
}
@@ -156,7 +150,7 @@ class FollowsHandler(val client: OkHttpClient, val headers: Headers, val prefere
.await()
}
withContext(Dispatchers.IO) { response.body!!.string().isEmpty() }
withContext(Dispatchers.IO) { response.body?.string().isNullOrEmpty() }
}
}
@@ -182,7 +176,7 @@ class FollowsHandler(val client: OkHttpClient, val headers: Headers, val prefere
)
.await()
withContext(Dispatchers.IO) { response.body!!.string().isEmpty() }
withContext(Dispatchers.IO) { response.body?.string().isNullOrEmpty() }
}
}
@@ -197,7 +191,7 @@ class FollowsHandler(val client: OkHttpClient, val headers: Headers, val prefere
)
.await()
withContext(Dispatchers.IO) { response.body!!.string().isEmpty() }
withContext(Dispatchers.IO) { response.body?.string().isNullOrEmpty() }
}
}