Retry button now uses a different H@H server.

This commit is contained in:
NerdNumber9 2017-03-09 18:18:53 -05:00
parent fa115ed9a0
commit 77cd459c51
2 changed files with 21 additions and 6 deletions

View File

@ -245,18 +245,27 @@ class EHentai(override val id: Long,
override fun pageListParse(response: Response) override fun pageListParse(response: Response)
= throw UnsupportedOperationException("Unused method was called somehow!") = throw UnsupportedOperationException("Unused method was called somehow!")
override fun imageUrlParse(response: Response): String { override fun fetchImageUrl(page: Page): Observable<String> {
return client.newCall(imageUrlRequest(page))
.asObservableSuccess()
.map { realImageUrlParse(it, page) }
}
fun realImageUrlParse(response: Response, page: Page): String {
with(response.asJsoup()) { with(response.asJsoup()) {
val currentImage = select("img[onerror]").attr("src") val currentImage = getElementById("img").attr("src")
//TODO This doesn't work currently. Find a better way to do this
//Each press of the retry button will choose another server //Each press of the retry button will choose another server
// select("#loadfail").attr("onclick").nullIfBlank()?.let { select("#loadfail").attr("onclick").nullIfBlank()?.let {
// page.url = addParam(page.url, "nl", it.substring(it.indexOf('\'') + 1 .. it.lastIndexOf('\'') - 1)) page.url = addParam(page.url, "nl", it.substring(it.indexOf('\'') + 1 .. it.lastIndexOf('\'') - 1))
// } }
return currentImage return currentImage
} }
} }
override fun imageUrlParse(response: Response): String {
throw UnsupportedOperationException("Unused method was called somehow!")
}
val cookiesHeader by lazy { val cookiesHeader by lazy {
val cookies: MutableMap<String, String> = mutableMapOf() val cookies: MutableMap<String, String> = mutableMapOf()
if(prefs.enableExhentai().getOrDefault()) { if(prefs.enableExhentai().getOrDefault()) {

View File

@ -18,6 +18,7 @@ import eu.kanade.tachiyomi.source.LocalSource
import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.source.online.all.EHentai
import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter
import eu.kanade.tachiyomi.util.DiskUtil import eu.kanade.tachiyomi.util.DiskUtil
import eu.kanade.tachiyomi.util.RetryWithDelay import eu.kanade.tachiyomi.util.RetryWithDelay
@ -354,6 +355,11 @@ class ReaderPresenter : BasePresenter<ReaderActivity>() {
if (uri != null && !page.chapter.isDownloaded) { if (uri != null && !page.chapter.isDownloaded) {
chapterCache.removeFileFromCache(uri.encodedPath.substringAfterLast('/')) chapterCache.removeFileFromCache(uri.encodedPath.substringAfterLast('/'))
} }
//If we are using EHentai/ExHentai, get a new image URL
if(source is EHentai)
page.imageUrl = null
loader.retryPage(page) loader.retryPage(page)
} }
} }