From ba9db7ceb91aa59c72ec7a3e36a8998bbcef847f Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Tue, 11 May 2021 12:40:11 -0400 Subject: [PATCH] Fix EHentai Syncing a bit --- .../tachiyomi/source/online/all/EHentai.kt | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt index 61c3e98e5..f8250d07f 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt @@ -46,6 +46,7 @@ import exh.ui.metadata.adapters.EHentaiDescriptionAdapter import exh.util.UriFilter import exh.util.UriGroup import exh.util.asObservableWithAsyncStacktrace +import exh.util.awaitResponse import exh.util.dropBlank import exh.util.ignore import exh.util.nullIfBlank @@ -360,11 +361,17 @@ class EHentai( getChapterList(manga.toMangaInfo(), throttleFunc).map { it.toSChapter() } }) - override fun fetchPageList(chapter: SChapter) = fetchChapterPage(chapter, baseUrl + chapter.url).map { - it.mapIndexed { i, s -> - Page(i, s) + override fun fetchPageList(chapter: SChapter) = fetchChapterPage(chapter, baseUrl + chapter.url) + .map { + it.mapIndexed { i, s -> + Page(i, s) + } + }!! + .doOnNext { pages -> + if (pages.any { it.url == "https://$domain/img/509.gif" }) throw Exception( + "Hit page limit" + ) } - }!!.doOnNext { pages -> if (pages.any { it.url == "https://$domain/img/509.gif" }) throw Exception("Hit page limit") } private fun fetchChapterPage( chapter: SChapter, @@ -459,23 +466,23 @@ class EHentai( private fun exGet(url: String, page: Int? = null, additionalHeaders: Headers? = null, cache: Boolean = true): Request { return GET( - page?.let { + if (page != null) { addParam(url, "page", (page - 1).toString()) - } ?: url, - additionalHeaders?.let { additionalHeadersNotNull -> + } else url, + if (additionalHeaders != null) { val headers = headers.newBuilder() - additionalHeadersNotNull.toMultimap().forEach { (t, u) -> + additionalHeaders.toMultimap().forEach { (t, u) -> u.forEach { headers.add(t, it) } } headers.build() - } ?: headers + } else headers ).let { - if (!cache) { - it.newBuilder().cacheControl(CacheControl.FORCE_NETWORK).build() - } else { + if (cache) { it + } else { + it.newBuilder().cacheControl(CacheControl.FORCE_NETWORK).build() } } } @@ -523,7 +530,7 @@ class EHentai( override suspend fun getMangaDetails(manga: MangaInfo): MangaInfo { val exception = Exception("Async stacktrace") - val response = client.newCall(mangaDetailsRequest(manga.toSManga())).await() + val response = client.newCall(mangaDetailsRequest(manga.toSManga())).awaitResponse() if (response.isSuccessful) { // Pull to most recent val doc = response.asJsoup()