Fix cloudflare un-caught causes app crashing (#1178)

Fix cloudflare uncatch causes app crashing
This commit is contained in:
Cuong M. Tran 2024-02-11 01:08:22 +07:00 committed by Draff
parent bc4df5d008
commit 731145443b
4 changed files with 29 additions and 25 deletions

View File

@ -1,7 +1,7 @@
ext {
extName = 'Hentai Cosplay'
extClass = '.HentaiCosplay'
extVersionCode = 2
extVersionCode = 3
isNsfw = true
}

View File

@ -138,21 +138,23 @@ class HentaiCosplay : HttpSource() {
private fun fetchTags() {
Single.fromCallable {
client.newCall(GET("$baseUrl/ranking-tag/", headers))
.execute().asJsoup()
.run {
tagCache = buildList {
add(Pair("", ""))
select("#tags a").map {
Pair(
it.text()
.replace(tagNumRegex, "")
.trim(),
it.attr("href"),
).let(::add)
runCatching {
client.newCall(GET("$baseUrl/ranking-tag/", headers))
.execute().asJsoup()
.run {
tagCache = buildList {
add(Pair("", ""))
select("#tags a").map {
Pair(
it.text()
.replace(tagNumRegex, "")
.trim(),
it.attr("href"),
).let(::add)
}
}
}
}
}
}
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())

View File

@ -1,7 +1,7 @@
ext {
extName = 'TruyenGiHot'
extClass = '.TruyenGiHot'
extVersionCode = 4
extVersionCode = 5
isNsfw = true
}

View File

@ -285,19 +285,21 @@ class TruyenGiHot : ParsedHttpSource() {
}
Single.fromCallable {
val document = client.newCall(GET("$baseUrl/danh-sach-truyen.html", headers)).execute().asJsoup()
runCatching {
val document = client.newCall(GET("$baseUrl/danh-sach-truyen.html", headers)).execute().asJsoup()
val result = runCatching {
tags = TruyenGiHotUtils.parseThemes(document.selectFirst("#contentTag")!!)
themes = TruyenGiHotUtils.parseThemes(document.selectFirst("#contentTheme")!!)
scanlators = TruyenGiHotUtils.parseOptions(document.selectFirst("#contentGroup")!!)
}
.onFailure {
Log.e("TruyenGiHot", "Could not fetch filtering options", it)
val result = runCatching {
tags = TruyenGiHotUtils.parseThemes(document.selectFirst("#contentTag")!!)
themes = TruyenGiHotUtils.parseThemes(document.selectFirst("#contentTheme")!!)
scanlators = TruyenGiHotUtils.parseOptions(document.selectFirst("#contentGroup")!!)
}
.onFailure {
Log.e("TruyenGiHot", "Could not fetch filtering options", it)
}
fetchFiltersFailed = result.isFailure
fetchFiltersAttempts++
fetchFiltersFailed = result.isFailure
fetchFiltersAttempts++
}
}
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())