Add in error handling to handle malformed responses from the aggregate endpoint. addresses #7697 and #7678 (#7709)
This commit is contained in:
parent
0fea601ab9
commit
84f2e19495
@ -6,7 +6,7 @@ ext {
|
|||||||
extName = 'MangaDex'
|
extName = 'MangaDex'
|
||||||
pkgNameSuffix = 'all.mangadex'
|
pkgNameSuffix = 'all.mangadex'
|
||||||
extClass = '.MangaDexFactory'
|
extClass = '.MangaDexFactory'
|
||||||
extVersionCode = 120
|
extVersionCode = 121
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
containsNsfw = true
|
containsNsfw = true
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ import eu.kanade.tachiyomi.source.model.Page
|
|||||||
import eu.kanade.tachiyomi.source.model.SChapter
|
import eu.kanade.tachiyomi.source.model.SChapter
|
||||||
import eu.kanade.tachiyomi.source.model.SManga
|
import eu.kanade.tachiyomi.source.model.SManga
|
||||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||||
|
import kotlinx.serialization.SerializationException
|
||||||
import kotlinx.serialization.decodeFromString
|
import kotlinx.serialization.decodeFromString
|
||||||
import okhttp3.CacheControl
|
import okhttp3.CacheControl
|
||||||
import okhttp3.Headers
|
import okhttp3.Headers
|
||||||
@ -196,9 +197,15 @@ abstract class MangaDex(override val lang: String, val dexLang: String) :
|
|||||||
* @see AggregateDto
|
* @see AggregateDto
|
||||||
*/
|
*/
|
||||||
private fun fetchSimpleChapterList(manga: MangaDto, langCode: String): List<String> {
|
private fun fetchSimpleChapterList(manga: MangaDto, langCode: String): List<String> {
|
||||||
val url = "${MDConstants.apiMangaUrl}/${manga.data.id}/aggregate?translatedLanguage[]=${langCode}"
|
val url = "${MDConstants.apiMangaUrl}/${manga.data.id}/aggregate?translatedLanguage[]=$langCode"
|
||||||
val response = client.newCall(GET(url, headers)).execute()
|
val response = client.newCall(GET(url, headers)).execute()
|
||||||
val chapters = helper.json.decodeFromString<AggregateDto>(response.body!!.string())
|
val chapters: AggregateDto
|
||||||
|
try {
|
||||||
|
chapters = helper.json.decodeFromString(response.body!!.string())
|
||||||
|
} catch (e: SerializationException) {
|
||||||
|
return emptyList()
|
||||||
|
}
|
||||||
|
if (chapters.volumes.isNullOrEmpty()) return emptyList()
|
||||||
return chapters.volumes.values.flatMap { it.chapters.values }.map { it.chapter }
|
return chapters.volumes.values.flatMap { it.chapters.values }.map { it.chapter }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user